diff --git a/test/test.ts b/test/test.ts index 429879e..53fe336 100644 --- a/test/test.ts +++ b/test/test.ts @@ -18,18 +18,18 @@ tap.test('should create a new class', async () => { }); tap.test('key1 should be not be overwritten since it is already present', async () => { - expect(testQenv.getEnvVarOnDemand('key1')).toEqual('original'); - expect(testQenv.getEnvVarOnDemand('key1')).toEqual('original'); + expect(await testQenv.getEnvVarOnDemand('key1')).toEqual('original'); + expect(await testQenv.getEnvVarOnDemand('key1')).toEqual('original'); }); tap.test('key2 should be read from Yml', async () => { - expect(testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); - expect(testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); + expect(await testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); + expect(await testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); }); tap.test('keyValueObjectArray should hold all retrieved values', async () => { - expect(testQenv.keyValueObject.key1).toEqual('original'); - expect(testQenv.keyValueObject.key2).toEqual('fromJson'); + expect(await testQenv.keyValueObject.key1).toEqual('original'); + expect(await testQenv.keyValueObject.key2).toEqual('fromJson'); }); tap.start(); diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index a77ff84..78b5f8a 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@push.rocks/qenv', - version: '5.0.5', + version: '6.0.0', description: 'easy promised environments' } diff --git a/ts/qenv.classes.qenv.ts b/ts/qenv.classes.qenv.ts index d0d881c..5bc0be4 100644 --- a/ts/qenv.classes.qenv.ts +++ b/ts/qenv.classes.qenv.ts @@ -62,7 +62,7 @@ export class Qenv { } } - public getEnvVarOnDemand(envVarName: string): string | undefined { + public async getEnvVarOnDemand(envVarName: string): Promise { return ( this.getFromEnvironmentVariable(envVarName) || this.getFromEnvJsonFile(envVarName) || @@ -71,8 +71,18 @@ export class Qenv { ); } - public getEnvVarOnDemandAsObject(envVarName: string): any { - const rawValue = this.getEnvVarOnDemand(envVarName); + public async getEnvVarOnDemandSync(envVarName: string): Promise { + console.warn('requesting env var sync leaves out potentially important async env sources.'); + return ( + this.getFromEnvironmentVariable(envVarName) || + this.getFromEnvJsonFile(envVarName) || + this.getFromDockerSecret(envVarName) || + this.getFromDockerSecretJson(envVarName) + ); + } + + public async getEnvVarOnDemandAsObject(envVarName: string): Promise { + const rawValue = await this.getEnvVarOnDemand(envVarName); if (rawValue && rawValue.startsWith('base64Object:')) { const base64Part = rawValue.split('base64Object:')[1]; return this.decodeBase64(base64Part);