From d3265d74492126cdaa9b08b1f068761460d0545e Mon Sep 17 00:00:00 2001 From: David Anson Date: Wed, 6 Nov 2024 21:18:51 -0800 Subject: [PATCH] Add support for input from stdin via "-" glob (fixes #414). --- README.md | 1 + markdownlint-cli2.js | 33 +++- test/markdownlint-cli2-test-exec.js | 156 +++++++++++++++++- test/markdownlint-cli2-test.js | 17 +- .../markdownlint-cli2-test-exec.js.md | 5 + .../markdownlint-cli2-test-exec.js.snap | Bin 18391 -> 18420 bytes .../snapshots/markdownlint-cli2-test-fs.js.md | 5 + .../markdownlint-cli2-test-fs.js.snap | Bin 6255 -> 6282 bytes .../markdownlint-cli2-test-main.js.md | 5 + .../markdownlint-cli2-test-main.js.snap | Bin 14230 -> 14259 bytes test/stdin-globs/.markdownlint-cli2.jsonc | 9 + test/stdin-globs/viewme.md | 13 ++ test/stdin/.markdownlint.jsonc | 3 + .../{stream-promises.js => module-empty.js} | 0 webworker/url-stub.js | 5 - webworker/webpack.config.js | 8 +- 16 files changed, 237 insertions(+), 23 deletions(-) create mode 100644 test/stdin-globs/.markdownlint-cli2.jsonc create mode 100644 test/stdin-globs/viewme.md create mode 100644 test/stdin/.markdownlint.jsonc rename webworker/{stream-promises.js => module-empty.js} (100%) delete mode 100644 webworker/url-stub.js diff --git a/README.md b/README.md index a871211c..a4644bd5 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ Glob expressions (from the globby library): - {} allows for a comma-separated list of "or" expressions - ! or # at the beginning of a pattern negate the match - : at the beginning identifies a literal file path +- - as a glob represents standard input (stdin) Dot-only glob: - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended diff --git a/markdownlint-cli2.js b/markdownlint-cli2.js index 3f8299e7..6327fa14 100755 --- a/markdownlint-cli2.js +++ b/markdownlint-cli2.js @@ -263,6 +263,7 @@ Glob expressions (from the globby library): - {} allows for a comma-separated list of "or" expressions - ! or # at the beginning of a pattern negate the match - : at the beginning identifies a literal file path +- - as a glob represents standard input (stdin) Dot-only glob: - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended @@ -807,7 +808,8 @@ const lintFiles = (fs, dirInfos, fileContents) => { task = task.then((results) => { options.files = []; const subTasks = []; - const errorFiles = Object.keys(results); + const errorFiles = Object.keys(results). + filter((result) => filteredFiles.includes(result)); for (const fileName of errorFiles) { const errorInfos = results[fileName]. filter((errorInfo) => errorInfo.fixInfo); @@ -909,11 +911,12 @@ const main = async (params) => { optionsDefault, optionsOverride, fileContents, - nonFileContents, - noRequire + noRequire, + allowStdin } = params; let { - noGlobs + noGlobs, + nonFileContents } = params; const logMessage = params.logMessage || noop; const logError = params.logError || noop; @@ -926,6 +929,7 @@ const main = async (params) => { let fixDefault = false; // eslint-disable-next-line unicorn/no-useless-undefined let configPath = undefined; + let useStdin = false; let sawDashDash = false; let shouldShowHelp = false; const argvFiltered = (argv || []).filter((arg) => { @@ -933,6 +937,8 @@ const main = async (params) => { return true; } else if (configPath === null) { configPath = arg; + } else if ((arg === "-") && allowStdin) { + useStdin = true; // eslint-disable-next-line unicorn/prefer-switch } else if (arg === "--") { sawDashDash = true; @@ -983,22 +989,30 @@ const main = async (params) => { } } if ( - ((globPatterns.length === 0) && !nonFileContents) || + ((globPatterns.length === 0) && !useStdin && !nonFileContents) || (configPath === null) ) { return showHelp(logMessage, false); } + // Add stdin as a non-file input if necessary + if (useStdin) { + const key = pathPosix.join(baseDir, "stdin"); + const { text } = require("node:stream/consumers"); + nonFileContents = { + ...nonFileContents, + [key]: await text(process.stdin) + }; + } // Include any file overrides or non-file content - const { baseMarkdownlintOptions, dirToDirInfo } = baseOptions; const resolvedFileContents = {}; for (const file in fileContents) { const resolvedFile = posixPath(pathDefault.resolve(baseDirSystem, file)); - resolvedFileContents[resolvedFile] = - fileContents[file]; + resolvedFileContents[resolvedFile] = fileContents[file]; } for (const nonFile in nonFileContents) { resolvedFileContents[nonFile] = nonFileContents[nonFile]; } + const { baseMarkdownlintOptions, dirToDirInfo } = baseOptions; appendToArray( dirToDirInfo[baseDir].files, Object.keys(nonFileContents || {}) @@ -1079,7 +1093,8 @@ const run = (overrides, args) => { const defaultParams = { "argv": argsAndArgv, "logMessage": console.log, - "logError": console.error + "logError": console.error, + "allowStdin": true }; const params = { ...defaultParams, diff --git a/test/markdownlint-cli2-test-exec.js b/test/markdownlint-cli2-test-exec.js index 95c1573d..394262f5 100644 --- a/test/markdownlint-cli2-test-exec.js +++ b/test/markdownlint-cli2-test-exec.js @@ -4,15 +4,19 @@ const fs = require("node:fs/promises"); const path = require("node:path"); +const test = require("ava").default; const testCases = require("./markdownlint-cli2-test-cases"); +const absolute = (rootDir, file) => path.join(rootDir, file); +const repositoryPath = (name) => path.join(__dirname, "..", name); + const invoke = (directory, args, noRequire, env, script) => async () => { await fs.access(directory); const { "default": spawn } = await import("nano-spawn"); return spawn( "node", [ - path.join(__dirname, "..", script || "markdownlint-cli2.js"), + repositoryPath(script || "markdownlint-cli2.js"), ...args ], { @@ -27,8 +31,6 @@ const invoke = (directory, args, noRequire, env, script) => async () => { catch((error) => error); }; -const absolute = (rootDir, file) => path.join(rootDir, file); - testCases({ "host": "exec", invoke, @@ -39,3 +41,151 @@ testCases({ "includeRequire": true, "includeAbsolute": true }); + +const invokeStdin = async (args, stdin, cwd) => { + const { "default": spawn } = await import("nano-spawn"); + return spawn( + "node", + [ + repositoryPath("markdownlint-cli2.js"), + ...args + ], + { + cwd, + "stdin": { "string": stdin } + } + ); +}; + +const validInput = "# Heading\n\nText\n"; +const invalidInput = "# Heading\n\nText"; + +test("- parameter with empty input from stdin", (t) => { + t.plan(1); + return invokeStdin( + [ "-" ], + "" + ). + then(() => t.pass()). + catch(() => t.fail()); +}); + +test("- parameter with valid input from stdin", (t) => { + t.plan(1); + return invokeStdin( + [ "-" ], + validInput + ). + then(() => t.pass()). + catch(() => t.fail()); +}); + +test("- parameter with invalid input from stdin", (t) => { + t.plan(2); + return invokeStdin( + [ "-" ], + invalidInput + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^stdin:1:3 MD019\/.*$[\n\r]+^stdin:3:4 MD047\/.*$/mu, "")); + }); +}); + +test("- parameter with invalid input from stdin and --fix", (t) => { + t.plan(2); + return invokeStdin( + [ "-", "--fix" ], + invalidInput + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^stdin:1:3 MD019\/.*$[\n\r]+^stdin:3:4 MD047\/.*$/mu, "")); + }); +}); + +test("- parameter multiple times with invalid input", (t) => { + t.plan(2); + return invokeStdin( + [ "-", "-" ], + invalidInput + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^stdin:1:3 MD019\/.*$[\n\r]+^stdin:3:4 MD047\/.*$/mu, "")); + }); +}); + +test("- parameter with valid input combined with valid globs", (t) => { + t.plan(1); + return invokeStdin( + [ repositoryPath("CONTRIBUTING.md"), "-", repositoryPath("README.md") ], + validInput + ). + then(() => t.pass()). + catch(() => t.fail()); +}); + +test("- parameter with invalid input combined with valid globs", (t) => { + t.plan(2); + return invokeStdin( + [ repositoryPath("CONTRIBUTING.md"), repositoryPath("README.md"), "-" ], + invalidInput + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^stdin:1:3 MD019\/.*$[\n\r]+^stdin:3:4 MD047\/.*$/mu, "")); + }); +}); + +test("- parameter with invalid input combined with invalid glob", (t) => { + t.plan(2); + return invokeStdin( + [ "-", repositoryPath("LICENSE") ], + invalidInput + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^LICENSE:1 MD041\/.*$[\n\r]+^stdin:1:3 MD019\/.*$[\n\r]+^stdin:3:4 MD047\/.*$/mu, "")); + }); +}); + +test("- parameter uses base directory configuration", (t) => { + t.plan(2); + return invokeStdin( + [ "-" ], + invalidInput, + path.join(__dirname, "stdin") + ). + then(() => t.fail()). + catch((error) => { + t.is(error.exitCode, 1); + t.is("", error.stderr.replace(/^stdin:1:3 MD019\/.*$/mu, "")); + }); +}); + +test("- parameter not treated as stdin in configuration file globs", (t) => { + t.plan(1); + return invokeStdin( + [], + invalidInput, + path.join(__dirname, "stdin-globs") + ). + then(() => t.pass()). + catch(() => t.fail()); +}); + +test("- parameter ignored after --", (t) => { + t.plan(1); + return invokeStdin( + [ "--", "-" ], + invalidInput + ). + then(() => t.pass()). + catch(() => t.fail()); +}); diff --git a/test/markdownlint-cli2-test.js b/test/markdownlint-cli2-test.js index 6f61afa2..b08503ca 100644 --- a/test/markdownlint-cli2-test.js +++ b/test/markdownlint-cli2-test.js @@ -67,7 +67,7 @@ test("README files", (t) => { }); test("validateMarkdownlintConfigSchema", async (t) => { - t.plan(26); + t.plan(27); // Validate schema // @ts-ignore @@ -111,7 +111,7 @@ test("validateMarkdownlintConfigSchema", async (t) => { }); test("validateMarkdownlintCli2ConfigSchema", async (t) => { - t.plan(90); + t.plan(91); // Validate schema // @ts-ignore @@ -696,3 +696,16 @@ test("-- stops matching parameters per POSIX Utility Conventions 12.2 Guideline files.push([ "/--", "# Title" ]); await scenario([ "--", "--" ], 1); }); + +test ("- not supported by main entry point", (t) => { + t.plan(2); + return markdownlintCli2({ + "argv": [ "-" ], + "optionsOverride": { + "outputFormatters": [ [ outputFormatterLengthIs(t, 0) ] ] + } + }). + then((exitCode) => { + t.is(exitCode, 0); + }); +}); diff --git a/test/snapshots/markdownlint-cli2-test-exec.js.md b/test/snapshots/markdownlint-cli2-test-exec.js.md index 639f0ae4..c6b5e6e6 100644 --- a/test/snapshots/markdownlint-cli2-test-exec.js.md +++ b/test/snapshots/markdownlint-cli2-test-exec.js.md @@ -27,6 +27,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -83,6 +84,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -139,6 +141,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -195,6 +198,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -681,6 +685,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ diff --git a/test/snapshots/markdownlint-cli2-test-exec.js.snap b/test/snapshots/markdownlint-cli2-test-exec.js.snap index 1eb224b036766ceee8707d6c2749762679ba2268..fed06ee8c246d744cf53ec87e8a1d399dec6d449 100644 GIT binary patch delta 18003 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 VGP5I@xuJT~{~t8msLVEl1OSQy+Z6x+ literal 18391 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 literal 6255 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 B8FK&t diff --git a/test/snapshots/markdownlint-cli2-test-main.js.md b/test/snapshots/markdownlint-cli2-test-main.js.md index 5e7236b9..c76a91bd 100644 --- a/test/snapshots/markdownlint-cli2-test-main.js.md +++ b/test/snapshots/markdownlint-cli2-test-main.js.md @@ -27,6 +27,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -84,6 +85,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -141,6 +143,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -198,6 +201,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ @@ -711,6 +715,7 @@ Generated by [AVA](https://avajs.dev). - {} allows for a comma-separated list of "or" expressions␊ - ! or # at the beginning of a pattern negate the match␊ - : at the beginning identifies a literal file path␊ + - - as a glob represents standard input (stdin)␊ ␊ Dot-only glob:␊ - The command "markdownlint-cli2 ." would lint every file in the current directory tree which is probably not intended␊ diff --git a/test/snapshots/markdownlint-cli2-test-main.js.snap b/test/snapshots/markdownlint-cli2-test-main.js.snap index 8483910134277dfc43c90aaadcee560f9a7feaf7..fe8d01fbfcc22cc739440b6e2885b54d3ebee8b8 100644 GIT binary patch delta 13935 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 delta 13859 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 Tagline + +## Description + +Text text text +Text text text +Text text text + +## Summary + +Text text text diff --git a/test/stdin/.markdownlint.jsonc b/test/stdin/.markdownlint.jsonc new file mode 100644 index 00000000..35c7d6f6 --- /dev/null +++ b/test/stdin/.markdownlint.jsonc @@ -0,0 +1,3 @@ +{ + "single-trailing-newline": false +} diff --git a/webworker/stream-promises.js b/webworker/module-empty.js similarity index 100% rename from webworker/stream-promises.js rename to webworker/module-empty.js diff --git a/webworker/url-stub.js b/webworker/url-stub.js deleted file mode 100644 index 6d30054f..00000000 --- a/webworker/url-stub.js +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-check - -"use strict"; - -module.exports = {}; diff --git a/webworker/webpack.config.js b/webworker/webpack.config.js index 69935fb7..2fcc75ee 100644 --- a/webworker/webpack.config.js +++ b/webworker/webpack.config.js @@ -27,11 +27,11 @@ module.exports = { resource.request = module; } ), - // Intercept "node:stream/promises" lacking a browserify entry + // Intercept "node:stream/consumers" and "node:stream/promises" lacking a browserify entry new webpack.NormalModuleReplacementPlugin( - /^stream\/promises$/u, + /^stream\/(?:consumers|promises)$/u, (resource) => { - resource.request = require.resolve("./stream-promises.js"); + resource.request = require.resolve("./module-empty.js"); } ), // Intercept existing "unicorn-magic" package to provide missing import @@ -55,7 +55,7 @@ module.exports = { "process": require.resolve("./process-stub.js"), "process-wrapper": require.resolve("./process-stub.js"), "stream": require.resolve("stream-browserify"), - "url": require.resolve("./url-stub.js") + "url": require.resolve("./module-empty.js") } } };