Open tmcw opened 2 weeks ago
Hi Tom,
In your case, either install json-schema-library@10.0.0-rc1
. Do this, if you need Draft-2019 support. Here you would be an early adapter, but overall this is the most compliant release yet.
Or start using Draft-07 with import { Draft7 } from "json-schema-library"
as is documented here https://github.com/sagold/json-schema-library/tree/d2d6e6451ea3f3b8c056f497182fd805226a20a7
This is not self explanatory and I will add a clarification to the readme.
Sorry for the inconvenience, Sascha
Hi - I don't think that's the issue, installing 10.0.0-rc1 doesn't resolve the issue, and the issue is about ESM exports and compatibility - if I dial it back to just Draft
import { Draft } from "json-schema-library";
console.log(Draft);
This still produces the error with the given repro:
file:///Users/tmcw/tmp/20240613162355-25356/index.mjs:1
import { Draft } from "json-schema-library";
^^^^^
SyntaxError: Named export 'Draft' not found. The requested module 'json-schema-library' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:
import pkg from 'json-schema-library';
const { Draft } = pkg;
Note previous discussion on this topic https://github.com/sagold/json-schema-library/issues/51
Can you share a simple build-setup to reproduce your issue?
The top post is a complete setup for reproducing the issue - here's the same thing as a gist if you want something git-clonable.
If I create a module:
package.json:
index.mjs:
And run it, then this module doesn't provide the expected exports:
It looks like the ESM mode of using this module doesn't work - there isn't a type: module, or an exports: property in package.json.
It also looks like the modules that are getting generated by the
tsconfig
use imports that lack.js
extensions, so the source won't be compatible with native ESM either.