diff --git a/.changeset/legal-crews-visit.md b/.changeset/legal-crews-visit.md new file mode 100644 index 00000000..a7c459ae --- /dev/null +++ b/.changeset/legal-crews-visit.md @@ -0,0 +1,7 @@ +--- +'@mdx-js/typescript-plugin': minor +'@mdx-js/language-service': minor +'@mdx-js/language-server': minor +--- + +Remove support for Node.js 18 diff --git a/packages/language-server/README.md b/packages/language-server/README.md index 2813f9a9..7c28effc 100644 --- a/packages/language-server/README.md +++ b/packages/language-server/README.md @@ -217,10 +217,7 @@ Use [`unifiedjs.vscode-mdx`][vscode-mdx] to use the MDX language server with ## Compatibility -Projects maintained by the unified collective are compatible with all maintained -versions of Node.js. -As of now, that is Node.js and 16.0+. -Our projects sometimes work with older versions, but this is not guaranteed. +This project is compatible Node.js 20.19+. This project uses [`vscode-languageserver`][vscode-languageserver] 9, which implements language server protocol 3.17.4. diff --git a/packages/language-service/README.md b/packages/language-service/README.md index 3233cd0d..ce55b380 100644 --- a/packages/language-service/README.md +++ b/packages/language-service/README.md @@ -154,10 +154,7 @@ configuration. ## Compatibility -Projects maintained by the unified collective are compatible with all maintained -versions of Node.js. -As of now, that is Node.js and 16.0+. -Our projects sometimes work with older versions, but this is not guaranteed. +This project is compatible Node.js 20.19+. ## Types diff --git a/packages/typescript-plugin/README.md b/packages/typescript-plugin/README.md index 307ae564..e7ade973 100644 --- a/packages/typescript-plugin/README.md +++ b/packages/typescript-plugin/README.md @@ -88,10 +88,7 @@ This is not intended for programmatic use. ## Compatibility -Projects maintained by the unified collective are compatible with all maintained -versions of Node.js. -As of now, that is Node.js and 16.0+. -Our projects sometimes work with older versions, but this is not guaranteed. +This project is compatible Node.js 20.19+. ## Security diff --git a/packages/typescript-plugin/lib/index.cjs b/packages/typescript-plugin/lib/index.cjs index eeff5de2..e60e3c6f 100644 --- a/packages/typescript-plugin/lib/index.cjs +++ b/packages/typescript-plugin/lib/index.cjs @@ -2,30 +2,25 @@ /** * @import {TsConfigSourceFile} from 'typescript' - * @import {Plugin} from 'unified' with {'resolution-mode': 'import'} + * @import {Plugin} from 'unified' */ const {pathToFileURL} = require('node:url') +const { + createMdxLanguagePlugin, + resolveRemarkPlugins +} = require('@mdx-js/language-service') const { createAsyncLanguageServicePlugin } = require('@volar/typescript/lib/quickstart/createAsyncLanguageServicePlugin.js') +const {loadPlugin} = require('load-plugin') +const {default: remarkFrontmatter} = require('remark-frontmatter') +const {default: remarkGfm} = require('remark-gfm') const plugin = createAsyncLanguageServicePlugin( ['.mdx'], 2 /* JSX */, async (ts, info) => { - const [ - {createMdxLanguagePlugin, resolveRemarkPlugins}, - {loadPlugin}, - {default: remarkFrontmatter}, - {default: remarkGfm} - ] = await Promise.all([ - import('@mdx-js/language-service'), - import('load-plugin'), - import('remark-frontmatter'), - import('remark-gfm') - ]) - if (info.project.projectKind !== ts.server.ProjectKind.Configured) { return { languagePlugins: [ diff --git a/tsconfig.base.json b/tsconfig.base.json index 85aae429..e42ac339 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -5,7 +5,7 @@ "composite": true, "declarationMap": true, "lib": ["es2022"], - "module": "node16", + "module": "nodenext", "moduleDetection": "force", "strict": true, "stripInternal": true,