mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-17 14:30:12 +01:00
Update readConfig to use fs.access so the async path is fully async.
This commit is contained in:
parent
211f09afbc
commit
709e314836
5 changed files with 108 additions and 28 deletions
|
|
@ -1638,6 +1638,33 @@ function parseConfiguration(name, content, parsers) {
|
|||
message: message
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Resolve referenced "extends" path in a configuration file
|
||||
* using path.resolve() with require.resolve() as a fallback.
|
||||
*
|
||||
* @param {string} configFile Configuration file name.
|
||||
* @param {string} referenceId Referenced identifier to resolve.
|
||||
* @param {Object} fs File system implementation.
|
||||
* @param {ResolveConfigExtendsCallback} [callback] Callback (err, result)
|
||||
* function.
|
||||
* @returns {void}
|
||||
*/
|
||||
function resolveConfigExtends(configFile, referenceId, fs, callback) {
|
||||
var configFileDirname = path.dirname(configFile);
|
||||
var resolvedExtendsFile = path.resolve(configFileDirname, referenceId);
|
||||
fs.access(resolvedExtendsFile, function (err) {
|
||||
if (err) {
|
||||
// Not a file, try require.resolve
|
||||
try {
|
||||
return callback(null, dynamicRequire.resolve(referenceId, { "paths": [configFileDirname] }));
|
||||
}
|
||||
catch (_a) {
|
||||
// Unable to resolve, use resolvedExtendsFile
|
||||
}
|
||||
}
|
||||
return callback(null, resolvedExtendsFile);
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Resolve referenced "extends" path in a configuration file
|
||||
* using path.resolve() with require.resolve() as a fallback.
|
||||
|
|
@ -1647,7 +1674,7 @@ function parseConfiguration(name, content, parsers) {
|
|||
* @param {Object} fs File system implementation.
|
||||
* @returns {string} Resolved path to file.
|
||||
*/
|
||||
function resolveConfigExtends(configFile, referenceId, fs) {
|
||||
function resolveConfigExtendsSync(configFile, referenceId, fs) {
|
||||
var configFileDirname = path.dirname(configFile);
|
||||
var resolvedExtendsFile = path.resolve(configFileDirname, referenceId);
|
||||
try {
|
||||
|
|
@ -1705,13 +1732,12 @@ function readConfig(file, parsers, fs, callback) {
|
|||
var configExtends = config["extends"];
|
||||
if (configExtends) {
|
||||
delete config["extends"];
|
||||
var resolvedExtends = resolveConfigExtends(file, configExtends, fs);
|
||||
return readConfig(resolvedExtends, parsers, fs, function (errr, extendsConfig) {
|
||||
return resolveConfigExtends(file, configExtends, fs, function (_, resolvedExtends) { return readConfig(resolvedExtends, parsers, fs, function (errr, extendsConfig) {
|
||||
if (errr) {
|
||||
return callback(errr);
|
||||
}
|
||||
return callback(null, __assign(__assign({}, extendsConfig), config));
|
||||
});
|
||||
}); });
|
||||
}
|
||||
return callback(null, config);
|
||||
});
|
||||
|
|
@ -1752,7 +1778,7 @@ function readConfigSync(file, parsers, fs) {
|
|||
var configExtends = config["extends"];
|
||||
if (configExtends) {
|
||||
delete config["extends"];
|
||||
var resolvedExtends = resolveConfigExtends(file, configExtends, fs);
|
||||
var resolvedExtends = resolveConfigExtendsSync(file, configExtends, fs);
|
||||
return __assign(__assign({}, readConfigSync(resolvedExtends, parsers, fs)), config);
|
||||
}
|
||||
return config;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue