diff --git a/export-markdownlint-promise.mjs b/export-markdownlint-promise.mjs new file mode 100644 index 00000000..105e36da --- /dev/null +++ b/export-markdownlint-promise.mjs @@ -0,0 +1,3 @@ +// @ts-check + +export * from "markdownlint/promise"; diff --git a/export-markdownlint.mjs b/export-markdownlint.mjs index d14558b1..89310996 100644 --- a/export-markdownlint.mjs +++ b/export-markdownlint.mjs @@ -1,3 +1,3 @@ // @ts-check -export { default } from "markdownlint"; +export * from "markdownlint"; diff --git a/markdownlint-cli2.mjs b/markdownlint-cli2.mjs index af5dabe7..363a9df4 100755 --- a/markdownlint-cli2.mjs +++ b/markdownlint-cli2.mjs @@ -10,17 +10,8 @@ const pathPosix = pathDefault.posix; import { pathToFileURL } from "node:url"; import { globby } from "globby"; import micromatch from "micromatch"; -import markdownlintLibrary from "markdownlint"; -const { - applyFixes, - "getVersion": getLibraryVersion, - "promises": markdownlintPromises -} = markdownlintLibrary; -const { - markdownlint, - "extendConfig": markdownlintExtendConfig, - "readConfig": markdownlintReadConfig -} = markdownlintPromises; +import { applyFixes, getVersion } 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"; @@ -30,7 +21,7 @@ import resolveAndRequire from "./resolve-and-require.mjs"; const packageName = "markdownlint-cli2"; const packageVersion = "0.15.0"; const libraryName = "markdownlint"; -const libraryVersion = getLibraryVersion(); +const libraryVersion = getVersion(); const bannerMessage = `${packageName} v${packageVersion} (${libraryName} v${libraryVersion})`; const dotOnlySubstitute = "*.{md,markdown}"; const utf8 = "utf8"; @@ -70,11 +61,11 @@ const resolveModulePaths = (dir, modulePaths) => ( ); // Read a JSON(C) or YAML file and return the object -const readConfig = (fs, dir, name, otherwise) => () => { +const readConfigFile = (fs, dir, name, otherwise) => () => { const file = pathPosix.join(dir, name); return fs.promises.access(file). then( - () => markdownlintReadConfig( + () => readConfig( file, getParsers(), fs @@ -149,7 +140,7 @@ const importOrRequireConfig = (fs, dir, name, noRequire, otherwise) => () => { // Extend a config object if it has 'extends' property const getExtendedConfig = (config, configPath, fs) => { if (config.extends) { - return markdownlintExtendConfig( + return extendConfig( config, configPath, getParsers(), @@ -182,7 +173,7 @@ const readOptionsOrConfig = async (configPath, fs, noRequire) => { basename.endsWith(".markdownlint.yaml") || basename.endsWith(".markdownlint.yml") ) { - config = await markdownlintReadConfig(configPath, getParsers(), fs); + config = await readConfig(configPath, getParsers(), fs); } else if ( basename.endsWith(".markdownlint.cjs") || basename.endsWith(".markdownlint.mjs") @@ -373,19 +364,19 @@ const getAndProcessDirInfo = ( // Load markdownlint object(s) const readConfigs = - readConfig( + readConfigFile( fs, dir, ".markdownlint.jsonc", - readConfig( + readConfigFile( fs, dir, ".markdownlint.json", - readConfig( + readConfigFile( fs, dir, ".markdownlint.yaml", - readConfig( + readConfigFile( fs, dir, ".markdownlint.yml", @@ -793,7 +784,7 @@ const lintFiles = (fs, dirInfos, fileContents) => { fs }; // Invoke markdownlint - let task = markdownlint(options); + let task = lint(options); // For any fixable errors, read file, apply fixes, and write it back if (markdownlintOptions.fix) { task = task.then((results) => { @@ -816,7 +807,7 @@ const lintFiles = (fs, dirInfos, fileContents) => { } } return Promise.all(subTasks). - then(() => markdownlint(options)). + then(() => lint(options)). then((fixResults) => ({ ...results, ...fixResults diff --git a/package.json b/package.json index 13b825d7..1faa3117 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ ".": "./markdownlint-cli2.mjs", "./markdownlint": "./export-markdownlint.mjs", "./markdownlint/helpers": "./export-markdownlint-helpers.mjs", + "./markdownlint/promise": "./export-markdownlint-promise.mjs", "./parsers": "./parsers/parsers.mjs", "./parsers/jsonc": "./parsers/jsonc-parse.mjs", "./parsers/yaml": "./parsers/yaml-parse.mjs" @@ -59,6 +60,7 @@ "CHANGELOG.md", "export-markdownlint.mjs", "export-markdownlint-helpers.mjs", + "export-markdownlint-promise.mjs", "LICENSE", "markdownlint-cli2.mjs", "markdownlint-cli2-bin.mjs", diff --git a/test/markdownlint-cli2-test-exports.mjs b/test/markdownlint-cli2-test-exports.mjs index 9b5940e2..0864160d 100644 --- a/test/markdownlint-cli2-test-exports.mjs +++ b/test/markdownlint-cli2-test-exports.mjs @@ -8,6 +8,7 @@ const exportMappings = new Map([ [ ".", "../markdownlint-cli2.mjs" ], [ "./markdownlint", "markdownlint" ], [ "./markdownlint/helpers", "markdownlint/helpers" ], + [ "./markdownlint/promise", "markdownlint/promise" ], [ "./parsers", "../parsers/parsers.mjs" ], [ "./parsers/jsonc", "../parsers/jsonc-parse.mjs" ], [ "./parsers/yaml", "../parsers/yaml-parse.mjs" ] @@ -20,14 +21,12 @@ test("exportMappings", (t) => { ); }); -const commonJsRe = /\.js$/u; - for (const [ exportName, exportPath ] of exportMappings) { test(exportName, async (t) => { - const commonJs = !commonJsRe.test(exportPath); + const commonJs = exportPath.includes("helpers"); const importExportName = await import(exportName.replace(/^\./u, packageJson.name)); const importExportPath = await import(exportPath); - t.is( + t.deepEqual( commonJs ? importExportName.default : importExportName, commonJs ? importExportPath.default : importExportPath );