Compare commits

...

19 Commits

Author SHA1 Message Date
155cd8bd6a 5.0.12 2024-04-14 02:10:29 +02:00
5eebd0fd02 fix(core): update 2024-04-14 02:10:29 +02:00
686aa0d2e7 5.0.11 2024-04-14 02:09:41 +02:00
f97d72da28 fix(core): update 2024-04-14 02:09:41 +02:00
78d1540ce0 update npmextra.json: githost 2024-04-01 21:33:26 +02:00
916dd116c1 update npmextra.json: githost 2024-04-01 19:57:30 +02:00
5fd57cb56b update npmextra.json: githost 2024-03-30 21:46:27 +01:00
1a106e322c 5.0.10 2024-02-13 02:10:21 +01:00
36ded40032 fix(core): update 2024-02-13 02:10:21 +01:00
44f5f84195 5.0.9 2024-02-13 02:09:00 +01:00
72655a6a0e fix(core): update 2024-02-13 02:08:59 +01:00
961df11121 5.0.8 2024-02-13 02:04:05 +01:00
ee6f5e63ee fix(core): update 2024-02-13 02:04:04 +01:00
a40b6adeef 5.0.7 2024-02-13 02:01:39 +01:00
6ee324a0ef fix(core): update 2024-02-13 02:01:39 +01:00
215a48a409 5.0.6 2024-02-13 01:54:51 +01:00
aeaa6149e4 fix(core): update 2024-02-13 01:54:50 +01:00
75059dfca8 5.0.5 2024-02-13 01:46:23 +01:00
90c0f30ce1 fix(core): update 2024-02-13 01:46:22 +01:00
5 changed files with 25 additions and 11 deletions

View File

@ -11,12 +11,15 @@
"gitzone": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"githost": "code.foss.global",
"gitscope": "push.rocks",
"gitrepo": "npmextra",
"description": "do more with npm",
"npmPackagename": "@push.rocks/npmextra",
"license": "MIT"
}
},
"tsdocs": {
"legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
}
}

View File

@ -1,6 +1,6 @@
{
"name": "@push.rocks/npmextra",
"version": "5.0.4",
"version": "5.0.12",
"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.4',
version: '5.0.12',
description: 'do more with npm'
}

View File

@ -67,19 +67,28 @@ export class AppData<T = any> {
});
if (this.options.envMapping) {
const qenvInstance = new plugins.qenv.Qenv();
const qenvInstance = new plugins.qenv.Qenv(process.cwd(), plugins.path.join(process.cwd(), '.nogit'));
// Recursive function to handle nested objects, now includes key parameter
const processEnvMapping = async (key: string, mappingValue: any, parentKey: string = ''): Promise<any> => {
if (typeof mappingValue === 'string') {
let envValue = await qenvInstance.getEnvVarOnDemand(mappingValue);
let envValue: string;
if (mappingValue.startsWith('hard:')) {
envValue = mappingValue.replace('hard:', '');
} else {
envValue = await qenvInstance.getEnvVarOnDemand(mappingValue);
}
if (envValue) {
if (mappingValue.endsWith('_JSON')) {
envValue = JSON.parse(envValue);
}
// Determine the correct key to use (top-level or nested)
const effectiveKey = parentKey || key;
this.kvStore.writeKey(effectiveKey, envValue);
if (!parentKey) {
await this.kvStore.writeKey(key, envValue);
} else {
return envValue;
}
} else {
return undefined;
}
} else if (typeof mappingValue === 'object' && mappingValue !== null) {
const resultObject = {};
@ -91,7 +100,7 @@ export class AppData<T = any> {
}
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;
@ -119,7 +128,7 @@ export class AppData<T = any> {
public async logMissingKeys() {
const kvStore = await this.getKvStore();
const missingMandatoryKeys = kvStore.getMissingMandatoryKeys();
const missingMandatoryKeys = await kvStore.getMissingMandatoryKeys();
if (missingMandatoryKeys.length > 0) {
console.log(
`The following mandatory keys are missing in the appdata:\n -> ${missingMandatoryKeys.join(
@ -129,6 +138,7 @@ export class AppData<T = any> {
} else {
console.log('All mandatory keys are present in the appdata');
}
return missingMandatoryKeys;
}
public async waitForAndGetKey(keyArg: string) {

View File

@ -170,7 +170,8 @@ export class KeyValueStore<T = any> {
keys.forEach(key => this.mandatoryKeys.add(key));
}
public getMissingMandatoryKeys(): string[] {
public async getMissingMandatoryKeys(): Promise<string[]> {
await this.readAll();
return Array.from(this.mandatoryKeys).filter(key => !(key in this.dataObject));
}