diff --git a/eslint.config.mjs b/eslint.config.mjs index ab87978..da8ca72 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -65,7 +65,6 @@ export default [ { "files": [ "**/*-formatter-*.js", - "resolve-module.cjs", "webworker/*.cjs" ], "languageOptions": { diff --git a/markdownlint-cli2.mjs b/markdownlint-cli2.mjs index 43b6a52..15c7518 100755 --- a/markdownlint-cli2.mjs +++ b/markdownlint-cli2.mjs @@ -8,12 +8,11 @@ const pathPosix = pathDefault.posix; import { pathToFileURL } from "node:url"; import { globby } from "globby"; import micromatch from "micromatch"; -import { applyFixes, getVersion } from "markdownlint"; +import { applyFixes, getVersion, resolveModule } from "markdownlint"; import { lint, extendConfig, readConfig } from "markdownlint/promise"; import { expandTildePath } from "markdownlint/helpers"; import appendToArray from "./append-to-array.mjs"; import mergeOptions from "./merge-options.mjs"; -import resolveModule from "./resolve-module.cjs"; import parsers from "./parsers/parsers.mjs"; import jsoncParse from "./parsers/jsonc-parse.mjs"; import yamlParse from "./parsers/yaml-parse.mjs"; diff --git a/package.json b/package.json index 930dc45..f5d261b 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "playwright-test": "playwright test --config ./webworker/playwright.config.mjs", "playwright-test-docker": "docker run --rm --volume $PWD:/home/workdir --workdir /home/workdir --ipc=host mcr.microsoft.com/playwright:v1.49.1 npm run playwright-test", "schema": "cpy ./node_modules/markdownlint/schema/markdownlint-config-schema.json ./schema --flat", - "test": "ava --timeout=1m test/append-to-array-test.mjs test/fs-mock-test.mjs test/fs-virtual-test.mjs test/markdownlint-cli2-test.mjs test/markdownlint-cli2-test-exec.mjs test/markdownlint-cli2-test-exports.mjs test/markdownlint-cli2-test-fs.mjs test/markdownlint-cli2-test-main.mjs test/merge-options-test.mjs test/resolve-module-test.mjs", + "test": "ava --timeout=1m test/append-to-array-test.mjs test/fs-mock-test.mjs test/fs-virtual-test.mjs test/markdownlint-cli2-test.mjs test/markdownlint-cli2-test-exec.mjs test/markdownlint-cli2-test-exports.mjs test/markdownlint-cli2-test-fs.mjs test/markdownlint-cli2-test-main.mjs test/merge-options-test.mjs", "test-cover": "c8 --100 npm test", "test-docker-hub-image": "VERSION=$(node -e \"process.stdout.write(require('./package.json').version)\") && docker image rm davidanson/markdownlint-cli2:v$VERSION davidanson/markdownlint-cli2:latest || true && docker run --rm -v $PWD:/workdir davidanson/markdownlint-cli2:v$VERSION \"*.md\" && docker run --rm -v $PWD:/workdir davidanson/markdownlint-cli2:latest \"*.md\"", "test-docker-hub-image-rules": "VERSION=$(node -e \"process.stdout.write(require('./package.json').version)\") && docker image rm davidanson/markdownlint-cli2-rules:v$VERSION davidanson/markdownlint-cli2-rules:latest || true && docker run --rm -v $PWD:/workdir davidanson/markdownlint-cli2-rules:v$VERSION \"*.md\" && docker run --rm -v $PWD:/workdir davidanson/markdownlint-cli2-rules:latest \"*.md\"", @@ -68,7 +68,6 @@ "parsers/jsonc-parse.mjs", "parsers/yaml-parse.mjs", "README.md", - "resolve-module.cjs", "schema/markdownlint-cli2-config-schema.json", "schema/markdownlint-config-schema.json", "schema/ValidatingConfiguration.md" diff --git a/resolve-module.cjs b/resolve-module.cjs deleted file mode 100644 index 7a800f0..0000000 --- a/resolve-module.cjs +++ /dev/null @@ -1,18 +0,0 @@ -// @ts-check - -"use strict"; - -/** - * Wrapper for calling Node's require.resolve with additional paths. - * @param {string} request Module path to require. - * @param {string[]} paths Paths to resolve module location from. - * @returns {string} Resolved file name. - */ -const resolveModule = (request, paths) => { - // eslint-disable-next-line no-inline-comments - const resolvePaths = require.resolve?.paths?.("") /* c8 ignore next */ || []; - const allPaths = [ ...paths, ...resolvePaths ]; - return require.resolve(request, { "paths": allPaths }); -}; - -module.exports = resolveModule; diff --git a/test/resolve-module-test.mjs b/test/resolve-module-test.mjs deleted file mode 100644 index f871d9a..0000000 --- a/test/resolve-module-test.mjs +++ /dev/null @@ -1,78 +0,0 @@ -// @ts-check - -import test from "ava"; -import path from "node:path"; -import { __dirname } from "./esm-helpers.mjs"; -import resolve from "../resolve-module.cjs"; - -import { createRequire } from "node:module"; -const require = createRequire(import.meta.url); - -test("built-in module", (t) => { - t.plan(1); - t.deepEqual( - require.resolve("node:fs"), - resolve("node:fs", [ __dirname(import.meta) ]) - ); -}); - -test("locally-installed module", (t) => { - t.plan(1); - t.deepEqual( - require.resolve("micromatch"), - resolve("micromatch", [ __dirname(import.meta) ]) - ); -}); - -test("relative (to __dirname(import.meta)) path to module", (t) => { - t.plan(1); - t.deepEqual( - require.resolve("./customRules/node_modules/markdownlint-rule-sample-commonjs"), - resolve( - "./customRules/node_modules/markdownlint-rule-sample-commonjs", - [ __dirname(import.meta) ] - ) - ); -}); - -test("module in alternate node_modules", (t) => { - t.plan(2); - t.throws( - // @ts-ignore - () => require.resolve("markdownlint-rule-sample-commonjs"), - { "code": "MODULE_NOT_FOUND" } - ); - t.deepEqual( - require.resolve("./customRules/node_modules/markdownlint-rule-sample-commonjs"), - resolve( - "markdownlint-rule-sample-commonjs", - [ path.join(__dirname(import.meta), "customRules") ] - ) - ); -}); - -test("module local, relative, and in alternate node_modules", (t) => { - t.plan(3); - const dirs = [ - __dirname(import.meta), - path.join(__dirname(import.meta), "customRules") - ]; - t.deepEqual( - require.resolve("micromatch"), - resolve("micromatch", dirs) - ); - t.deepEqual( - require.resolve("./customRules/node_modules/markdownlint-rule-sample-commonjs"), - resolve( - "./customRules/node_modules/markdownlint-rule-sample-commonjs", - dirs - ) - ); - t.deepEqual( - require.resolve("./customRules/node_modules/markdownlint-rule-sample-commonjs"), - resolve( - "markdownlint-rule-sample-commonjs", - dirs - ) - ); -});