@electron/lint-roller 1.1.0 → 1.2.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.
package/README.md CHANGED
@@ -28,10 +28,14 @@ across repos. To use the base config, extend it in `.markdownlint.json`:
28
28
  `electron-markdownlint` is provided as a wrapper command which adds extra
29
29
  rules found in this package automatically.
30
30
 
31
- `electron-lint-markdown-links` is a command to further link links to find
31
+ `electron-lint-markdown-links` is a command to further lint links to find
32
32
  broken relative links, including URL fragments, and can also be used to
33
33
  check external links with the `--fetch-external-links` option.
34
34
 
35
+ `electron-lint-markdown-standard` is a command to lint JS code blocks in
36
+ Markdown with `standard`, like `standard-markdown` does, but with better
37
+ detection of code blocks.
38
+
35
39
  ## License
36
40
 
37
41
  MIT
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const fs = require("node:fs");
5
+ const path = require("node:path");
6
+ const minimist = require("minimist");
7
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
8
+ const vscode_uri_1 = require("vscode-uri");
9
+ const markdown_1 = require("../lib/markdown");
10
+ const DISABLED_RULES = [
11
+ 'no-labels',
12
+ 'no-lone-blocks',
13
+ 'no-undef',
14
+ 'no-unused-expressions',
15
+ 'no-unused-vars',
16
+ 'n/no-callback-literal',
17
+ ];
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
+ async function main(workspaceRoot, globs, { fix = false, ignoreGlobs = [] }) {
30
+ const { default: standard } = await dynamicImport('standard');
31
+ const workspace = new markdown_1.DocsWorkspace(workspaceRoot, globs, ignoreGlobs);
32
+ let lastFilePath;
33
+ let totalErrors = 0;
34
+ for (const document of await workspace.getAllMarkdownDocuments()) {
35
+ const uri = vscode_uri_1.URI.parse(document.uri);
36
+ const filepath = workspace.getWorkspaceRelativePath(uri);
37
+ const changes = [];
38
+ const jsCodeBlocks = (await (0, markdown_1.getCodeBlocks)(document)).filter((code) => code.lang && ['javascript', 'js'].includes(code.lang.toLowerCase()));
39
+ for (const codeBlock of jsCodeBlocks) {
40
+ if (codeBlock.lang && codeBlock.lang.toLowerCase() !== codeBlock.lang) {
41
+ totalErrors += 1;
42
+ if (filepath !== lastFilePath) {
43
+ console.log(`\n ${filepath}`);
44
+ lastFilePath = filepath;
45
+ }
46
+ const line = codeBlock.position.start.line;
47
+ const column = codeBlock.position.start.column;
48
+ const lineInfo = `${line}:${column}: `.padEnd(10);
49
+ console.log(` ${lineInfo}Code block language identifier should be all lowercase`);
50
+ }
51
+ // Skip empty code blocks
52
+ if (!codeBlock.value.trim()) {
53
+ continue;
54
+ }
55
+ const eslintDisable = `/* eslint-disable ${DISABLED_RULES.join(', ')} */`;
56
+ const results = await standard.lintText(`${eslintDisable}\n${wrapOrphanObjectInParens(codeBlock.value)}\n`, fix ? { fix: true } : undefined);
57
+ for (const result of results) {
58
+ totalErrors += result.errorCount + result.warningCount;
59
+ for (const message of result.messages) {
60
+ if (filepath !== lastFilePath) {
61
+ console.log(`\n ${filepath}`);
62
+ lastFilePath = filepath;
63
+ }
64
+ const line = codeBlock.position.start.line - 1;
65
+ const lineInfo = `${line + message.line}:${message.column}: `.padEnd(10);
66
+ console.log(` ${lineInfo}${message.message}`);
67
+ }
68
+ if (fix && result.output) {
69
+ const newText = removeParensWrappingOrphanedObject(result.output.slice(`${eslintDisable}\n`.length));
70
+ // The code block position includes the surrounding code fence,
71
+ // so use the line numbers inside of the code fence. Note that
72
+ // the code block positions are 1-based, but Range uses 0-based
73
+ const range = {
74
+ start: {
75
+ line: codeBlock.position.start.line,
76
+ character: 0,
77
+ },
78
+ end: {
79
+ line: codeBlock.position.end.line - 2,
80
+ character: Number.POSITIVE_INFINITY,
81
+ },
82
+ };
83
+ changes.push({ range, newText });
84
+ }
85
+ }
86
+ }
87
+ if (fix && changes.length) {
88
+ console.log(`File has changed: ${workspace.getWorkspaceRelativePath(uri)}`);
89
+ fs.writeFileSync(uri.fsPath, vscode_languageserver_textdocument_1.TextDocument.applyEdits(document, changes));
90
+ }
91
+ }
92
+ console.log(`\nThere are ${totalErrors} errors in '${workspaceRoot}'`);
93
+ return totalErrors > 0;
94
+ }
95
+ function parseCommandLine() {
96
+ const showUsage = (arg) => {
97
+ if (!arg || arg.startsWith('-')) {
98
+ console.log('Usage: electron-lint-markdown-standard --root <dir> <globs> [-h|--help] [--fix]' +
99
+ '[--ignore <globs>] [--ignore-path <path>]');
100
+ process.exit(1);
101
+ }
102
+ return true;
103
+ };
104
+ const opts = minimist(process.argv.slice(2), {
105
+ boolean: ['help', 'fix'],
106
+ string: ['root', 'ignore', 'ignore-path'],
107
+ unknown: showUsage,
108
+ });
109
+ if (opts.help || !opts.root || !opts._.length)
110
+ showUsage();
111
+ return opts;
112
+ }
113
+ if (require.main === module) {
114
+ const opts = parseCommandLine();
115
+ if (opts.ignore) {
116
+ opts.ignore = Array.isArray(opts.ignore) ? opts.ignore : [opts.ignore];
117
+ }
118
+ else {
119
+ opts.ignore = [];
120
+ }
121
+ if (opts['ignore-path']) {
122
+ const ignores = fs.readFileSync(path.resolve(opts['ignore-path']), { encoding: 'utf-8' });
123
+ for (const ignore of ignores.split('\n')) {
124
+ opts.ignore.push(ignore.trimEnd());
125
+ }
126
+ }
127
+ main(path.resolve(process.cwd(), opts.root), opts._, {
128
+ fix: opts.fix,
129
+ ignoreGlobs: opts.ignore,
130
+ })
131
+ .then((errors) => {
132
+ if (errors)
133
+ process.exit(1);
134
+ })
135
+ .catch((error) => {
136
+ console.error(error);
137
+ process.exit(1);
138
+ });
139
+ }
140
+ //# sourceMappingURL=lint-markdown-standard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-markdown-standard.js","sourceRoot":"","sources":["../../bin/lint-markdown-standard.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { FileStat, IMdLinkComputer, IMdParser, ITextDocument, IWorkspace, MdLink } from '@dsanders11/vscode-markdown-languageservice';
2
2
  import { TextDocument } from 'vscode-languageserver-textdocument';
3
3
  import { URI } from 'vscode-uri';
4
+ import type { Code } from 'mdast';
5
+ export type { Code };
4
6
  export declare class MarkdownParser implements IMdParser {
5
7
  slugifier: import("@dsanders11/vscode-markdown-languageservice").ISlugifier;
6
8
  tokenize(document: TextDocument): Promise<import("markdown-it/lib/token")[]>;
@@ -13,8 +15,9 @@ export declare class DocsWorkspace implements IWorkspace {
13
15
  readonly ignoreGlobs: string[];
14
16
  constructor(root: string, globs: string[], ignoreGlobs?: string[]);
15
17
  get workspaceFolders(): URI[];
16
- getAllMarkdownDocuments(): Promise<Iterable<ITextDocument>>;
18
+ getAllMarkdownDocuments(): Promise<Iterable<TextDocument>>;
17
19
  hasMarkdownDocument(resource: URI): boolean;
20
+ getWorkspaceRelativePath(resource: URI): string;
18
21
  openMarkdownDocument(resource: URI): Promise<TextDocument | undefined>;
19
22
  stat(resource: URI): Promise<FileStat | undefined>;
20
23
  readDirectory(): Promise<Iterable<readonly [string, FileStat]>>;
@@ -28,3 +31,4 @@ export declare class MarkdownLinkComputer implements IMdLinkComputer {
28
31
  constructor(workspace: IWorkspace);
29
32
  getAllLinks(document: ITextDocument): Promise<MdLink[]>;
30
33
  }
34
+ export declare function getCodeBlocks(document: ITextDocument): Promise<Code[]>;
@@ -6,7 +6,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
6
6
  };
7
7
  var _DocsWorkspace_onDidChangeMarkdownDocument, _DocsWorkspace_onDidCreateMarkdownDocument, _DocsWorkspace_onDidDeleteMarkdownDocument, _MarkdownLinkComputer_instances, _MarkdownLinkComputer_getInlineLinks, _MarkdownLinkComputer_getReferenceLinks, _MarkdownLinkComputer_getLinkDefinitions;
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.MarkdownLinkComputer = exports.DocsWorkspace = exports.MarkdownParser = void 0;
9
+ exports.getCodeBlocks = exports.MarkdownLinkComputer = exports.DocsWorkspace = exports.MarkdownParser = void 0;
10
10
  const fs = require("node:fs");
11
11
  const path = require("node:path");
12
12
  const glob = require("glob");
@@ -91,11 +91,14 @@ class DocsWorkspace {
91
91
  return this.documentCache.values();
92
92
  }
93
93
  hasMarkdownDocument(resource) {
94
- const relativePath = path.relative(path.resolve(this.root), resource.fsPath);
94
+ const relativePath = this.getWorkspaceRelativePath(resource);
95
95
  return (!relativePath.startsWith('..') &&
96
96
  !path.isAbsolute(relativePath) &&
97
97
  fs.existsSync(resource.fsPath));
98
98
  }
99
+ getWorkspaceRelativePath(resource) {
100
+ return path.relative(path.resolve(this.root), resource.fsPath);
101
+ }
99
102
  async openMarkdownDocument(resource) {
100
103
  if (!this.documentCache.has(resource.fsPath)) {
101
104
  try {
@@ -231,4 +234,15 @@ _MarkdownLinkComputer_instances = new WeakSet(), _MarkdownLinkComputer_getInline
231
234
  });
232
235
  return links;
233
236
  };
237
+ async function getCodeBlocks(document) {
238
+ const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown'));
239
+ const { visit } = (await dynamicImport('unist-util-visit'));
240
+ const tree = fromMarkdown(document.getText());
241
+ const codeBlocks = [];
242
+ visit(tree, (node) => node.type === 'code', (node) => {
243
+ codeBlocks.push(node);
244
+ });
245
+ return codeBlocks;
246
+ }
247
+ exports.getCodeBlocks = getCodeBlocks;
234
248
  //# sourceMappingURL=markdown.js.map
@@ -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/markdown.ts CHANGED
@@ -21,11 +21,13 @@ 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 type { Definition, ImageReference, Link, LinkReference } from 'mdast';
24
+ import type { Code, Definition, ImageReference, Link, LinkReference } from 'mdast';
25
25
  import type { fromMarkdown as FromMarkdownFunction } from 'mdast-util-from-markdown';
26
26
  import type { Node, Position } from 'unist';
27
27
  import type { visit as VisitFunction } from 'unist-util-visit';
28
28
 
29
+ export type { Code };
30
+
29
31
  // Helper function to work around import issues with ESM modules and ts-node
30
32
  // eslint-disable-next-line no-new-func
31
33
  const dynamicImport = new Function('specifier', 'return import(specifier)');
@@ -99,7 +101,7 @@ export class DocsWorkspace implements IWorkspace {
99
101
  return [URI.file(this.root)];
100
102
  }
101
103
 
102
- async getAllMarkdownDocuments(): Promise<Iterable<ITextDocument>> {
104
+ async getAllMarkdownDocuments(): Promise<Iterable<TextDocument>> {
103
105
  const files = this.globs.flatMap((pattern) =>
104
106
  glob.sync(pattern, { ignore: this.ignoreGlobs, absolute: true, cwd: this.root }),
105
107
  );
@@ -119,7 +121,7 @@ export class DocsWorkspace implements IWorkspace {
119
121
  }
120
122
 
121
123
  hasMarkdownDocument(resource: URI) {
122
- const relativePath = path.relative(path.resolve(this.root), resource.fsPath);
124
+ const relativePath = this.getWorkspaceRelativePath(resource);
123
125
  return (
124
126
  !relativePath.startsWith('..') &&
125
127
  !path.isAbsolute(relativePath) &&
@@ -127,6 +129,10 @@ export class DocsWorkspace implements IWorkspace {
127
129
  );
128
130
  }
129
131
 
132
+ getWorkspaceRelativePath(resource: URI) {
133
+ return path.relative(path.resolve(this.root), resource.fsPath);
134
+ }
135
+
130
136
  async openMarkdownDocument(resource: URI) {
131
137
  if (!this.documentCache.has(resource.fsPath)) {
132
138
  try {
@@ -330,3 +336,26 @@ export class MarkdownLinkComputer implements IMdLinkComputer {
330
336
  return links;
331
337
  }
332
338
  }
339
+
340
+ export async function getCodeBlocks(document: ITextDocument): Promise<Code[]> {
341
+ const { fromMarkdown } = (await dynamicImport('mdast-util-from-markdown')) as {
342
+ fromMarkdown: typeof FromMarkdownFunction;
343
+ };
344
+ const { visit } = (await dynamicImport('unist-util-visit')) as {
345
+ visit: typeof VisitFunction;
346
+ };
347
+
348
+ const tree = fromMarkdown(document.getText());
349
+
350
+ const codeBlocks: Code[] = [];
351
+
352
+ visit(
353
+ tree,
354
+ (node) => node.type === 'code',
355
+ (node: Node) => {
356
+ codeBlocks.push(node as Code);
357
+ },
358
+ );
359
+
360
+ return codeBlocks;
361
+ }
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@electron/lint-roller",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Markdown linting helpers for Electron org repos",
5
5
  "engines": {
6
6
  "node": ">=14.0.0"
7
7
  },
8
8
  "bin": {
9
9
  "electron-markdownlint": "./dist/bin/markdownlint-cli-wrapper.js",
10
- "electron-lint-markdown-links": "./dist/bin/lint-markdown-links.js"
10
+ "electron-lint-markdown-links": "./dist/bin/lint-markdown-links.js",
11
+ "electron-lint-markdown-standard": "./dist/bin/lint-markdown-standard.js"
11
12
  },
12
13
  "directories": {
13
14
  "lib": "lib"
@@ -59,6 +60,7 @@
59
60
  "mdast-util-from-markdown": "^1.3.0",
60
61
  "minimist": "^1.2.8",
61
62
  "node-fetch": "^2.6.9",
63
+ "standard": "^17.0.0",
62
64
  "unist-util-visit": "^4.1.2",
63
65
  "vscode-languageserver": "^8.1.0",
64
66
  "vscode-languageserver-textdocument": "^1.0.8",