Merge pull request #8719 from cmpadden/warn-app-config-deprecations
Warn users of deprecated keys in app configurations
This commit is contained in:
@@ -83,9 +83,21 @@ export class ConfigReader implements Config {
|
||||
// Merge together all configs into a single config with recursive fallback
|
||||
// readers, giving the first config object in the array the lowest priority.
|
||||
return configs.reduce<ConfigReader>(
|
||||
(previousReader, { data, context, filteredKeys }) => {
|
||||
(previousReader, { data, context, filteredKeys, deprecatedKeys }) => {
|
||||
const reader = new ConfigReader(data, context, previousReader);
|
||||
reader.filteredKeys = filteredKeys;
|
||||
|
||||
if (deprecatedKeys) {
|
||||
for (const { key, description } of deprecatedKeys) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(
|
||||
`The configuration key '${key}' of ${context} is deprecated and may be removed soon. ${
|
||||
description || ''
|
||||
}`,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return reader;
|
||||
},
|
||||
undefined!,
|
||||
|
||||
@@ -36,6 +36,12 @@ export type AppConfig = {
|
||||
* This can be used to warn the user if they try to read any of these keys.
|
||||
*/
|
||||
filteredKeys?: string[];
|
||||
/**
|
||||
* A list of deprecated keys that were found in the configuration when it was loaded.
|
||||
*
|
||||
* This can be used to warn the user if they are using deprecated properties.
|
||||
*/
|
||||
deprecatedKeys?: { key: string; description: string }[];
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user