@electron/lint-roller 1.2.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ electron.d.ts
package/README.md CHANGED
@@ -36,6 +36,11 @@ check external links with the `--fetch-external-links` option.
36
36
  Markdown with `standard`, like `standard-markdown` does, but with better
37
37
  detection of code blocks.
38
38
 
39
+ `electron-lint-markdown-ts-check` is a command to type check JS code blocks in
40
+ Markdown with `tsc`. Type checking can be disabled for specific code blocks
41
+ by adding `@ts-nocheck` to the info string, and specific lines can be ignored
42
+ by adding `@ts-ignore=[<line1>,<line2>]` to the info string.
43
+
39
44
  ## License
40
45
 
41
46
  MIT
@@ -6,6 +6,7 @@ const path = require("node:path");
6
6
  const minimist = require("minimist");
7
7
  const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
8
8
  const vscode_uri_1 = require("vscode-uri");
9
+ const helpers_1 = require("../lib/helpers");
9
10
  const markdown_1 = require("../lib/markdown");
10
11
  const DISABLED_RULES = [
11
12
  'no-labels',
@@ -15,19 +16,8 @@ const DISABLED_RULES = [
15
16
  'no-unused-vars',
16
17
  'n/no-callback-literal',
17
18
  ];
18
- // Helper function to work around import issues with ESM module
19
- // eslint-disable-next-line no-new-func
20
- const dynamicImport = new Function('specifier', 'return import(specifier)');
21
- // From zeke/standard-markdown
22
- function removeParensWrappingOrphanedObject(block) {
23
- return block.replace(/^\(([{|[][\s\S]+[}|\]])\)$/gm, '$1');
24
- }
25
- // From zeke/standard-markdown
26
- function wrapOrphanObjectInParens(block) {
27
- return block.replace(/^([{|[][\s\S]+[}|\]])$/gm, '($1)');
28
- }
29
19
  async function main(workspaceRoot, globs, { fix = false, ignoreGlobs = [] }) {
30
- const { default: standard } = await dynamicImport('standard');
20
+ const { default: standard } = await (0, helpers_1.dynamicImport)('standard');
31
21
  const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
32
22
  let lastFilePath;
33
23
  let totalErrors = 0;
@@ -53,7 +43,7 @@ async function main(workspaceRoot, globs, { fix = false, ignoreGlobs = [] }) {
53
43
  continue;
54
44
  }
55
45
  const eslintDisable = `/* eslint-disable ${DISABLED_RULES.join(', ')} */`;
56
- const results = await standard.lintText(`${eslintDisable}\n${wrapOrphanObjectInParens(codeBlock.value)}\n`, fix ? { fix: true } : undefined);
46
+ const results = await standard.lintText(`${eslintDisable}\n${(0, helpers_1.wrapOrphanObjectInParens)(codeBlock.value)}\n`, fix ? { fix: true } : undefined);
57
47
  for (const result of results) {
58
48
  totalErrors += result.errorCount + result.warningCount;
59
49
  for (const message of result.messages) {
@@ -68,7 +58,7 @@ async function main(workspaceRoot, globs, { fix = false, ignoreGlobs = [] }) {
68
58
  }
69
59
  if (fix && result.output) {
70
60
  const position = codeBlock.position;
71
- let newText = removeParensWrappingOrphanedObject(result.output.slice(`${eslintDisable}\n`.length));
61
+ let newText = (0, helpers_1.removeParensWrappingOrphanedObject)(result.output.slice(`${eslintDisable}\n`.length));
72
62
  // Code block might be indented - only indent non-blank lines
73
63
  if (position.start.column > 1) {
74
64
  newText = newText
@@ -1 +1 @@
1
- {"version":3,"file":"lint-markdown-standard.js","sourceRoot":"","sources":["../../bin/lint-markdown-standard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint-markdown-standard.js","sourceRoot":"","sources":["../../bin/lint-markdown-standard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const fs = require("node:fs");
5
+ const os = require("node:os");
6
+ const path = require("node:path");
7
+ const minimist = require("minimist");
8
+ const rimraf_1 = require("rimraf");
9
+ const vscode_uri_1 = require("vscode-uri");
10
+ const helpers_1 = require("../lib/helpers");
11
+ const markdown_1 = require("../lib/markdown");
12
+ const ELECTRON_MODULES = [
13
+ 'app',
14
+ 'autoUpdater',
15
+ 'contextBridge',
16
+ 'crashReporter',
17
+ 'dialog',
18
+ 'BrowserWindow',
19
+ 'ipcMain',
20
+ 'ipcRenderer',
21
+ 'Menu',
22
+ 'MessageChannelMain',
23
+ 'nativeImage',
24
+ 'net',
25
+ 'protocol',
26
+ 'session',
27
+ 'systemPreferences',
28
+ 'Tray',
29
+ 'utilityProcess',
30
+ 'webFrameMain',
31
+ ];
32
+ const NODE_IMPORTS = "const fs = require('node:fs'); const path = require('node:path')";
33
+ const DEFAULT_IMPORTS = `${NODE_IMPORTS}; const { ${ELECTRON_MODULES.join(', ')} } = require('electron')`;
34
+ // TODO(dsanders11): Refactor to make this script general purpose and
35
+ // not tied to Electron - will require passing in the list of modules
36
+ // as a CLI option, probably a file since there's a lot of info
37
+ async function main(workspaceRoot, globs, { ignoreGlobs = [] }) {
38
+ var _a, _b, _c;
39
+ const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
40
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'electron-ts-check-'));
41
+ try {
42
+ const filenames = [];
43
+ const originalFilenames = new Map();
44
+ // Copy over the typings so that a relative path can be used
45
+ fs.copyFileSync(path.join(process.cwd(), 'electron.d.ts'), path.join(tempDir, 'electron.d.ts'));
46
+ let errors = false;
47
+ for (const document of await workspace.getAllMarkdownDocuments()) {
48
+ const uri = vscode_uri_1.URI.parse(document.uri);
49
+ const filepath = workspace.getWorkspaceRelativePath(uri);
50
+ const jsCodeBlocks = (await (0, markdown_1.getCodeBlocks)(document)).filter((code) => code.lang && ['javascript', 'js'].includes(code.lang.toLowerCase()));
51
+ for (const codeBlock of jsCodeBlocks) {
52
+ const line = codeBlock.position.start.line;
53
+ const indent = codeBlock.position.start.column - 1;
54
+ const tsNoCheck = (_a = codeBlock.meta) === null || _a === void 0 ? void 0 : _a.split(' ').includes('@ts-nocheck');
55
+ const tsIgnoreLines = (_c = (_b = codeBlock.meta) === null || _b === void 0 ? void 0 : _b.match(/\B@ts-ignore=\[([\d,]*)\]\B/)) === null || _c === void 0 ? void 0 : _c[1].split(',').map(parseInt);
56
+ if (tsNoCheck && tsIgnoreLines) {
57
+ console.log(`${filepath}:${line}:${indent + 1}: Code block has both @ts-nocheck and @ts-ignore, they conflict`);
58
+ errors = true;
59
+ continue;
60
+ }
61
+ // Skip blocks with @ts-nocheck in their info string
62
+ if (tsNoCheck) {
63
+ continue;
64
+ }
65
+ // Skip empty code blocks
66
+ if (!codeBlock.value.trim()) {
67
+ continue;
68
+ }
69
+ // Blocks can have @ts-ignore=[1,10,50] in their info string
70
+ // (1-based lines) to insert an "// @ts-ignore" comment before
71
+ // specified lines, in order to ignore specific lines (like
72
+ // requires of extra modules) without skipping the whole block
73
+ const codeLines = codeBlock.value.split('\n');
74
+ for (const line of tsIgnoreLines !== null && tsIgnoreLines !== void 0 ? tsIgnoreLines : []) {
75
+ codeLines.splice(line - 1, 0, '// @ts-ignore');
76
+ }
77
+ // Indent the lines if necessary so that tsc output is accurate
78
+ const code = (0, helpers_1.wrapOrphanObjectInParens)(codeLines
79
+ .map((line) => (line.length ? line.padStart(line.length + indent) : line))
80
+ .join('\n'));
81
+ // If there are no require() lines, insert a default set of
82
+ // imports so that most snippets will have what they need.
83
+ // This isn't foolproof and might cause name conflicts
84
+ const imports = codeBlock.value.includes(' require(') ? '' : DEFAULT_IMPORTS;
85
+ const types = '/// <reference path="electron.d.ts" />';
86
+ // Insert the necessary number of blank lines so that the line
87
+ // numbers in output from tsc is accurate to the original file
88
+ const blankLines = '\n'.repeat(line - 3);
89
+ // Filename is unique since it is the name of the original Markdown
90
+ // file, with the starting line number of the codeblock appended
91
+ const filename = path.join(tempDir, `${filepath
92
+ .replace(new RegExp(path.sep.replace(/\\/g, '\\\\'), 'g'), '-')
93
+ .replace(/\./g, '-')}-${line}.js`);
94
+ fs.writeFileSync(filename, `// @ts-check\n${types}\n${imports}\n${blankLines}${code}\n`);
95
+ filenames.push(filename);
96
+ originalFilenames.set(filename, filepath);
97
+ }
98
+ }
99
+ for (const chunk of (0, helpers_1.chunkFilenames)(filenames)) {
100
+ const tscExec = path.join(require.resolve('typescript'), '..', '..', 'bin', 'tsc');
101
+ const args = [tscExec, '--noEmit', '--checkJs', '--pretty', ...chunk];
102
+ const { status, stderr, stdout } = await (0, helpers_1.spawnAsync)(process.execPath, args);
103
+ if (stderr) {
104
+ throw new Error(stderr);
105
+ }
106
+ // Replace the temp file paths with the original source filename
107
+ let correctedOutput = stdout.replace(new RegExp(`${path.relative(process.cwd(), tempDir)}${path.sep}`.replace(/\\/g, path.posix.sep), 'g'), '');
108
+ if (correctedOutput.trim()) {
109
+ for (const [filename, originalFilename] of originalFilenames.entries()) {
110
+ correctedOutput = correctedOutput.replace(new RegExp(path.basename(filename), 'g'), originalFilename);
111
+ }
112
+ console.log(correctedOutput);
113
+ }
114
+ errors = errors || status !== 0;
115
+ }
116
+ return errors;
117
+ }
118
+ finally {
119
+ await (0, rimraf_1.rimraf)(tempDir);
120
+ }
121
+ }
122
+ function parseCommandLine() {
123
+ const showUsage = (arg) => {
124
+ if (!arg || arg.startsWith('-')) {
125
+ console.log('Usage: electron-lint-markdown-ts-check --root <dir> <globs> [-h|--help]' +
126
+ '[--ignore <globs>] [--ignore-path <path>]');
127
+ process.exit(1);
128
+ }
129
+ return true;
130
+ };
131
+ const opts = minimist(process.argv.slice(2), {
132
+ boolean: ['help'],
133
+ string: ['root', 'ignore', 'ignore-path'],
134
+ unknown: showUsage,
135
+ });
136
+ if (opts.help || !opts.root || !opts._.length)
137
+ showUsage();
138
+ return opts;
139
+ }
140
+ if (require.main === module) {
141
+ const opts = parseCommandLine();
142
+ if (opts.ignore) {
143
+ opts.ignore = Array.isArray(opts.ignore) ? opts.ignore : [opts.ignore];
144
+ }
145
+ else {
146
+ opts.ignore = [];
147
+ }
148
+ if (opts['ignore-path']) {
149
+ const ignores = fs.readFileSync(path.resolve(opts['ignore-path']), { encoding: 'utf-8' });
150
+ for (const ignore of ignores.split('\n')) {
151
+ opts.ignore.push(ignore.trimEnd());
152
+ }
153
+ }
154
+ main(path.resolve(process.cwd(), opts.root), opts._, {
155
+ ignoreGlobs: opts.ignore,
156
+ })
157
+ .then((errors) => {
158
+ if (errors)
159
+ process.exit(1);
160
+ })
161
+ .catch((error) => {
162
+ console.error(error);
163
+ process.exit(1);
164
+ });
165
+ }
166
+ //# sourceMappingURL=lint-markdown-ts-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-markdown-ts-check.js","sourceRoot":"","sources":["../../bin/lint-markdown-ts-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ import * as childProcess from 'node:child_process';
3
+ export declare const dynamicImport: Function;
4
+ export declare function removeParensWrappingOrphanedObject(block: string): string;
5
+ export declare function wrapOrphanObjectInParens(block: string): string;
6
+ export type SpawnAsyncResult = {
7
+ stdout: string;
8
+ stderr: string;
9
+ status: number | null;
10
+ };
11
+ export declare function spawnAsync(command: string, args: string[], options?: childProcess.SpawnOptionsWithoutStdio | undefined): Promise<SpawnAsyncResult>;
12
+ export declare function chunkFilenames(filenames: string[], offset?: number): string[][];
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chunkFilenames = exports.spawnAsync = exports.wrapOrphanObjectInParens = exports.removeParensWrappingOrphanedObject = exports.dynamicImport = void 0;
4
+ const childProcess = require("node:child_process");
5
+ const os = require("node:os");
6
+ // Helper function to work around import issues with ESM module
7
+ // eslint-disable-next-line no-new-func
8
+ exports.dynamicImport = new Function('specifier', 'return import(specifier)');
9
+ // From zeke/standard-markdown
10
+ function removeParensWrappingOrphanedObject(block) {
11
+ return block.replace(/^\(([{|[][\s\S]+[}|\]])\)$/gm, '$1');
12
+ }
13
+ exports.removeParensWrappingOrphanedObject = removeParensWrappingOrphanedObject;
14
+ // From zeke/standard-markdown
15
+ function wrapOrphanObjectInParens(block) {
16
+ return block.replace(/^([{|[][\s\S]+[}|\]])$/gm, '($1)');
17
+ }
18
+ exports.wrapOrphanObjectInParens = wrapOrphanObjectInParens;
19
+ async function spawnAsync(command, args, options) {
20
+ return new Promise((resolve, reject) => {
21
+ try {
22
+ const stdio = { stdout: '', stderr: '' };
23
+ const spawned = childProcess.spawn(command, args, options || {});
24
+ spawned.stdout.on('data', (data) => {
25
+ stdio.stdout += data;
26
+ });
27
+ spawned.stderr.on('data', (data) => {
28
+ stdio.stderr += data;
29
+ });
30
+ spawned.on('exit', (code) => resolve(Object.assign(Object.assign({}, stdio), { status: code })));
31
+ spawned.on('error', (err) => reject(err));
32
+ }
33
+ catch (err) {
34
+ reject(err);
35
+ }
36
+ });
37
+ }
38
+ exports.spawnAsync = spawnAsync;
39
+ function chunkFilenames(filenames, offset = 0) {
40
+ // Windows has a max command line length of 2047 characters, so we can't
41
+ // provide too many filenames without going over that. To work around that,
42
+ // chunk up a list of filenames such that it won't go over that limit when
43
+ // used as args. Use a much higher limit on other platforms which will
44
+ // effectively be a no-op.
45
+ const MAX_FILENAME_ARGS_LENGTH = os.platform() === 'win32' ? 2047 - offset : 100 * 1024;
46
+ return filenames.reduce((chunkedFilenames, filename) => {
47
+ const currChunk = chunkedFilenames[chunkedFilenames.length - 1];
48
+ const currChunkLength = currChunk.reduce((totalLength, _filename) => totalLength + _filename.length + 1, 0);
49
+ if (currChunkLength + filename.length + 1 > MAX_FILENAME_ARGS_LENGTH) {
50
+ chunkedFilenames.push([filename]);
51
+ }
52
+ else {
53
+ currChunk.push(filename);
54
+ }
55
+ return chunkedFilenames;
56
+ }, [[]]);
57
+ }
58
+ exports.chunkFilenames = chunkFilenames;
59
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../lib/helpers.ts"],"names":[],"mappings":";;;AAAA,mDAAmD;AACnD,8BAA8B;AAE9B,+DAA+D;AAC/D,uCAAuC;AAC1B,QAAA,aAAa,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;AAEnF,8BAA8B;AAC9B,SAAgB,kCAAkC,CAAC,KAAa;IAC9D,OAAO,KAAK,CAAC,OAAO,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,gFAEC;AAED,8BAA8B;AAC9B,SAAgB,wBAAwB,CAAC,KAAa;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC;AAFD,4DAEC;AAQM,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,IAAc,EACd,OAA2D;IAE3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI;YACF,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAEjE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,iCAAM,KAAK,KAAE,MAAM,EAAE,IAAI,IAAG,CAAC,CAAC;YAClE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxBD,gCAwBC;AAED,SAAgB,cAAc,CAAC,SAAmB,EAAE,SAAiB,CAAC;IACpE,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,0BAA0B;IAC1B,MAAM,wBAAwB,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC;IAExF,OAAO,SAAS,CAAC,MAAM,CACrB,CAAC,gBAA4B,EAAE,QAAQ,EAAE,EAAE;QACzC,MAAM,SAAS,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CACtC,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,EAC9D,CAAC,CACF,CAAC;QACF,IAAI,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,wBAAwB,EAAE;YACpE,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnC;aAAM;YACL,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,EACD,CAAC,EAAE,CAAC,CACL,CAAC;AACJ,CAAC;AAxBD,wCAwBC"}
@@ -15,9 +15,7 @@ const vscode_markdown_languageservice_1 = require("@dsanders11/vscode-markdown-l
15
15
  const vscode_languageserver_1 = require("vscode-languageserver");
16
16
  const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
17
17
  const vscode_uri_1 = require("vscode-uri");
18
- // Helper function to work around import issues with ESM modules and ts-node
19
- // eslint-disable-next-line no-new-func
20
- const dynamicImport = new Function('specifier', 'return import(specifier)');
18
+ const helpers_1 = require("./helpers");
21
19
  // Helper function from `vscode-markdown-languageservice` codebase
22
20
  function tryDecodeUri(str) {
23
21
  try {
@@ -130,7 +128,7 @@ class MarkdownLinkComputer {
130
128
  this.workspace = workspace;
131
129
  }
132
130
  async getAllLinks(document) {
133
- const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown'));
131
+ const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
134
132
  const tree = fromMarkdown(document.getText());
135
133
  const links = [
136
134
  ...(await __classPrivateFieldGet(this, _MarkdownLinkComputer_instances, "m", _MarkdownLinkComputer_getInlineLinks).call(this, document, tree)),
@@ -142,7 +140,7 @@ class MarkdownLinkComputer {
142
140
  }
143
141
  exports.MarkdownLinkComputer = MarkdownLinkComputer;
144
142
  _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInlineLinks = async function _MarkdownLinkComputer_getInlineLinks(document, tree) {
145
- const { visit } = (await dynamicImport('unist-util-visit'));
143
+ const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
146
144
  const documentUri = vscode_uri_1.URI.parse(document.uri);
147
145
  const links = [];
148
146
  visit(tree, (node) => node.type === 'link', (node) => {
@@ -172,7 +170,7 @@ _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInline
172
170
  });
173
171
  return links;
174
172
  }, _MarkdownLinkComputer_getReferenceLinks = async function _MarkdownLinkComputer_getReferenceLinks(document, tree) {
175
- const { visit } = (await dynamicImport('unist-util-visit'));
173
+ const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
176
174
  const links = [];
177
175
  visit(tree, (node) => ['imageReference', 'linkReference'].includes(node.type), (node) => {
178
176
  const link = node;
@@ -200,7 +198,7 @@ _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInline
200
198
  });
201
199
  return links;
202
200
  }, _MarkdownLinkComputer_getLinkDefinitions = async function _MarkdownLinkComputer_getLinkDefinitions(document, tree) {
203
- const { visit } = (await dynamicImport('unist-util-visit'));
201
+ const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
204
202
  const documentUri = vscode_uri_1.URI.parse(document.uri);
205
203
  const links = [];
206
204
  visit(tree, (node) => node.type === 'definition', (node) => {
@@ -235,8 +233,8 @@ _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInline
235
233
  return links;
236
234
  };
237
235
  async function getCodeBlocks(document) {
238
- const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown'));
239
- const { visit } = (await dynamicImport('unist-util-visit'));
236
+ const { fromMarkdown } = (await (0, helpers_1.dynamicImport)('mdast-util-from-markdown'));
237
+ const { visit } = (await (0, helpers_1.dynamicImport)('unist-util-visit'));
240
238
  const tree = fromMarkdown(document.getText());
241
239
  const codeBlocks = [];
242
240
  visit(tree, (node) => node.type === 'code', (node) => {
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../lib/markdown.ts"],"names":[],"mappings":"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"}
package/lib/helpers.ts ADDED
@@ -0,0 +1,74 @@
1
+ import * as childProcess from 'node:child_process';
2
+ import * as os from 'node:os';
3
+
4
+ // Helper function to work around import issues with ESM module
5
+ // eslint-disable-next-line no-new-func
6
+ export const dynamicImport = new Function('specifier', 'return import(specifier)');
7
+
8
+ // From zeke/standard-markdown
9
+ export function removeParensWrappingOrphanedObject(block: string) {
10
+ return block.replace(/^\(([{|[][\s\S]+[}|\]])\)$/gm, '$1');
11
+ }
12
+
13
+ // From zeke/standard-markdown
14
+ export function wrapOrphanObjectInParens(block: string) {
15
+ return block.replace(/^([{|[][\s\S]+[}|\]])$/gm, '($1)');
16
+ }
17
+
18
+ export type SpawnAsyncResult = {
19
+ stdout: string;
20
+ stderr: string;
21
+ status: number | null;
22
+ };
23
+
24
+ export async function spawnAsync(
25
+ command: string,
26
+ args: string[],
27
+ options?: childProcess.SpawnOptionsWithoutStdio | undefined,
28
+ ): Promise<SpawnAsyncResult> {
29
+ return new Promise((resolve, reject) => {
30
+ try {
31
+ const stdio = { stdout: '', stderr: '' };
32
+ const spawned = childProcess.spawn(command, args, options || {});
33
+
34
+ spawned.stdout.on('data', (data) => {
35
+ stdio.stdout += data;
36
+ });
37
+
38
+ spawned.stderr.on('data', (data) => {
39
+ stdio.stderr += data;
40
+ });
41
+
42
+ spawned.on('exit', (code) => resolve({ ...stdio, status: code }));
43
+ spawned.on('error', (err) => reject(err));
44
+ } catch (err) {
45
+ reject(err);
46
+ }
47
+ });
48
+ }
49
+
50
+ export function chunkFilenames(filenames: string[], offset: number = 0): string[][] {
51
+ // Windows has a max command line length of 2047 characters, so we can't
52
+ // provide too many filenames without going over that. To work around that,
53
+ // chunk up a list of filenames such that it won't go over that limit when
54
+ // used as args. Use a much higher limit on other platforms which will
55
+ // effectively be a no-op.
56
+ const MAX_FILENAME_ARGS_LENGTH = os.platform() === 'win32' ? 2047 - offset : 100 * 1024;
57
+
58
+ return filenames.reduce(
59
+ (chunkedFilenames: string[][], filename) => {
60
+ const currChunk = chunkedFilenames[chunkedFilenames.length - 1];
61
+ const currChunkLength = currChunk.reduce(
62
+ (totalLength, _filename) => totalLength + _filename.length + 1,
63
+ 0,
64
+ );
65
+ if (currChunkLength + filename.length + 1 > MAX_FILENAME_ARGS_LENGTH) {
66
+ chunkedFilenames.push([filename]);
67
+ } else {
68
+ currChunk.push(filename);
69
+ }
70
+ return chunkedFilenames;
71
+ },
72
+ [[]],
73
+ );
74
+ }
package/lib/markdown.ts CHANGED
@@ -21,6 +21,8 @@ import { Emitter, Range } from 'vscode-languageserver';
21
21
  import { TextDocument } from 'vscode-languageserver-textdocument';
22
22
  import { URI } from 'vscode-uri';
23
23
 
24
+ import { dynamicImport } from './helpers';
25
+
24
26
  import type { Code, Definition, ImageReference, Link, LinkReference } from 'mdast';
25
27
  import type { fromMarkdown as FromMarkdownFunction } from 'mdast-util-from-markdown';
26
28
  import type { Node, Position } from 'unist';
@@ -28,10 +30,6 @@ import type { visit as VisitFunction } from 'unist-util-visit';
28
30
 
29
31
  export type { Code };
30
32
 
31
- // Helper function to work around import issues with ESM modules and ts-node
32
- // eslint-disable-next-line no-new-func
33
- const dynamicImport = new Function('specifier', 'return import(specifier)');
34
-
35
33
  // Helper function from `vscode-markdown-languageservice` codebase
36
34
  function tryDecodeUri(str: string): string {
37
35
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electron/lint-roller",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "description": "Markdown linting helpers for Electron org repos",
5
5
  "engines": {
6
6
  "node": ">=14.0.0"
@@ -8,7 +8,8 @@
8
8
  "bin": {
9
9
  "electron-markdownlint": "./dist/bin/markdownlint-cli-wrapper.js",
10
10
  "electron-lint-markdown-links": "./dist/bin/lint-markdown-links.js",
11
- "electron-lint-markdown-standard": "./dist/bin/lint-markdown-standard.js"
11
+ "electron-lint-markdown-standard": "./dist/bin/lint-markdown-standard.js",
12
+ "electron-lint-markdown-ts-check": "./dist/bin/lint-markdown-ts-check.js"
12
13
  },
13
14
  "directories": {
14
15
  "lib": "lib"
@@ -60,10 +61,14 @@
60
61
  "mdast-util-from-markdown": "^1.3.0",
61
62
  "minimist": "^1.2.8",
62
63
  "node-fetch": "^2.6.9",
64
+ "rimraf": "^4.4.1",
63
65
  "standard": "^17.0.0",
64
66
  "unist-util-visit": "^4.1.2",
65
67
  "vscode-languageserver": "^8.1.0",
66
68
  "vscode-languageserver-textdocument": "^1.0.8",
67
69
  "vscode-uri": "^3.0.7"
70
+ },
71
+ "peerDependencies": {
72
+ "typescript": "^4.5.5"
68
73
  }
69
74
  }