@netlify/config
Version:
Netlify config module
34 lines (33 loc) • 1.44 kB
JavaScript
import { normalizeConfigCase } from './case.js';
import { normalizeConfig } from './normalize.js';
import { addOrigins, CONFIG_ORIGIN } from './origin.js';
import { validateIdenticalPlugins } from './validate/identical.js';
import { validatePreCaseNormalize, validatePreMergeConfig, validateConfigFile, validatePreNormalizeConfig, validatePostNormalizeConfig, } from './validate/main.js';
/**
* Perform validation and normalization logic to apply to all of:
* - config, defaultConfig, inlineConfig
* - context-specific configs
* Therefore, this is performing before merging those together.
*/
export const normalizeBeforeConfigMerge = function (config, origin) {
validatePreCaseNormalize(config);
const configA = normalizeConfigCase(config);
validatePreMergeConfig(configA);
// Some properties are only allowed to be set from the user's `netlify.toml`
// file, so they are validated exclusively against that origin.
if (origin === CONFIG_ORIGIN) {
validateConfigFile(configA);
}
const configB = addOrigins(configA, origin);
validateIdenticalPlugins(configB);
return configB;
};
/**
* Validation and normalization logic performed after merging
*/
export const normalizeAfterConfigMerge = function (config, packagePath) {
validatePreNormalizeConfig(config);
const configA = normalizeConfig(config, packagePath);
validatePostNormalizeConfig(configA);
return configA;
};