Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize configuration for ESM exports (entry points for cjs / esm / typescript) #212

Merged
merged 2 commits into from Jan 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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