feat(appdata): Add support for overwriting keys using the overwriteObject option in AppData

This commit is contained in:
2024-11-05 15:11:01 +01:00
parent 3a53938e8e
commit b5f109d320
3 changed files with 55 additions and 2 deletions

View File

@ -1,8 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@push.rocks/npmextra',
version: '5.0.23',
version: '5.1.0',
description: 'A utility to enhance npm with additional configuration, tool management capabilities, and a key-value store for project setups.'
}

View File

@ -15,6 +15,7 @@ export interface IAppDataOptions<T = any> {
* kvStoreKey: 'MY_ENV_VAR'
*/
envMapping?: plugins.tsclass.typeFest.PartialDeep<T>;
overwriteObject?: plugins.tsclass.typeFest.PartialDeep<T>;
}
export class AppData<T = any> {
@ -175,6 +176,11 @@ export class AppData<T = any> {
for (const key in this.options.envMapping) {
await processEnvMapping(key as keyof T, this.options.envMapping[key]);
}
for (const key in Object.keys(this.options.overwriteObject)) {
console.log(`-> heads up: overwriting key ${key} from options.overwriteObject`);
await this.kvStore.writeKey(key as keyof T, this.options.overwriteObject[key]);
}
}
this.readyDeferred.resolve();