BREAKING CHANGE(core): update

This commit is contained in:
Philipp Kunz 2023-08-09 13:24:49 +02:00
parent 56ce78f794
commit 205d27f9a0
3 changed files with 20 additions and 10 deletions

View File

@ -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 () => { tap.test('key1 should be not be overwritten since it is already present', async () => {
expect(testQenv.getEnvVarOnDemand('key1')).toEqual('original'); expect(await testQenv.getEnvVarOnDemand('key1')).toEqual('original');
expect(testQenv.getEnvVarOnDemand('key1')).toEqual('original'); expect(await testQenv.getEnvVarOnDemand('key1')).toEqual('original');
}); });
tap.test('key2 should be read from Yml', async () => { tap.test('key2 should be read from Yml', async () => {
expect(testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); expect(await testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson');
expect(testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson'); expect(await testQenv.getEnvVarOnDemand('key2')).toEqual('fromJson');
}); });
tap.test('keyValueObjectArray should hold all retrieved values', async () => { tap.test('keyValueObjectArray should hold all retrieved values', async () => {
expect(testQenv.keyValueObject.key1).toEqual('original'); expect(await testQenv.keyValueObject.key1).toEqual('original');
expect(testQenv.keyValueObject.key2).toEqual('fromJson'); expect(await testQenv.keyValueObject.key2).toEqual('fromJson');
}); });
tap.start(); tap.start();

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/qenv', name: '@push.rocks/qenv',
version: '5.0.5', version: '6.0.0',
description: 'easy promised environments' description: 'easy promised environments'
} }

View File

@ -62,7 +62,7 @@ export class Qenv {
} }
} }
public getEnvVarOnDemand(envVarName: string): string | undefined { public async getEnvVarOnDemand(envVarName: string): Promise<string | undefined> {
return ( return (
this.getFromEnvironmentVariable(envVarName) || this.getFromEnvironmentVariable(envVarName) ||
this.getFromEnvJsonFile(envVarName) || this.getFromEnvJsonFile(envVarName) ||
@ -71,8 +71,18 @@ export class Qenv {
); );
} }
public getEnvVarOnDemandAsObject(envVarName: string): any { public async getEnvVarOnDemandSync(envVarName: string): Promise<string | undefined> {
const rawValue = this.getEnvVarOnDemand(envVarName); 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<any> {
const rawValue = await this.getEnvVarOnDemand(envVarName);
if (rawValue && rawValue.startsWith('base64Object:')) { if (rawValue && rawValue.startsWith('base64Object:')) {
const base64Part = rawValue.split('base64Object:')[1]; const base64Part = rawValue.split('base64Object:')[1];
return this.decodeBase64(base64Part); return this.decodeBase64(base64Part);