Skip to content

Commit

Permalink
Merge pull request #212 from shiftcode/esm-support
Browse files Browse the repository at this point in the history
Optimize configuration for ESM exports (entry points for cjs / esm / typescript)
  • Loading branch information
marnusw committed Jan 30, 2023
2 parents 40bfc9e + bdb8195 commit 7b83b92
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 34 deletions.
9 changes: 3 additions & 6 deletions README.md
Expand Up @@ -18,12 +18,9 @@ If you find this library useful, why not

## ESM and CommonJS

As of `v1.3.0` this library supports native ESM imports in Node.js. It is important to
use the proper import path for your use case. Set the `type` property in your project's
`package.json` to either `module`, for ESM, or `commonjs` and

- For **ESM** import from `date-fns-tz/esm` or its sub-paths
- For **CommonJS** import from `date-fns-tz` or its sub-paths
As of `v1.3.0` this library supports native ESM imports in Node.js. Since exports field in [package.json](./package.json)
defines the correct entry point depending on project type (`commonjs` vs. `ESM`) the import path does not change.
Make sure to set the `type` property in your project's `package.json` to either `module`, for ESM, or `commonjs` and

Even when using ESM some CommonJS imports from `date-fns` will be used until they support
ESM natively as well [date-fns#1781](https://github.com/date-fns/date-fns/issues/1781).
Expand Down
98 changes: 70 additions & 28 deletions package.json
Expand Up @@ -24,35 +24,77 @@
"module": "esm/index.js",
"types": "typings.d.ts",
"exports": {
".": "./index.js",
"./package.json": "./package.json",
"./format": "./format/index.js",
"./formatInTimeZone": "./formatInTimeZone/index.js",
"./getTimezoneOffset": "./getTimezoneOffset/index.js",
"./toDate": "./toDate/index.js",
"./utcToZonedTime": "./utcToZonedTime/index.js",
"./zonedTimeToUtc": "./zonedTimeToUtc/index.js",
"./fp": "./fp/index.js",
"./fp/format": "./fp/format/index.js",
"./fp/formatInTimeZone": "./fp/formatInTimeZone/index.js",
"./fp/getTimezoneOffset": "./fp/getTimezoneOffset/index.js",
"./fp/toDate": "./fp/toDate/index.js",
"./fp/utcToZonedTime": "./fp/utcToZonedTime/index.js",
"./fp/zonedTimeToUtc": "./fp/zonedTimeToUtc/index.js",
"./esm": "./esm/index.js",
"./esm/format": "./esm/format/index.js",
"./esm/formatInTimeZone": "./esm/formatInTimeZone/index.js",
"./esm/getTimezoneOffset": "./esm/getTimezoneOffset/index.js",
"./esm/toDate": "./esm/toDate/index.js",
"./esm/utcToZonedTime": "./esm/utcToZonedTime/index.js",
"./esm/zonedTimeToUtc": "./esm/zonedTimeToUtc/index.js",
"./esm/fp": "./esm/fp/index.js",
"./esm/fp/format": "./esm/fp/format/index.js",
"./esm/fp/formatInTimeZone": "./esm/fp/formatInTimeZone/index.js",
"./esm/fp/getTimezoneOffset": "./esm/fp/getTimezoneOffset/index.js",
"./esm/fp/toDate": "./esm/fp/toDate/index.js",
"./esm/fp/utcToZonedTime": "./esm/fp/utcToZonedTime/index.js",
"./esm/fp/zonedTimeToUtc": "./esm/fp/zonedTimeToUtc/index.js"
".": {
"types": "./typings.d.ts",
"import": "./esm/index.js",
"require": "./index.js"
},
"./format": {
"types": "./format/index.d.ts",
"import": "./esm/format/index.js",
"require": "./format/index.js"
},
"./formatInTimeZone": {
"types": "./formatInTimeZone/index.d.ts",
"import": "./esm/formatInTimeZone/index.js",
"require": "./formatInTimeZone/index.js"
},
"./getTimezoneOffset": {
"types": "./getTimezoneOffset/index.d.ts",
"import": "./esm/getTimezoneOffset/index.js",
"require": "./getTimezoneOffset/index.js"
},
"./toDate": {
"types": "./toDate/index.d.ts",
"import": "./esm/toDate/index.js",
"require": "./toDate/index.js"
},
"./utcToZonedTime": {
"types": "./utcToZonedTime/index.d.ts",
"import": "./esm/utcToZonedTime/index.js",
"require": "./utcToZonedTime/index.js"
},
"./zonedTimeToUtc": {
"types": "./zonedTimeToUtc/index.d.ts",
"import": "./esm/zonedTimeToUtc/index.js",
"require": "./zonedTimeToUtc/index.js"
},
"./fp": {
"types": "./fp/index.d.ts",
"import": "./esm/fp/index.js",
"require": "./fp/index.js"
},
"./fp/format": {
"types": "./fp/format/index.d.ts",
"import": "./esm/fp/format/index.js",
"require": "./fp/format/index.js"
},
"./fp/formatInTimeZone": {
"types": "./fp/formatInTimeZone/index.d.ts",
"import": "./esm/fp/formatInTimeZone/index.js",
"require": "./fp/formatInTimeZone/index.js"
},
"./fp/getTimezoneOffset": {
"types": "./fp/getTimezoneOffset/index.d.ts",
"import": "./esm/fp/getTimezoneOffset/index.js",
"require": "./fp/getTimezoneOffset/index.js"
},
"./fp/toDate": {
"types": "./fp/toDate/index.d.ts",
"import": "./esm/fp/toDate/index.js",
"require": "./fp/toDate/index.js"
},
"./fp/utcToZonedTime": {
"types": "./fp/utcToZonedTime/index.d.ts",
"import": "./esm/fp/utcToZonedTime/index.js",
"require": "./fp/utcToZonedTime/index.js"
},
"./fp/zonedTimeToUtc": {
"types": "./fp/zonedTimeToUtc/index.d.ts",
"import": "./esm/fp/zonedTimeToUtc/index.js",
"require": "./fp/zonedTimeToUtc/index.js"
}
},
"scripts": {
"build": "./scripts/build/build.sh",
Expand Down

0 comments on commit 7b83b92

Please sign in to comment.