diff --git a/.gitignore b/.gitignore index 388388c..8123c9e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ coverage/ node_modules/ yarn.lock +!/index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..0f75a31 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,13 @@ +import type {Options as MicromarkOptions} from 'micromark-extension-gfm' +import type {Options as MdastOptions} from 'mdast-util-gfm' + +export {default} from './lib/index.js' + +/** + * Configuration for `remark-gfm`. + * + * Currently supports `singleTilde` as a parse option and + * `tableCellPadding`, `tablePipeAlign`, and `stringLength` as + * a serialization option. + */ +export interface Options extends MicromarkOptions, MdastOptions {} diff --git a/index.js b/index.js index a49a278..6a4c25d 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,2 @@ -/** - * @typedef {import('./lib/index.js').Options} Options - */ - +// Note: types exposed from `index.d.ts`. export {default} from './lib/index.js' diff --git a/lib/index.js b/lib/index.js index 2205580..ee1cca2 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,17 +1,11 @@ /** - * @import {Options as MdastOptions} from 'mdast-util-gfm' * @import {Root} from 'mdast' - * @import {Options as MicromarkOptions} from 'micromark-extension-gfm' + * @import {Options} from 'remark-gfm' * @import {} from 'remark-parse' * @import {} from 'remark-stringify' * @import {Processor} from 'unified' */ -/** - * @typedef {MicromarkOptions & MdastOptions} Options - * Configuration. - */ - import {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm' import {gfm} from 'micromark-extension-gfm' diff --git a/package.json b/package.json index 306d906..17831d7 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ }, "exports": "./index.js", "files": [ - "index.d.ts.map", "index.d.ts", "index.js", "lib/" @@ -86,6 +85,29 @@ "version": "4.0.0", "xo": { "overrides": [ + { + "files": [ + "**/*.d.ts" + ], + "rules": { + "@typescript-eslint/array-type": [ + "error", + { + "default": "generic" + } + ], + "@typescript-eslint/ban-types": [ + "error", + { + "extendDefaults": true + } + ], + "@typescript-eslint/consistent-type-definitions": [ + "error", + "interface" + ] + } + }, { "files": [ "test/**/*.js" diff --git a/tsconfig.json b/tsconfig.json index fc3d1e4..c3e0c82 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,5 +12,5 @@ "target": "es2022" }, "exclude": ["coverage/", "node_modules/"], - "include": ["**/*.js"] + "include": ["**/*.js", "index.d.ts"] }