markuplint
Version:
A Linter for All Markup Languages.
51 lines (50 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveConfigs = void 0;
const file_resolver_1 = require("@markuplint/file-resolver");
async function resolveConfigs(files, options) {
var _a;
const workspace = (_a = options.workspace) !== null && _a !== void 0 ? _a : process.cwd();
const configs = new Map();
if (options.config) {
let configSet;
if (typeof options.config === 'string') {
configSet = await file_resolver_1.loadConfigFile(options.config);
}
else {
const filePath = `${workspace}/__NO_FILE__`;
const _files = new Set([filePath]);
configSet = await file_resolver_1.recursiveLoad(options.config, filePath, _files, true);
}
if (configSet) {
for (const file of files) {
configs.set(file, configSet);
}
}
}
else {
let configSetNearbyCWD;
for (const file of files) {
const configSet = await file_resolver_1.searchConfigFile(file.path);
if (configSet) {
configs.set(file, configSet);
continue;
}
if (!configSetNearbyCWD) {
configSetNearbyCWD = await file_resolver_1.searchConfigFile(workspace);
}
if (configSetNearbyCWD) {
configs.set(file, configSetNearbyCWD);
}
else if (options.defaultConfig) {
configs.set(file, {
files: new Set([`${workspace}/__DEFAULT_SET__`]),
config: options.defaultConfig,
errs: [],
});
}
}
}
return configs;
}
exports.resolveConfigs = resolveConfigs;