@push.rocks/qenv 6.0.2 → 6.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/qenv.classes.configvaultadapter.d.ts +1 -1
- package/dist_ts/qenv.classes.configvaultadapter.js +3 -3
- package/dist_ts/qenv.classes.qenv.d.ts +5 -4
- package/dist_ts/qenv.classes.qenv.js +17 -9
- package/dist_ts/qenv.plugins.d.ts +1 -0
- package/package.json +16 -16
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/qenv.classes.configvaultadapter.ts +3 -3
- package/ts/qenv.classes.qenv.ts +25 -14
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@push.rocks/qenv',
|
|
6
|
-
version: '6.0.
|
|
6
|
+
version: '6.0.5',
|
|
7
7
|
description: 'easy promised environments'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDRCQUE0QjtDQUMxQyxDQUFBIn0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from './qenv.plugins.js';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class CloudlyAdapter {
|
|
3
3
|
configVaultUrl: string;
|
|
4
4
|
constructor(configVaultUrl?: string);
|
|
5
5
|
getConfigBundle(): Promise<plugins.configvaultInterfaces.data.IConfigBundle>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from './qenv.plugins.js';
|
|
2
|
-
export class
|
|
2
|
+
export class CloudlyAdapter {
|
|
3
3
|
constructor(configVaultUrl) {
|
|
4
4
|
this.configVaultUrl = configVaultUrl;
|
|
5
5
|
}
|
|
@@ -14,10 +14,10 @@ export class ConfigVaultAdapter {
|
|
|
14
14
|
return null;
|
|
15
15
|
}
|
|
16
16
|
const parsedUrl = new URL(this.configVaultUrl);
|
|
17
|
-
const tr = new plugins.typedrequest.TypedRequest(`${parsedUrl.host}/typedrequest`, '
|
|
17
|
+
const tr = new plugins.typedrequest.TypedRequest(`${parsedUrl.host}/typedrequest`, 'getEnvBundle');
|
|
18
18
|
const response = await tr.fire({
|
|
19
19
|
authorization: parsedUrl.pathname.replace('/', ''),
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWVudi5jbGFzc2VzLmNvbmZpZ3ZhdWx0YWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3FlbnYuY2xhc3Nlcy5jb25maWd2YXVsdGFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFZLGNBQXVCO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZTtRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7UUFDMUQsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0MsTUFBTSxFQUFFLEdBQ04sSUFBSSxPQUFPLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FDbkMsR0FBRyxTQUFTLENBQUMsSUFBSSxlQUFlLEVBQ2hDLGNBQWMsQ0FDZixDQUFDO1FBQ0osTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQzdCLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1NBQ25ELENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiJ9
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CloudlyAdapter } from './qenv.classes.configvaultadapter.js';
|
|
2
2
|
import * as plugins from './qenv.plugins.js';
|
|
3
|
+
export type TEnvVarRef = string | (() => Promise<string>);
|
|
3
4
|
export declare class Qenv {
|
|
4
5
|
requiredEnvVars: string[];
|
|
5
6
|
availableEnvVars: string[];
|
|
@@ -8,15 +9,15 @@ export declare class Qenv {
|
|
|
8
9
|
[key: string]: any;
|
|
9
10
|
};
|
|
10
11
|
logger: plugins.smartlog.ConsoleLog;
|
|
11
|
-
|
|
12
|
+
cloudlyAdapter: CloudlyAdapter;
|
|
12
13
|
qenvFilePathAbsolute: string;
|
|
13
14
|
envFilePathAbsolute: string;
|
|
14
|
-
constructor(qenvFileBasePathArg
|
|
15
|
+
constructor(qenvFileBasePathArg?: string, envFileBasePathArg?: string, failOnMissing?: boolean);
|
|
15
16
|
private initializeFilePaths;
|
|
16
17
|
private loadRequiredEnvVars;
|
|
17
18
|
private loadAvailableEnvVars;
|
|
18
19
|
private checkForMissingEnvVars;
|
|
19
|
-
getEnvVarOnDemand(envVarNameOrNames:
|
|
20
|
+
getEnvVarOnDemand(envVarNameOrNames: TEnvVarRef | TEnvVarRef[]): Promise<string | undefined>;
|
|
20
21
|
getEnvVarOnDemandSync(envVarNameOrNames: string | string[]): string | undefined;
|
|
21
22
|
getEnvVarOnDemandAsObject(envVarNameOrNames: string | string[]): Promise<any>;
|
|
22
23
|
private tryGetEnvVar;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CloudlyAdapter } from './qenv.classes.configvaultadapter.js';
|
|
2
2
|
import * as plugins from './qenv.plugins.js';
|
|
3
3
|
export class Qenv {
|
|
4
4
|
constructor(qenvFileBasePathArg = process.cwd(), envFileBasePathArg, failOnMissing = true) {
|
|
@@ -7,7 +7,7 @@ export class Qenv {
|
|
|
7
7
|
this.missingEnvVars = [];
|
|
8
8
|
this.keyValueObject = {};
|
|
9
9
|
this.logger = new plugins.smartlog.ConsoleLog();
|
|
10
|
-
this.
|
|
10
|
+
this.cloudlyAdapter = new CloudlyAdapter();
|
|
11
11
|
this.initializeFilePaths(qenvFileBasePathArg, envFileBasePathArg);
|
|
12
12
|
this.loadRequiredEnvVars();
|
|
13
13
|
this.loadAvailableEnvVars();
|
|
@@ -15,7 +15,9 @@ export class Qenv {
|
|
|
15
15
|
}
|
|
16
16
|
initializeFilePaths(qenvFileBasePathArg, envFileBasePathArg) {
|
|
17
17
|
this.qenvFilePathAbsolute = plugins.path.join(plugins.path.resolve(qenvFileBasePathArg), 'qenv.yml');
|
|
18
|
-
|
|
18
|
+
if (envFileBasePathArg) {
|
|
19
|
+
this.envFilePathAbsolute = plugins.path.join(plugins.path.resolve(envFileBasePathArg), 'env.json');
|
|
20
|
+
}
|
|
19
21
|
}
|
|
20
22
|
loadRequiredEnvVars() {
|
|
21
23
|
if (plugins.smartfile.fs.fileExistsSync(this.qenvFilePathAbsolute)) {
|
|
@@ -88,11 +90,14 @@ export class Qenv {
|
|
|
88
90
|
}
|
|
89
91
|
return rawValue;
|
|
90
92
|
}
|
|
91
|
-
async tryGetEnvVar(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
async tryGetEnvVar(envVarRefArg) {
|
|
94
|
+
if (typeof envVarRefArg === 'function') {
|
|
95
|
+
return await envVarRefArg();
|
|
96
|
+
}
|
|
97
|
+
return (this.getFromEnvironmentVariable(envVarRefArg) ||
|
|
98
|
+
this.getFromEnvJsonFile(envVarRefArg) ||
|
|
99
|
+
this.getFromDockerSecret(envVarRefArg) ||
|
|
100
|
+
this.getFromDockerSecretJson(envVarRefArg));
|
|
96
101
|
}
|
|
97
102
|
tryGetEnvVarSync(envVarName) {
|
|
98
103
|
return (this.getFromEnvironmentVariable(envVarName) ||
|
|
@@ -104,6 +109,9 @@ export class Qenv {
|
|
|
104
109
|
return process.env[envVarName];
|
|
105
110
|
}
|
|
106
111
|
getFromEnvJsonFile(envVarName) {
|
|
112
|
+
if (!plugins.smartfile.fs.fileExistsSync(this.envFilePathAbsolute)) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
107
115
|
try {
|
|
108
116
|
const envJson = plugins.smartfile.fs.toObjectSync(this.envFilePathAbsolute);
|
|
109
117
|
const value = envJson[envVarName];
|
|
@@ -148,4 +156,4 @@ export class Qenv {
|
|
|
148
156
|
return JSON.parse(decodedString);
|
|
149
157
|
}
|
|
150
158
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicWVudi5jbGFzc2VzLnFlbnYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9xZW52LmNsYXNzZXMucWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxLQUFLLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUk3QyxNQUFNLE9BQU8sSUFBSTtJQVlmLFlBQ0Usc0JBQThCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDM0Msa0JBQTJCLEVBQzNCLGdCQUF5QixJQUFJO1FBZHhCLG9CQUFlLEdBQWEsRUFBRSxDQUFDO1FBQy9CLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixtQkFBYyxHQUEyQixFQUFFLENBQUM7UUFDNUMsV0FBTSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQVloRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxtQkFBMkIsRUFBRSxrQkFBMEI7UUFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxFQUN6QyxVQUFVLENBQ1gsQ0FBQztRQUNGLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsT0FBTyxD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
|
package/package.json
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/qenv",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.5",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "easy promised environments",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
8
8
|
"type": "module",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "(tstest test/)",
|
|
11
|
-
"build": "(tsbuild --web --allowimplicitany)",
|
|
12
|
-
"buildDocs": "tsdoc"
|
|
13
|
-
},
|
|
14
9
|
"repository": {
|
|
15
10
|
"type": "git",
|
|
16
11
|
"url": "git+ssh://git@gitlab.com/pushrocks/qenv.git"
|
|
@@ -27,16 +22,16 @@
|
|
|
27
22
|
},
|
|
28
23
|
"homepage": "https://gitlab.com/pushrocks/qenv#README",
|
|
29
24
|
"devDependencies": {
|
|
30
|
-
"@
|
|
31
|
-
"@
|
|
32
|
-
"@
|
|
33
|
-
"@push.rocks/tapbundle": "^5.0.
|
|
34
|
-
"@types/node": "^20.
|
|
25
|
+
"@git.zone/tsbuild": "^2.1.72",
|
|
26
|
+
"@git.zone/tsrun": "^1.2.44",
|
|
27
|
+
"@git.zone/tstest": "^1.0.86",
|
|
28
|
+
"@push.rocks/tapbundle": "^5.0.15",
|
|
29
|
+
"@types/node": "^20.11.17"
|
|
35
30
|
},
|
|
36
31
|
"dependencies": {
|
|
37
|
-
"@api.global/typedrequest": "^3.0.
|
|
38
|
-
"@configvault.io/interfaces": "^1.0.
|
|
39
|
-
"@push.rocks/smartfile": "^
|
|
32
|
+
"@api.global/typedrequest": "^3.0.4",
|
|
33
|
+
"@configvault.io/interfaces": "^1.0.17",
|
|
34
|
+
"@push.rocks/smartfile": "^11.0.4",
|
|
40
35
|
"@push.rocks/smartlog": "^3.0.3",
|
|
41
36
|
"@push.rocks/smartpath": "^5.0.11"
|
|
42
37
|
},
|
|
@@ -54,5 +49,10 @@
|
|
|
54
49
|
],
|
|
55
50
|
"browserslist": [
|
|
56
51
|
"last 1 chrome versions"
|
|
57
|
-
]
|
|
58
|
-
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"test": "(tstest test/)",
|
|
55
|
+
"build": "(tsbuild --web --allowimplicitany)",
|
|
56
|
+
"buildDocs": "tsdoc"
|
|
57
|
+
}
|
|
58
|
+
}
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as plugins from './qenv.plugins.js';
|
|
2
2
|
|
|
3
|
-
export class
|
|
3
|
+
export class CloudlyAdapter {
|
|
4
4
|
public configVaultUrl: string;
|
|
5
5
|
|
|
6
6
|
constructor(configVaultUrl?: string) {
|
|
@@ -19,9 +19,9 @@ export class ConfigVaultAdapter {
|
|
|
19
19
|
const parsedUrl = new URL(this.configVaultUrl);
|
|
20
20
|
|
|
21
21
|
const tr =
|
|
22
|
-
new plugins.typedrequest.TypedRequest<plugins.configvaultInterfaces.requests.
|
|
22
|
+
new plugins.typedrequest.TypedRequest<plugins.configvaultInterfaces.requests.IReq_GetEnvBundle>(
|
|
23
23
|
`${parsedUrl.host}/typedrequest`,
|
|
24
|
-
'
|
|
24
|
+
'getEnvBundle'
|
|
25
25
|
);
|
|
26
26
|
const response = await tr.fire({
|
|
27
27
|
authorization: parsedUrl.pathname.replace('/', ''),
|
package/ts/qenv.classes.qenv.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CloudlyAdapter } from './qenv.classes.configvaultadapter.js';
|
|
2
2
|
import * as plugins from './qenv.plugins.js';
|
|
3
3
|
|
|
4
|
+
export type TEnvVarRef = string | (() => Promise<string>);
|
|
5
|
+
|
|
4
6
|
export class Qenv {
|
|
5
7
|
public requiredEnvVars: string[] = [];
|
|
6
8
|
public availableEnvVars: string[] = [];
|
|
@@ -8,17 +10,17 @@ export class Qenv {
|
|
|
8
10
|
public keyValueObject: { [key: string]: any } = {};
|
|
9
11
|
public logger = new plugins.smartlog.ConsoleLog();
|
|
10
12
|
|
|
11
|
-
public
|
|
13
|
+
public cloudlyAdapter: CloudlyAdapter;
|
|
12
14
|
|
|
13
15
|
public qenvFilePathAbsolute: string;
|
|
14
16
|
public envFilePathAbsolute: string;
|
|
15
17
|
|
|
16
18
|
constructor(
|
|
17
19
|
qenvFileBasePathArg: string = process.cwd(),
|
|
18
|
-
envFileBasePathArg
|
|
20
|
+
envFileBasePathArg?: string,
|
|
19
21
|
failOnMissing: boolean = true
|
|
20
22
|
) {
|
|
21
|
-
this.
|
|
23
|
+
this.cloudlyAdapter = new CloudlyAdapter();
|
|
22
24
|
this.initializeFilePaths(qenvFileBasePathArg, envFileBasePathArg);
|
|
23
25
|
this.loadRequiredEnvVars();
|
|
24
26
|
this.loadAvailableEnvVars();
|
|
@@ -30,10 +32,12 @@ export class Qenv {
|
|
|
30
32
|
plugins.path.resolve(qenvFileBasePathArg),
|
|
31
33
|
'qenv.yml'
|
|
32
34
|
);
|
|
33
|
-
|
|
34
|
-
plugins.path.
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
if (envFileBasePathArg) {
|
|
36
|
+
this.envFilePathAbsolute = plugins.path.join(
|
|
37
|
+
plugins.path.resolve(envFileBasePathArg),
|
|
38
|
+
'env.json'
|
|
39
|
+
);
|
|
40
|
+
}
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
private loadRequiredEnvVars() {
|
|
@@ -75,7 +79,7 @@ export class Qenv {
|
|
|
75
79
|
}
|
|
76
80
|
|
|
77
81
|
public async getEnvVarOnDemand(
|
|
78
|
-
envVarNameOrNames:
|
|
82
|
+
envVarNameOrNames: TEnvVarRef | TEnvVarRef[]
|
|
79
83
|
): Promise<string | undefined> {
|
|
80
84
|
if (Array.isArray(envVarNameOrNames)) {
|
|
81
85
|
for (const envVarName of envVarNameOrNames) {
|
|
@@ -115,12 +119,16 @@ export class Qenv {
|
|
|
115
119
|
return rawValue;
|
|
116
120
|
}
|
|
117
121
|
|
|
118
|
-
private async tryGetEnvVar(
|
|
122
|
+
private async tryGetEnvVar(envVarRefArg: TEnvVarRef): Promise<string | undefined> {
|
|
123
|
+
if (typeof envVarRefArg === 'function') {
|
|
124
|
+
return await envVarRefArg();
|
|
125
|
+
}
|
|
126
|
+
|
|
119
127
|
return (
|
|
120
|
-
this.getFromEnvironmentVariable(
|
|
121
|
-
this.getFromEnvJsonFile(
|
|
122
|
-
this.getFromDockerSecret(
|
|
123
|
-
this.getFromDockerSecretJson(
|
|
128
|
+
this.getFromEnvironmentVariable(envVarRefArg) ||
|
|
129
|
+
this.getFromEnvJsonFile(envVarRefArg) ||
|
|
130
|
+
this.getFromDockerSecret(envVarRefArg) ||
|
|
131
|
+
this.getFromDockerSecretJson(envVarRefArg)
|
|
124
132
|
);
|
|
125
133
|
}
|
|
126
134
|
|
|
@@ -138,6 +146,9 @@ export class Qenv {
|
|
|
138
146
|
}
|
|
139
147
|
|
|
140
148
|
private getFromEnvJsonFile(envVarName: string): string | undefined {
|
|
149
|
+
if (!plugins.smartfile.fs.fileExistsSync(this.envFilePathAbsolute)) {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
141
152
|
try {
|
|
142
153
|
const envJson = plugins.smartfile.fs.toObjectSync(this.envFilePathAbsolute);
|
|
143
154
|
const value = envJson[envVarName];
|