Skip to content

fix: add package main field for TypeScript support#981

Merged
RyanZim merged 2 commits intojprichardson:masterfrom
mtdvlpr:patch-1
Nov 29, 2022
Merged

fix: add package main field for TypeScript support#981
RyanZim merged 2 commits intojprichardson:masterfrom
mtdvlpr:patch-1

Conversation

@mtdvlpr
Copy link
Copy Markdown
Contributor

@mtdvlpr mtdvlpr commented Nov 29, 2022

Fixes #979

@mtdvlpr mtdvlpr changed the title fix: add legacy main and module for TypeScript support fix: add legacy main/module for TypeScript support Nov 29, 2022
Copy link
Copy Markdown
Contributor

@caugner caugner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See also: #980

Tested locally, and resolves the issue with TypeScript.

@caugner
Copy link
Copy Markdown
Contributor

caugner commented Nov 29, 2022

It doesn't resolve the issue with import ... from "fs-extra/esm" though. 🤔

@mtdvlpr
Copy link
Copy Markdown
Contributor Author

mtdvlpr commented Nov 29, 2022

It doesn't have to, right? Importing from fs-extra will get the esm version if I'm not mistaken.

@caugner
Copy link
Copy Markdown
Contributor

caugner commented Nov 29, 2022

It doesn't have to, right? Importing from fs-extra will get the esm version if I'm not mistaken.

If I understand @RyanZim's intention correctly, the separate fs-extra/esm export aims to avoid confusion. Adding the "module" field reintroduces that confusion, because you could then import from fs-extra and get the ESM module.

We could just add the main field for now, and that alone would resolve TypeScript issue.

Copy link
Copy Markdown
Contributor

@caugner caugner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A more conservative solution is to omit the module field for now, because the author does not intend to export the ESM module at fs-extra.

Comment thread package.json Outdated
Co-authored-by: Claas Augner <495429+caugner@users.noreply.github.com>
@mtdvlpr mtdvlpr changed the title fix: add legacy main/module for TypeScript support fix: add legacy main for TypeScript support Nov 29, 2022
Copy link
Copy Markdown
Contributor

@caugner caugner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-tested and still resolves the issue when using import fs from "fs-extra"; in TypeScript.

@mtdvlpr mtdvlpr changed the title fix: add legacy main for TypeScript support fix: add main field for TypeScript support Nov 29, 2022
@mtdvlpr mtdvlpr changed the title fix: add main field for TypeScript support fix: add package main field for TypeScript support Nov 29, 2022
@RyanZim
Copy link
Copy Markdown
Collaborator

RyanZim commented Nov 29, 2022

I removed the main field, since it wasn't needed for backward compatibility with old Node versions, as we don't support Node versions old enough not to support exports. However, since it seems TS doesn't like this (potentially a bug? see #979 (comment)), it seems wise to add it back for now.

It doesn't resolve the issue with import ... from "fs-extra/esm" though.

I think that's fine; main is only needed for TS support, and if you're using TS, you already have named import support; there's no reason to use fs-extra/esm in TS.

@caugner is correct; we don't want to add module here, as that would be confusing.

@RyanZim RyanZim merged commit ab86a8a into jprichardson:master Nov 29, 2022
@RyanZim
Copy link
Copy Markdown
Collaborator

RyanZim commented Nov 29, 2022

Published in v11.1.0 🎉

