mirror of
https://github.com/DavidAnson/markdownlint.git
synced 2025-12-21 16:30:12 +01:00
Support tilde paths ("~" prefix) in readConfig/Sync APIs (for "file" parameter and "extends" keys).
This commit is contained in:
parent
5505deb1c9
commit
ffc4d56918
6 changed files with 132 additions and 31 deletions
|
|
@ -995,6 +995,18 @@ function deepFreeze(obj) {
|
|||
return obj;
|
||||
}
|
||||
module.exports.deepFreeze = deepFreeze;
|
||||
/**
|
||||
* Expands a path with a tilde to an absolute path.
|
||||
*
|
||||
* @param {string} file Path that may begin with a tilde.
|
||||
* @param {Object} os Node.js "os" module.
|
||||
* @returns {string} Absolute path (or original path).
|
||||
*/
|
||||
function expandTildePath(file, os) {
|
||||
var homedir = os && os.homedir();
|
||||
return homedir ? file.replace(/^~($|\/|\\)/, "".concat(homedir, "$1")) : file;
|
||||
}
|
||||
module.exports.expandTildePath = expandTildePath;
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
|
@ -1030,6 +1042,16 @@ module.exports = markdownit;
|
|||
|
||||
/***/ }),
|
||||
|
||||
/***/ "?a32b":
|
||||
/*!********************!*\
|
||||
!*** os (ignored) ***!
|
||||
\********************/
|
||||
/***/ (() => {
|
||||
|
||||
/* (ignored) */
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "?b85c":
|
||||
/*!**********************!*\
|
||||
!*** path (ignored) ***!
|
||||
|
|
@ -2070,6 +2092,8 @@ function readConfig(file, parsers, fs, callback) {
|
|||
fs = __webpack_require__(/*! fs */ "?ec0a");
|
||||
}
|
||||
// Read file
|
||||
var os = __webpack_require__(/*! os */ "?a32b");
|
||||
file = helpers.expandTildePath(file, os);
|
||||
fs.readFile(file, "utf8", function (err, content) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
|
|
@ -2084,7 +2108,7 @@ function readConfig(file, parsers, fs, callback) {
|
|||
var configExtends = config.extends;
|
||||
if (configExtends) {
|
||||
delete config.extends;
|
||||
return resolveConfigExtends(file, configExtends, fs, function (_, resolvedExtends) { return readConfig(resolvedExtends, parsers, fs, function (errr, extendsConfig) {
|
||||
return resolveConfigExtends(file, helpers.expandTildePath(configExtends, os), fs, function (_, resolvedExtends) { return readConfig(resolvedExtends, parsers, fs, function (errr, extendsConfig) {
|
||||
if (errr) {
|
||||
return callback(errr);
|
||||
}
|
||||
|
|
@ -2121,6 +2145,8 @@ function readConfigSync(file, parsers, fs) {
|
|||
fs = __webpack_require__(/*! fs */ "?ec0a");
|
||||
}
|
||||
// Read file
|
||||
var os = __webpack_require__(/*! os */ "?a32b");
|
||||
file = helpers.expandTildePath(file, os);
|
||||
var content = fs.readFileSync(file, "utf8");
|
||||
// Try to parse file
|
||||
var _a = parseConfiguration(file, content, parsers), config = _a.config, message = _a.message;
|
||||
|
|
@ -2131,7 +2157,7 @@ function readConfigSync(file, parsers, fs) {
|
|||
var configExtends = config.extends;
|
||||
if (configExtends) {
|
||||
delete config.extends;
|
||||
var resolvedExtends = resolveConfigExtendsSync(file, configExtends, fs);
|
||||
var resolvedExtends = resolveConfigExtendsSync(file, helpers.expandTildePath(configExtends, os), fs);
|
||||
return __assign(__assign({}, readConfigSync(resolvedExtends, parsers, fs)), config);
|
||||
}
|
||||
return config;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue