Skip to content

Commit 794167a

Browse files
committedMay 2, 2020
Defer require-ing modules that may not be referenced.
1 parent 17c3b4e commit 794167a

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed
 

‎markdownlint.js

+11-10
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,28 @@ const fs = require('fs');
66
const path = require('path');
77
const Module = require('module');
88
const program = require('commander');
9-
const getStdin = require('get-stdin');
10-
const jsYaml = require('js-yaml');
11-
const jsoncParser = require('jsonc-parser');
129
const differenceWith = require('lodash.differencewith');
1310
const flatten = require('lodash.flatten');
14-
const extend = require('deep-extend');
15-
const ignore = require('ignore');
1611
const markdownlint = require('markdownlint');
17-
const markdownlintRuleHelpers = require('markdownlint-rule-helpers');
1812
const rc = require('rc');
1913
const glob = require('glob');
2014
const minimatch = require('minimatch');
2115
const pkg = require('./package');
2216

2317
function jsoncParse(text) {
24-
return JSON.parse(jsoncParser.stripComments(text));
18+
return JSON.parse(require('jsonc-parser').stripComments(text));
19+
}
20+
21+
function jsYamlSafeLoad(text) {
22+
return require('js-yaml').safeLoad(text);
2523
}
2624

2725
const projectConfigFiles = [
2826
'.markdownlint.json',
2927
'.markdownlint.yaml',
3028
'.markdownlint.yml'
3129
];
32-
const configFileParsers = [jsoncParse, jsYaml.safeLoad];
30+
const configFileParsers = [jsoncParse, jsYamlSafeLoad];
3331
const fsOptions = {encoding: 'utf8'};
3432

3533
function readConfiguration(args) {
@@ -39,7 +37,7 @@ function readConfiguration(args) {
3937
try {
4038
fs.accessSync(projectConfigFile, fs.R_OK);
4139
const projectConfig = markdownlint.readConfigSync(projectConfigFile, configFileParsers);
42-
config = extend(config, projectConfig);
40+
config = require('deep-extend')(config, projectConfig);
4341
break;
4442
} catch (_) {
4543
// Ignore failure
@@ -53,7 +51,7 @@ function readConfiguration(args) {
5351
if (userConfigFile) {
5452
try {
5553
const userConfig = markdownlint.readConfigSync(userConfigFile, configFileParsers);
56-
config = extend(config, userConfig);
54+
config = require('deep-extend')(config, userConfig);
5755
} catch (error) {
5856
console.warn('Cannot read or parse config file ' + args.config + ': ' + error.message);
5957
}
@@ -231,6 +229,7 @@ if (program.ignorePath) {
231229
let ignoreFilter = () => true;
232230
if (existsSync(ignorePath)) {
233231
const ignoreText = fs.readFileSync(ignorePath, fsOptions);
232+
const ignore = require('ignore');
234233
const ignoreInstance = ignore().add(ignoreText);
235234
ignoreFilter = fileInfo => !ignoreInstance.ignores(fileInfo.relative);
236235
}
@@ -264,6 +263,7 @@ function lintAndPrint(stdin, files) {
264263
...lintOptions,
265264
resultVersion: 3
266265
};
266+
const markdownlintRuleHelpers = require('markdownlint-rule-helpers');
267267
files.forEach(file => {
268268
fixOptions.files = [file];
269269
const fixResult = markdownlint.sync(fixOptions);
@@ -285,6 +285,7 @@ function lintAndPrint(stdin, files) {
285285
if ((files.length > 0) && !program.stdin) {
286286
lintAndPrint(null, diff);
287287
} else if ((files.length === 0) && program.stdin && !program.fix) {
288+
const getStdin = require('get-stdin');
288289
getStdin().then(lintAndPrint);
289290
} else {
290291
program.help();

0 commit comments

Comments
 (0)
Please sign in to comment.