mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-17 06:20:12 +01:00
Remove Q dependency, replace with native Promise/promisify.
This commit is contained in:
parent
213aef4564
commit
f77b7ae4ec
3 changed files with 21 additions and 10 deletions
|
|
@ -4,7 +4,8 @@
|
||||||
"ecmaVersion": 6
|
"ecmaVersion": 6
|
||||||
},
|
},
|
||||||
"env": {
|
"env": {
|
||||||
"node": true
|
"node": true,
|
||||||
|
"es6": true
|
||||||
},
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"accessor-pairs": "error",
|
"accessor-pairs": "error",
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,6 @@
|
||||||
"glob": "~7.1.2",
|
"glob": "~7.1.2",
|
||||||
"istanbul": "~0.4.5",
|
"istanbul": "~0.4.5",
|
||||||
"nodeunit": "~0.11.2",
|
"nodeunit": "~0.11.2",
|
||||||
"q": "~1.5.1",
|
|
||||||
"rimraf": "~2.6.2",
|
"rimraf": "~2.6.2",
|
||||||
"tv4": "~1.3.0",
|
"tv4": "~1.3.0",
|
||||||
"typescript": "~2.8.3",
|
"typescript": "~2.8.3",
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const md = require("markdown-it")();
|
const md = require("markdown-it")();
|
||||||
const Q = require("q");
|
|
||||||
const tv4 = require("tv4");
|
const tv4 = require("tv4");
|
||||||
const markdownlint = require("../lib/markdownlint");
|
const markdownlint = require("../lib/markdownlint");
|
||||||
const shared = require("../lib/shared");
|
const shared = require("../lib/shared");
|
||||||
|
|
@ -12,16 +11,27 @@ const customRules = require("./rules");
|
||||||
const defaultConfig = require("./markdownlint-test-default-config.json");
|
const defaultConfig = require("./markdownlint-test-default-config.json");
|
||||||
const configSchema = require("../schema/markdownlint-config-schema.json");
|
const configSchema = require("../schema/markdownlint-config-schema.json");
|
||||||
|
|
||||||
|
function promisify(func, ...args) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
func(...args, (error, result) => {
|
||||||
|
if (error) {
|
||||||
|
return reject(error);
|
||||||
|
}
|
||||||
|
resolve(result);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function createTestForFile(file) {
|
function createTestForFile(file) {
|
||||||
return function testForFile(test) {
|
return function testForFile(test) {
|
||||||
test.expect(1);
|
test.expect(1);
|
||||||
const detailedResults = /[/\\]detailed-results-/.test(file);
|
const detailedResults = /[/\\]detailed-results-/.test(file);
|
||||||
const resultsFile = file.replace(/\.md$/, ".results.json");
|
const resultsFile = file.replace(/\.md$/, ".results.json");
|
||||||
const configFile = file.replace(/\.md$/, ".json");
|
const configFile = file.replace(/\.md$/, ".json");
|
||||||
const actualPromise = Q.nfcall(fs.stat, configFile)
|
const actualPromise = promisify(fs.stat, configFile)
|
||||||
.then(
|
.then(
|
||||||
function configFileExists() {
|
function configFileExists() {
|
||||||
return Q.nfcall(fs.readFile, configFile, shared.utf8Encoding)
|
return promisify(fs.readFile, configFile, shared.utf8Encoding)
|
||||||
.then(JSON.parse);
|
.then(JSON.parse);
|
||||||
},
|
},
|
||||||
function noConfigFile() {
|
function noConfigFile() {
|
||||||
|
|
@ -31,16 +41,16 @@ function createTestForFile(file) {
|
||||||
function lintWithConfig(config) {
|
function lintWithConfig(config) {
|
||||||
const mergedConfig =
|
const mergedConfig =
|
||||||
shared.assign(shared.clone(defaultConfig), config);
|
shared.assign(shared.clone(defaultConfig), config);
|
||||||
return Q.nfcall(markdownlint, {
|
return promisify(markdownlint, {
|
||||||
"files": [ file ],
|
"files": [ file ],
|
||||||
"config": mergedConfig,
|
"config": mergedConfig,
|
||||||
"resultVersion": detailedResults ? 2 : 0
|
"resultVersion": detailedResults ? 2 : 0
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
const expectedPromise = detailedResults ?
|
const expectedPromise = detailedResults ?
|
||||||
Q.nfcall(fs.readFile, resultsFile, shared.utf8Encoding)
|
promisify(fs.readFile, resultsFile, shared.utf8Encoding)
|
||||||
.then(JSON.parse) :
|
.then(JSON.parse) :
|
||||||
Q.nfcall(fs.readFile, file, shared.utf8Encoding)
|
promisify(fs.readFile, file, shared.utf8Encoding)
|
||||||
.then(
|
.then(
|
||||||
function fileContents(contents) {
|
function fileContents(contents) {
|
||||||
const lines = contents.split(shared.newLineRe);
|
const lines = contents.split(shared.newLineRe);
|
||||||
|
|
@ -61,7 +71,7 @@ function createTestForFile(file) {
|
||||||
});
|
});
|
||||||
return sortedResults;
|
return sortedResults;
|
||||||
});
|
});
|
||||||
Q.all([ actualPromise, expectedPromise ])
|
Promise.all([ actualPromise, expectedPromise ])
|
||||||
.then(
|
.then(
|
||||||
function compareResults(fulfillments) {
|
function compareResults(fulfillments) {
|
||||||
const actual = fulfillments[0];
|
const actual = fulfillments[0];
|
||||||
|
|
@ -70,7 +80,8 @@ function createTestForFile(file) {
|
||||||
expected[file] = results;
|
expected[file] = results;
|
||||||
test.deepEqual(actual, expected, "Line numbers are not correct.");
|
test.deepEqual(actual, expected, "Line numbers are not correct.");
|
||||||
})
|
})
|
||||||
.done(test.done, test.done);
|
.catch()
|
||||||
|
.then(test.done);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue