Support tilde paths ("~" prefix) in readConfig/Sync APIs (for "file" parameter and "extends" keys).

This commit is contained in:
David Anson 2022-05-16 22:57:11 -07:00
parent 5505deb1c9
commit ffc4d56918
6 changed files with 132 additions and 31 deletions

View file

@ -1026,6 +1026,8 @@ function readConfig(file, parsers, fs, callback) {
fs = require("fs");
}
// Read file
const os = require("os");
file = helpers.expandTildePath(file, os);
fs.readFile(file, "utf8", (err, content) => {
if (err) {
return callback(err);
@ -1042,7 +1044,7 @@ function readConfig(file, parsers, fs, callback) {
delete config.extends;
return resolveConfigExtends(
file,
configExtends,
helpers.expandTildePath(configExtends, os),
fs,
(_, resolvedExtends) => readConfig(
resolvedExtends,
@ -1093,6 +1095,8 @@ function readConfigSync(file, parsers, fs) {
fs = require("fs");
}
// Read file
const os = require("os");
file = helpers.expandTildePath(file, os);
const content = fs.readFileSync(file, "utf8");
// Try to parse file
const { config, message } = parseConfiguration(file, content, parsers);
@ -1103,7 +1107,11 @@ function readConfigSync(file, parsers, fs) {
const configExtends = config.extends;
if (configExtends) {
delete config.extends;
const resolvedExtends = resolveConfigExtendsSync(file, configExtends, fs);
const resolvedExtends = resolveConfigExtendsSync(
file,
helpers.expandTildePath(configExtends, os),
fs
);
return {
...readConfigSync(resolvedExtends, parsers, fs),
...config