diff --git a/.gitignore b/.gitignore index f19ff24..3fedeea 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ coverage/ node_modules/ -*.d.ts.map -*.d.ts +types/ *.log *.tsbuildinfo .DS_Store diff --git a/index.js b/index.js deleted file mode 100644 index ff903ce..0000000 --- a/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * @typedef {import('hast-util-to-jsx-runtime').ExtraProps} ExtraProps - * @typedef {import('./lib/index.js').AllowElement} AllowElement - * @typedef {import('./lib/index.js').Components} Components - * @typedef {import('./lib/index.js').Options} Options - * @typedef {import('./lib/index.js').UrlTransform} UrlTransform - */ - -export {Markdown as default, defaultUrlTransform} from './lib/index.js' diff --git a/lib/exports.ts b/lib/exports.ts new file mode 100644 index 0000000..c31eb91 --- /dev/null +++ b/lib/exports.ts @@ -0,0 +1,9 @@ +export type {ExtraProps} from 'hast-util-to-jsx-runtime' +export { + type AllowElement, + type Components, + type Options, + type UrlTransform, + defaultUrlTransform, + default +} from './index.js' diff --git a/lib/index.js b/lib/index.js index 6470cb8..05430cd 100644 --- a/lib/index.js +++ b/lib/index.js @@ -138,7 +138,7 @@ const deprecations = [ * @returns {ReactElement} * React element. */ -export function Markdown(options) { +export default function Markdown(options) { const allowedElements = options.allowedElements const allowElement = options.allowElement const children = options.children || '' diff --git a/package.json b/package.json index c051f5e..bf3d671 100644 --- a/package.json +++ b/package.json @@ -69,12 +69,13 @@ ], "sideEffects": false, "type": "module", - "exports": "./index.js", + "exports": { + "types": "./types/exports.d.ts", + "default": "./lib/index.js" + }, "files": [ "lib/", - "index.d.ts.map", - "index.d.ts", - "index.js" + "types/" ], "dependencies": { "@types/hast": "^3.0.0", diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..f10b87c --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "checkJs": true, + "customConditions": ["development"], + "exactOptionalPropertyTypes": true, + "module": "node16", + "strict": true, + "target": "es2022" + } +} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..05d9bb5 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "composite": true, + "declaration": true, + "declarationMap": true, + "emitDeclarationOnly": true, + "lib": ["dom", "es2022"], + "outDir": "types/", + "rootDir": "lib/", + "target": "es2022", + "types": [] + }, + "include": ["lib/"] +} diff --git a/tsconfig.json b/tsconfig.json index d13dc27..921b271 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,17 +1,11 @@ { + "extends": "./tsconfig.base.json", "compilerOptions": { - "checkJs": true, - "customConditions": ["development"], - "declarationMap": true, - "declaration": true, - "emitDeclarationOnly": true, - "exactOptionalPropertyTypes": true, "jsx": "preserve", - "lib": ["dom", "es2022"], - "module": "node16", - "strict": true, - "target": "es2022" + "lib": ["es2022"], + "noEmit": true, + "types": ["node"] }, - "exclude": ["coverage/", "node_modules/"], - "include": ["**/*.js", "**/*.jsx", "lib/complex-types.d.ts"] + "exclude": ["coverage/", "lib/", "node_modules/"], + "references": [{"path": "./tsconfig.build.json"}] }