-
Notifications
You must be signed in to change notification settings - Fork 149
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
Support TypeScript's moduleResolution: "Node16"
#524
base: main
Are you sure you want to change the base?
Conversation
Bumps [micromark-extension-gfm](https://github.com/micromark/micromark-extension-gfm) from 2.0.1 to 2.0.3. - [Release notes](https://github.com/micromark/micromark-extension-gfm/releases) - [Commits](micromark/[email protected]) --- updated-dependencies: - dependency-name: micromark-extension-gfm dependency-type: indirect update-type: version-update:semver-patch ...
Add support for TypeScript's `NodeNext`/`Node16` `moduleResolution`. TypeScript uses the new Node.JS package entry point syntax in the `package.json` file to pick which types file to load. In order to avoid breaking backwards compatibility with newer versions of Node.JS, that may have use something like `import * from "@adobe/jsonschema2md/lib/config"`, we need to explicitly list every single import path that people may have used. See: https://www.typescriptlang.org/docs/handbook/esm-node.html See: https://nodejs.org/api/packages.html#package-entry-points
Codecov Report
@@ Coverage Diff @@
## main #524 +/- ##
=======================================
Coverage 99.75% 99.75%
=======================================
Files 11 11
Lines 2039 2039
=======================================
Hits 2034 2034
Misses 5 5
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
"./lib/*": { | ||
"import": { | ||
"types": "./types/*.d.ts", | ||
"default": "./lib/*.js" | ||
} | ||
}, | ||
"./lib/index": { | ||
"import": { | ||
"types": "./types/index.d.ts", | ||
"default": "./lib/index.js" | ||
} | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are currently needed for backwards compatibility, in case somebody has done import {jsonschema2md} from "@adobe/jsonschema2md/lib/index";
or import { default as schemaLoader } from '@adobe/jsonschema2md/lib/schemaProxy';
.
However, as long as you're okay with having a BREAKING CHANGE, we can remove these lines.
Add support for TypeScript's
moduleResolution: "Node16"
.There's more information about what this this entails in https://www.typescriptlang.org/docs/handbook/esm-node.html, but essentially, it lets TypeScript check that all ESM imports match what Node.JS can import.
However, TypeScript will no longer look at the
"types"
/"typing"
field in yourpackage.json
file. Instead, they except entries in the"exports"
field inpackage.json
.In order to avoid breaking backwards compatibility with newer versions of Node.JS, that may have use something like
import * from "@adobe/jsonschema2md/lib/config"
, we need to explicitly list every single import path that people may have used.Before
Using https://arethetypeswrong.github.io/?p=%40adobe%2Fjsonschema2md%407.1.5, we can see that the
node16
types are currently broken for@adobe/jsonschema2md
v7.1.5:After
Run
npm pack
, and upload the file to https://arethetypeswrong.github.io/