Stop using module.createRequire (problematic under webpack), incorporate and export resolveModule helper from markdownlint-cli2.

This commit is contained in:
David Anson 2025-01-12 18:27:14 -08:00
parent a1da464618
commit 53ff5c43f1
16 changed files with 327 additions and 25 deletions

View file

@ -1,10 +1,11 @@
// @ts-check
// @ts-ignore
import { fs as nodeFs, module, os, path } from "#node-imports";
const dynamicRequire = module.createRequire(import.meta.url);
import { fs as nodeFs, os, path } from "#node-imports";
import { initialize as cacheInitialize } from "./cache.mjs";
import { version } from "./constants.mjs";
import { requireMarkdownItCjs } from "./defer-require.cjs";
import { resolveModule } from "./resolve-module.cjs";
import rules from "./rules.mjs";
import { parse as micromarkParse } from "./micromark-parse.mjs";
import * as helpers from "../helpers/helpers.cjs";
@ -501,7 +502,7 @@ function lintContent(
// Parse content into lines and get markdown-it tokens
const lines = content.split(helpers.newLineRe);
const markdownitTokens = needMarkdownItTokens ?
dynamicRequire("./markdownit.cjs").getMarkdownItTokens(markdownItPlugins, preClearedContent, lines) :
requireMarkdownItCjs().getMarkdownItTokens(markdownItPlugins, preClearedContent, lines) :
[];
// Create (frozen) parameters for rules
/** @type {MarkdownParsers} */
@ -1010,10 +1011,10 @@ function resolveConfigExtends(configFile, referenceId, fs, callback) {
if (err) {
// Not a file, try require.resolve
try {
return callback(null, dynamicRequire.resolve(
referenceId,
{ "paths": [ configFileDirname ] }
));
return callback(
null,
resolveModule(referenceId, [ configFileDirname ])
);
} catch {
// Unable to resolve, use resolvedExtendsFile
}
@ -1041,10 +1042,7 @@ function resolveConfigExtendsSync(configFile, referenceId, fs) {
// Not a file, try require.resolve
}
try {
return dynamicRequire.resolve(
referenceId,
{ "paths": [ configFileDirname ] }
);
return resolveModule(referenceId, [ configFileDirname ]);
} catch {
// Unable to resolve, return resolvedExtendsFile
}