From dcdaf4c8f7f877a11a8e6588bad4283235e81294 Mon Sep 17 00:00:00 2001 From: Titus Wormer Date: Tue, 11 Jul 2023 17:24:34 +0200 Subject: [PATCH] Update `@types/mdast`, mdast utilities --- index.d.ts | 8 ++++++++ lib/index.js | 5 ++++- package.json | 14 +++++++------- test.js | 23 +++++++++++------------ 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/index.d.ts b/index.d.ts index 5fe3e1b..a1cc796 100644 --- a/index.d.ts +++ b/index.d.ts @@ -56,6 +56,14 @@ export interface MdxjsEsmHast extends HastLiteral { // Add nodes to mdast content. declare module 'mdast' { + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions + interface RootContentMap { + /** + * MDX ESM. + */ + mdxjsEsm: MdxjsEsm + } + // eslint-disable-next-line @typescript-eslint/consistent-type-definitions interface FrontmatterContentMap { /** diff --git a/lib/index.js b/lib/index.js index 1e67123..ba22228 100644 --- a/lib/index.js +++ b/lib/index.js @@ -46,7 +46,10 @@ function enterMdxjsEsm(token) { */ function exitMdxjsEsm(token) { const value = this.resume() - const node = /** @type {MdxjsEsm} */ (this.exit(token)) + const node = /** @type {MdxjsEsm} */ (this.stack[this.stack.length - 1]) + + this.exit(token) + const estree = token.estree node.value = value diff --git a/package.json b/package.json index e35da59..ba06203 100644 --- a/package.json +++ b/package.json @@ -40,22 +40,22 @@ ], "dependencies": { "@types/estree-jsx": "^1.0.0", - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "devDependencies": { "@types/node": "^20.0.0", "acorn": "^8.0.0", - "c8": "^7.0.0", - "micromark-extension-mdxjs-esm": "^1.0.0", + "c8": "^8.0.0", + "micromark-extension-mdxjs-esm": "^2.0.0", "prettier": "^2.0.0", "remark-cli": "^11.0.0", "remark-preset-wooorm": "^9.0.0", "type-coverage": "^2.0.0", "typescript": "^5.0.0", - "unist-util-remove-position": "^4.0.0", + "unist-util-remove-position": "^5.0.0", "xo": "^0.54.0" }, "scripts": { diff --git a/test.js b/test.js index 404868c..c380c9b 100644 --- a/test.js +++ b/test.js @@ -59,19 +59,18 @@ test('mdxjsEsmFromMarkdown', () => { 'should support ESM' ) + let tree = fromMarkdown('import a from "b"\nexport var c = ""\n\nd', { + extensions: [mdxjsEsm({acorn, addResult: true})], + mdastExtensions: [mdxjsEsmFromMarkdown] + }) + + removePosition(tree, {force: true}) + + // Cheap clone to remove non-JSON values. + tree = JSON.parse(JSON.stringify(tree)) + assert.deepEqual( - // Cheap clone to remove non-JSON values. - JSON.parse( - JSON.stringify( - removePosition( - fromMarkdown('import a from "b"\nexport var c = ""\n\nd', { - extensions: [mdxjsEsm({acorn, addResult: true})], - mdastExtensions: [mdxjsEsmFromMarkdown] - }), - true - ) - ) - ), + tree, { type: 'root', children: [