diff --git a/package.json b/package.json index 3d964610b..250f84a85 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,23 @@ "main": "dist/editorjs.umd.js", "module": "dist/editorjs.mjs", "types": "./types/index.d.ts", + "exports": { + ".": { + "import": { + "types": "./types/index.d.mts", + "default": "./dist/editorjs.mjs" + }, + "require": { + "types": "./types/index.d.ts", + "default": "./dist/editorjs.umd.js" + }, + "default": "./dist/editorjs.umd.js" + }, + "./package.json": "./package.json", + "./types": "./types/index.d.ts", + "./dist/*": "./dist/*", + "./*": "./*" + }, "keywords": [ "codex editor", "text editor", @@ -17,6 +34,7 @@ "dev": "vite", "build": "vite build --mode production", "build:test": "vite build --mode test", + "test:types": "tsc -p test/types/tsconfig.node16.json", "lint": "eslint src/ --ext .ts && yarn lint:tests", "lint:errors": "eslint src/ --ext .ts --quiet", "lint:fix": "eslint src/ --ext .ts --fix", diff --git a/test/types/node16-default-import.mts b/test/types/node16-default-import.mts new file mode 100644 index 000000000..6206be34a --- /dev/null +++ b/test/types/node16-default-import.mts @@ -0,0 +1,7 @@ +import EditorJS from '@editorjs/editorjs'; + +const editor = new EditorJS({ + holder: 'editor', +}); + +editor.destroy(); diff --git a/test/types/tsconfig.node16.json b/test/types/tsconfig.node16.json new file mode 100644 index 000000000..8f658dcbd --- /dev/null +++ b/test/types/tsconfig.node16.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "lib": ["DOM", "ES2022"], + "module": "Node16", + "moduleResolution": "Node16", + "noEmit": true, + "skipLibCheck": true, + "strict": true, + "target": "ES2022" + }, + "include": ["node16-default-import.mts"] +} diff --git a/types/index.d.mts b/types/index.d.mts new file mode 100644 index 000000000..eedd12f0f --- /dev/null +++ b/types/index.d.mts @@ -0,0 +1,14 @@ +export type * from './index.js'; +export { + BlockAddedMutationType, + BlockChangedMutationType, + BlockMovedMutationType, + BlockRemovedMutationType, + LogLevels, + PopoverEvent, + PopoverItemType, +} from './index.js'; + +declare const EditorJS: typeof import('./index.js').default; + +export default EditorJS;