valentineus pushed a commit to valentineus/strapi-plugin-checkbox-list that referenced this pull request Feb 5, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [fs-extra](https://github.com/jprichardson/node-fs-extra) | [`^10.0.0` → `^11.0.0`](https://renovatebot.com/diffs/npm/fs-extra/10.1.0/11.3.3) | ![age](https://developer.mend.io/api/mc/badges/age/npm/fs-extra/11.3.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fs-extra/10.1.0/11.3.3?slim=true) |

---

### Release Notes

<details>
<summary>jprichardson/node-fs-extra (fs-extra)</summary>

### [`v11.3.3`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1133--2025-12-18)

[Compare Source](jprichardson/node-fs-extra@11.3.2...11.3.3)

- Fix copying symlink when destination is a symlink to the same target ([#&#8203;1019](jprichardson/node-fs-extra#1019), [#&#8203;1060](jprichardson/node-fs-extra#1060))

### [`v11.3.2`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1132--2025-09-15)

[Compare Source](jprichardson/node-fs-extra@11.3.1...11.3.2)

- Fix spurrious `UnhandledPromiseRejectionWarning` that could occur when calling `.copy()` in some cases ([#&#8203;1056](jprichardson/node-fs-extra#1056), [#&#8203;1058](jprichardson/node-fs-extra#1058))

### [`v11.3.1`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1131--2025-08-05)

[Compare Source](jprichardson/node-fs-extra@11.3.0...11.3.1)

- Fix case where `move`/`moveSync` could incorrectly think files are identical on Windows ([#&#8203;1050](jprichardson/node-fs-extra#1050))

### [`v11.3.0`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1130--2025-01-15)

[Compare Source](jprichardson/node-fs-extra@11.2.0...11.3.0)

- Add promise support for newer `fs` methods ([#&#8203;1044](jprichardson/node-fs-extra#1044), [#&#8203;1045](jprichardson/node-fs-extra#1045))
- Use `fs.opendir` in `copy()`/`copySync()` for better perf/scalability ([#&#8203;972](jprichardson/node-fs-extra#972), [#&#8203;1028](jprichardson/node-fs-extra#1028))

### [`v11.2.0`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1120--2023-11-27)

[Compare Source](jprichardson/node-fs-extra@11.1.1...11.2.0)

- Copy directory contents in parallel for better performance ([#&#8203;1026](jprichardson/node-fs-extra#1026))
- Refactor internal code to use `async`/`await` ([#&#8203;1020](jprichardson/node-fs-extra#1020))

### [`v11.1.1`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1111--2023-03-20)

[Compare Source](jprichardson/node-fs-extra@11.1.0...11.1.1)

- Preserve timestamps when moving files across devices ([#&#8203;992](jprichardson/node-fs-extra#992), [#&#8203;994](jprichardson/node-fs-extra#994))

### [`v11.1.0`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1110--2022-11-29)

[Compare Source](jprichardson/node-fs-extra@11.0.0...11.1.0)

- Re-add `main` field to `package.json` for better TypeScript compatibility ([#&#8203;979](jprichardson/node-fs-extra#979), [#&#8203;981](jprichardson/node-fs-extra#981))

### [`v11.0.0`](https://github.com/jprichardson/node-fs-extra/blob/HEAD/CHANGELOG.md#1100--2022-11-28)

[Compare Source](jprichardson/node-fs-extra@10.1.0...11.0.0)

##### Breaking Changes

- Don't allow requiring `fs-extra/lib/SOMETHING` (switched to `exports`) ([#&#8203;974](jprichardson/node-fs-extra#974))
- Require Node v14.14+ ([#&#8203;968](jprichardson/node-fs-extra#968), [#&#8203;969](jprichardson/node-fs-extra#969))

##### New Features

- Add `fs-extra/esm` for ESM named export support; see [docs](https://github.com/jprichardson/node-fs-extra#esm) for details ([#&#8203;746](jprichardson/node-fs-extra#746), [#&#8203;974](jprichardson/node-fs-extra#974))
- Add promise support for `fs.readv()` ([#&#8203;970](jprichardson/node-fs-extra#970))

##### Bugfixes

- Don't `stat` filtered items in `copy*` ([#&#8203;965](jprichardson/node-fs-extra#965), [#&#8203;971](jprichardson/node-fs-extra#971))
- Remove buggy stats check in `copy` ([#&#8203;918](jprichardson/node-fs-extra#918), [#&#8203;976](jprichardson/node-fs-extra#976))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4wLjUiLCJ1cGRhdGVkSW5WZXIiOiI0My4wLjUiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsiYXV0b21hdGVkIiwiZGVwZW5kZW5jaWVzIl19-->

Reviewed-on: https://code.popov.link/valentineus/strapi-plugin-checkbox-list/pulls/6
Co-authored-by: renovate[bot] <renovatebot@noreply.localhost>
Co-committed-by: renovate[bot] <renovatebot@noreply.localhost>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot find module 'fs-extra/esm' or its corresponding type declarations.ts(2307)

3 participants