Validate different file types with different rules.
This commit is contained in:
parent
1a7765712e
commit
0341d299c8
@ -148,7 +148,7 @@ export function buildRootChain(
|
|||||||
|
|
||||||
const configFileChain = emptyChain();
|
const configFileChain = emptyChain();
|
||||||
if (configFile) {
|
if (configFile) {
|
||||||
const result = loadFileChain(validateFile(configFile), context);
|
const result = loadFileChain(validateConfigFile(configFile), context);
|
||||||
if (!result) return null;
|
if (!result) return null;
|
||||||
|
|
||||||
mergeChain(configFileChain, result);
|
mergeChain(configFileChain, result);
|
||||||
@ -180,7 +180,7 @@ export function buildRootChain(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (babelrcFile) {
|
if (babelrcFile) {
|
||||||
const result = loadFileChain(validateFile(babelrcFile), context);
|
const result = loadFileChain(validateBabelrcFile(babelrcFile), context);
|
||||||
if (!result) return null;
|
if (!result) return null;
|
||||||
|
|
||||||
mergeChain(fileChain, result);
|
mergeChain(fileChain, result);
|
||||||
@ -231,10 +231,24 @@ function babelrcLoadEnabled(
|
|||||||
return micromatch(pkgData.directories, babelrcPatterns).length > 0;
|
return micromatch(pkgData.directories, babelrcPatterns).length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
const validateFile = makeWeakCache((file: ConfigFile): ValidatedFile => ({
|
const validateConfigFile = makeWeakCache((file: ConfigFile): ValidatedFile => ({
|
||||||
filepath: file.filepath,
|
filepath: file.filepath,
|
||||||
dirname: file.dirname,
|
dirname: file.dirname,
|
||||||
options: validate("file", file.options),
|
options: validate("configfile", file.options),
|
||||||
|
}));
|
||||||
|
|
||||||
|
const validateBabelrcFile = makeWeakCache(
|
||||||
|
(file: ConfigFile): ValidatedFile => ({
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: validate("babelrcfile", file.options),
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
const validateExtendFile = makeWeakCache((file: ConfigFile): ValidatedFile => ({
|
||||||
|
filepath: file.filepath,
|
||||||
|
dirname: file.dirname,
|
||||||
|
options: validate("extendsfile", file.options),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -434,7 +448,7 @@ function mergeExtendsChain(
|
|||||||
}
|
}
|
||||||
|
|
||||||
files.add(file);
|
files.add(file);
|
||||||
const fileChain = loadFileChain(validateFile(file), context, files);
|
const fileChain = loadFileChain(validateExtendFile(file), context, files);
|
||||||
files.delete(file);
|
files.delete(file);
|
||||||
|
|
||||||
if (!fileChain) return false;
|
if (!fileChain) return false;
|
||||||
|
|||||||
@ -243,7 +243,14 @@ export type SourceTypeOption = "module" | "script" | "unambiguous";
|
|||||||
export type CompactOption = boolean | "auto";
|
export type CompactOption = boolean | "auto";
|
||||||
export type RootInputSourceMapOption = {} | boolean;
|
export type RootInputSourceMapOption = {} | boolean;
|
||||||
|
|
||||||
export type OptionsType = "arguments" | "file" | "env" | "preset" | "override";
|
export type OptionsType =
|
||||||
|
| "arguments"
|
||||||
|
| "env"
|
||||||
|
| "preset"
|
||||||
|
| "override"
|
||||||
|
| "configfile"
|
||||||
|
| "babelrcfile"
|
||||||
|
| "extendsfile";
|
||||||
|
|
||||||
export function validate(type: OptionsType, opts: {}): ValidatedOptions {
|
export function validate(type: OptionsType, opts: {}): ValidatedOptions {
|
||||||
assertNoDuplicateSourcemap(opts);
|
assertNoDuplicateSourcemap(opts);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user