Compare commits

...

6 Commits

Author SHA1 Message Date
75059dfca8 5.0.5 2024-02-13 01:46:23 +01:00
90c0f30ce1 fix(core): update 2024-02-13 01:46:22 +01:00
9a55303978 5.0.4 2024-02-13 00:50:51 +01:00
224125fb8e fix(core): update 2024-02-13 00:50:50 +01:00
df9d197508 5.0.3 2024-02-13 00:48:45 +01:00
ae33716af4 fix(core): update 2024-02-13 00:48:44 +01:00
3 changed files with 8 additions and 8 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@push.rocks/npmextra",
"version": "5.0.2",
"version": "5.0.5",
"private": false,
"description": "do more with npm",
"main": "dist_ts/index.js",

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@push.rocks/npmextra',
version: '5.0.2',
version: '5.0.5',
description: 'do more with npm'
}

View File

@@ -15,15 +15,15 @@ export interface IAppDataOptions {
};
}
export class AppData {
export class AppData<T = any> {
/**
* creates appdata. If no pathArg is given, data will be stored here:
* ${PWD}/.nogit/appdata
* @param pathArg
* @returns
*/
public static async createAndInit(optionsArg: IAppDataOptions = {}) {
const appData = new AppData(optionsArg);
public static async createAndInit<T = any>(optionsArg: IAppDataOptions = {}): Promise<AppData<T>> {
const appData = new AppData<T>(optionsArg);
await appData.readyDeferred.promise;
return appData;
}
@@ -31,7 +31,7 @@ export class AppData {
// instance
public readyDeferred = plugins.smartpromise.defer();
public options: IAppDataOptions;
private kvStore: KeyValueStore;
private kvStore: KeyValueStore<T>;
constructor(optionsArg: IAppDataOptions = {}) {
this.options = optionsArg;
this.init();
@@ -79,7 +79,7 @@ export class AppData {
}
// Determine the correct key to use (top-level or nested)
const effectiveKey = parentKey || key;
this.kvStore.writeKey(effectiveKey, envValue);
await this.kvStore.writeKey(effectiveKey, envValue);
}
} else if (typeof mappingValue === 'object' && mappingValue !== null) {
const resultObject = {};
@@ -91,7 +91,7 @@ export class AppData {
}
if (parentKey === '') {
// Only write to kvStore if at the top level
this.kvStore.writeKey(key, resultObject);
await this.kvStore.writeKey(key, resultObject);
} else {
// For nested objects, return the constructed object instead of writing to kvStore
return resultObject;