@notross/dotenv-config 0.0.1 → 2.0.0
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/cjs/client.d.ts +15 -0
- package/cjs/client.d.ts.map +1 -0
- package/cjs/client.js +35 -0
- package/cjs/client.js.map +1 -0
- package/cjs/index.d.ts +5 -6
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +15 -42
- package/cjs/index.js.map +1 -1
- package/cjs/state.d.ts +14 -0
- package/cjs/state.d.ts.map +1 -0
- package/cjs/state.js +32 -0
- package/cjs/state.js.map +1 -0
- package/cjs/types.d.ts +7 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/types.js +3 -0
- package/cjs/types.js.map +1 -0
- package/cjs/utils.d.ts +5 -0
- package/cjs/utils.d.ts.map +1 -0
- package/cjs/utils.js +52 -0
- package/cjs/utils.js.map +1 -0
- package/esm/client.js +30 -0
- package/esm/client.js.map +1 -0
- package/esm/index.js +9 -41
- package/esm/index.js.map +1 -1
- package/esm/state.js +29 -0
- package/esm/state.js.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/utils.js +47 -0
- package/esm/utils.js.map +1 -0
- package/package.json +1 -1
package/cjs/client.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EnvCollection, EnvVars } from './types';
|
|
2
|
+
declare class State {
|
|
3
|
+
vars: EnvVars;
|
|
4
|
+
collections: EnvCollection;
|
|
5
|
+
subcollections: EnvCollection;
|
|
6
|
+
env: (prefix?: string) => EnvCollection | EnvVars;
|
|
7
|
+
constructor();
|
|
8
|
+
private get;
|
|
9
|
+
private findPrefix;
|
|
10
|
+
}
|
|
11
|
+
export declare const client: State;
|
|
12
|
+
export declare const env: () => EnvCollection;
|
|
13
|
+
export declare const getEnv: (prefix: string) => EnvVars;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGhD,cAAM,KAAK;IACF,IAAI,EAAE,OAAO,CAAK;IAClB,WAAW,EAAE,aAAa,CAAK;IAC/B,cAAc,EAAE,aAAa,CAAK;IAClC,GAAG,YAOW,MAAM,KAAG,aAAa,GAAG,OAAO,CAPrB;;IAOhC,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,UAAU;CAMnB;AAED,eAAO,MAAM,MAAM,OAAc,CAAA;AACjC,eAAO,MAAM,GAAG,QAAyB,aAAa,CAAA;AACtD,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,KAA2B,OAAO,CAAA"}
|
package/cjs/client.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEnv = exports.env = exports.client = void 0;
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class State {
|
|
7
|
+
vars = {};
|
|
8
|
+
collections = {};
|
|
9
|
+
subcollections = {};
|
|
10
|
+
env = this.get.bind(this);
|
|
11
|
+
constructor() {
|
|
12
|
+
(0, dotenv_1.config)({ processEnv: this.vars });
|
|
13
|
+
this.collections = (0, utils_1.autoPrefix)(this.vars);
|
|
14
|
+
}
|
|
15
|
+
get(prefix) {
|
|
16
|
+
if (prefix) {
|
|
17
|
+
return this.findPrefix(prefix);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return this.collections;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
findPrefix(prefix) {
|
|
24
|
+
prefix = prefix.endsWith('_') ? prefix : prefix + '_';
|
|
25
|
+
const filtered = (0, utils_1.filterByPrefix)(this.vars, prefix);
|
|
26
|
+
const paramaterized = (0, utils_1.injectParams)(filtered);
|
|
27
|
+
return paramaterized;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.client = new State();
|
|
31
|
+
const env = () => exports.client.env();
|
|
32
|
+
exports.env = env;
|
|
33
|
+
const getEnv = (prefix) => exports.client.env(prefix);
|
|
34
|
+
exports.getEnv = getEnv;
|
|
35
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,mCAAkE;AAElE,MAAM,KAAK;IACF,IAAI,GAAY,EAAE,CAAA;IAClB,WAAW,GAAkB,EAAE,CAAA;IAC/B,cAAc,GAAkB,EAAE,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhC;QACE,IAAA,eAAM,EAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEO,GAAG,CAAC,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAY,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAA4B,CAAA;QAC1C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;QAC5C,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;AAC1B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,cAAM,CAAC,GAAG,EAAmB,CAAA;AAAzC,QAAA,GAAG,OAAsC;AAC/C,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,cAAM,CAAC,GAAG,CAAC,MAAM,CAAY,CAAA;AAA1D,QAAA,MAAM,UAAoD"}
|
package/cjs/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
declare function buildEnv({ filename, prefix, }: BuildEnvOptions): Record<string, string>;
|
|
1
|
+
import { BuildEnvOptions, EnvCollection, EnvVars } from './types';
|
|
2
|
+
import { client, env, getEnv } from './client';
|
|
3
|
+
declare function autoEnv(): EnvCollection;
|
|
4
|
+
declare function buildEnv({ filename, prefix, }: BuildEnvOptions): EnvVars;
|
|
6
5
|
export default buildEnv;
|
|
7
|
-
export { buildEnv };
|
|
6
|
+
export { autoEnv, buildEnv, client, env, getEnv };
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
package/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,iBAAS,OAAO,IAAI,aAAa,CAIhC;AAED,iBAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,GAAG,OAAO,CAU3B;AAED,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
|
package/cjs/index.js
CHANGED
|
@@ -3,9 +3,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getEnv = exports.env = exports.client = void 0;
|
|
7
|
+
exports.autoEnv = autoEnv;
|
|
6
8
|
exports.buildEnv = buildEnv;
|
|
7
9
|
const path_1 = __importDefault(require("path"));
|
|
8
10
|
const dotenv_1 = require("dotenv");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
12
|
+
const client_1 = require("./client");
|
|
13
|
+
Object.defineProperty(exports, "client", { enumerable: true, get: function () { return client_1.client; } });
|
|
14
|
+
Object.defineProperty(exports, "env", { enumerable: true, get: function () { return client_1.env; } });
|
|
15
|
+
Object.defineProperty(exports, "getEnv", { enumerable: true, get: function () { return client_1.getEnv; } });
|
|
16
|
+
function autoEnv() {
|
|
17
|
+
const vars = {};
|
|
18
|
+
(0, dotenv_1.config)({ processEnv: vars });
|
|
19
|
+
return (0, utils_1.autoPrefix)(vars);
|
|
20
|
+
}
|
|
21
|
+
;
|
|
9
22
|
function buildEnv({ filename, prefix, }) {
|
|
10
23
|
const envVars = {};
|
|
11
24
|
const filepath = filename && path_1.default.resolve(process.cwd(), filename);
|
|
@@ -13,49 +26,9 @@ function buildEnv({ filename, prefix, }) {
|
|
|
13
26
|
...(filepath ? { path: filepath } : {}),
|
|
14
27
|
processEnv: envVars,
|
|
15
28
|
});
|
|
16
|
-
const filtered = filterByPrefix(envVars, prefix);
|
|
17
|
-
const paramaterized = injectParams(filtered);
|
|
29
|
+
const filtered = (0, utils_1.filterByPrefix)(envVars, prefix);
|
|
30
|
+
const paramaterized = (0, utils_1.injectParams)(filtered);
|
|
18
31
|
return paramaterized;
|
|
19
32
|
}
|
|
20
|
-
function rekey(key, prefix = '') {
|
|
21
|
-
const trim = prefix.length;
|
|
22
|
-
key = key.substring(trim);
|
|
23
|
-
return key.toLowerCase().split('_')
|
|
24
|
-
.reduce((acc, str, i) => {
|
|
25
|
-
if (i === 0)
|
|
26
|
-
return str;
|
|
27
|
-
return acc + str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
28
|
-
}, '');
|
|
29
|
-
}
|
|
30
|
-
function filterByPrefix(env, prefix) {
|
|
31
|
-
return Object.entries(env)
|
|
32
|
-
.filter(([key]) => prefix ? key.startsWith(prefix) : true).reduce((acc, [key, value]) => ({
|
|
33
|
-
...acc,
|
|
34
|
-
[rekey(key, prefix)]: value,
|
|
35
|
-
}), {});
|
|
36
|
-
}
|
|
37
|
-
function findParameters([key, value]) {
|
|
38
|
-
const params = Array.from(value.matchAll(/{{([^}]+)}}/g))
|
|
39
|
-
.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
40
|
-
return {
|
|
41
|
-
key,
|
|
42
|
-
value,
|
|
43
|
-
...(Object.keys(params).length ? { params } : {}),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
function injectParams(env) {
|
|
47
|
-
const values = Object.entries(env).map(findParameters);
|
|
48
|
-
return values.reduce((acc, { key, value, params }) => {
|
|
49
|
-
if (!params) {
|
|
50
|
-
return acc;
|
|
51
|
-
}
|
|
52
|
-
const valueWithParams = Object.entries(params)
|
|
53
|
-
.reduce((paramAcc, [pkey, pval]) => {
|
|
54
|
-
const injection = env[pval];
|
|
55
|
-
return paramAcc.replace(pkey, injection);
|
|
56
|
-
}, value);
|
|
57
|
-
return { ...acc, [key]: valueWithParams };
|
|
58
|
-
}, env);
|
|
59
|
-
}
|
|
60
33
|
exports.default = buildEnv;
|
|
61
34
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AA4BS,0BAAO;AAAE,4BAAQ;AA5B1B,gDAAwB;AACxB,mCAAgC;AAEhC,mCAAmE;AACnE,qCAA+C;AAwBnB,uFAxBnB,eAAM,OAwBmB;AAAE,oFAxBnB,YAAG,OAwBmB;AAAE,uFAxBnB,eAAM,OAwBmB;AAtB/C,SAAS,OAAO;IACd,MAAM,IAAI,GAAY,EAAE,CAAC;IACzB,IAAA,eAAM,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAAA,CAAC;AAEF,SAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,MAAM,GACU;IAChB,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ,IAAI,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAA,eAAM,EAAC;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,kBAAe,QAAQ,CAAC"}
|
package/cjs/state.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EnvCollection, EnvVars } from './types';
|
|
2
|
+
declare class State {
|
|
3
|
+
vars: EnvVars;
|
|
4
|
+
collections: EnvCollection;
|
|
5
|
+
subcollections: EnvCollection;
|
|
6
|
+
env: (prefix?: string) => EnvCollection | EnvVars;
|
|
7
|
+
constructor();
|
|
8
|
+
private get;
|
|
9
|
+
private findPrefix;
|
|
10
|
+
}
|
|
11
|
+
export declare const client: State;
|
|
12
|
+
export declare const env: State;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGhD,cAAM,KAAK;IACF,IAAI,EAAE,OAAO,CAAK;IAClB,WAAW,EAAE,aAAa,CAAK;IAC/B,cAAc,EAAE,aAAa,CAAK;IAClC,GAAG,YAOW,MAAM,KAAG,aAAa,GAAG,OAAO,CAPrB;;IAOhC,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,UAAU;CAMnB;AAED,eAAO,MAAM,MAAM,OAAc,CAAA;AACjC,eAAO,MAAM,GAAG,OAAS,CAAA"}
|
package/cjs/state.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.env = exports.client = void 0;
|
|
4
|
+
const dotenv_1 = require("dotenv");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class State {
|
|
7
|
+
vars = {};
|
|
8
|
+
collections = {};
|
|
9
|
+
subcollections = {};
|
|
10
|
+
env = this.get.bind(this);
|
|
11
|
+
constructor() {
|
|
12
|
+
(0, dotenv_1.config)({ processEnv: this.vars });
|
|
13
|
+
this.collections = (0, utils_1.autoPrefix)(this.vars);
|
|
14
|
+
}
|
|
15
|
+
get(prefix) {
|
|
16
|
+
if (prefix) {
|
|
17
|
+
return this.findPrefix(prefix);
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return this.collections;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
findPrefix(prefix) {
|
|
24
|
+
prefix = prefix.endsWith('_') ? prefix : prefix + '_';
|
|
25
|
+
const filtered = (0, utils_1.filterByPrefix)(this.vars, prefix);
|
|
26
|
+
const paramaterized = (0, utils_1.injectParams)(filtered);
|
|
27
|
+
return paramaterized;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.client = new State();
|
|
31
|
+
exports.env = exports.client;
|
|
32
|
+
//# sourceMappingURL=state.js.map
|
package/cjs/state.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,mCAAkE;AAElE,MAAM,KAAK;IACF,IAAI,GAAY,EAAE,CAAA;IAClB,WAAW,GAAkB,EAAE,CAAA;IAC/B,cAAc,GAAkB,EAAE,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhC;QACE,IAAA,eAAM,EAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEO,GAAG,CAAC,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAA;QAC5C,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;AACpB,QAAA,GAAG,GAAG,cAAM,CAAA"}
|
package/cjs/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
package/cjs/types.js
ADDED
package/cjs/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/cjs/utils.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EnvCollection, EnvVars } from './types';
|
|
2
|
+
export declare function autoPrefix(vars: EnvVars): EnvCollection;
|
|
3
|
+
export declare function filterByPrefix(env: EnvVars, prefix?: string): EnvVars;
|
|
4
|
+
export declare function injectParams(env: Record<string, string>): Record<string, string>;
|
|
5
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEjD,wBAAgB,UAAU,CACxB,IAAI,EAAE,OAAO,GACZ,aAAa,CAWf;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAQT;AAkCD,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBxB"}
|
package/cjs/utils.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.autoPrefix = autoPrefix;
|
|
4
|
+
exports.filterByPrefix = filterByPrefix;
|
|
5
|
+
exports.injectParams = injectParams;
|
|
6
|
+
function autoPrefix(vars) {
|
|
7
|
+
return Array(...new Set(Object.keys(vars).map((k) => k.split('_').shift()))).reduce((acc, prefix) => ({
|
|
8
|
+
...acc,
|
|
9
|
+
[prefix.toLowerCase()]: injectParams(filterByPrefix(vars, `${prefix}_`)),
|
|
10
|
+
}), {});
|
|
11
|
+
}
|
|
12
|
+
function filterByPrefix(env, prefix) {
|
|
13
|
+
return Object.entries(env)
|
|
14
|
+
.filter(([key]) => prefix ? key.startsWith(prefix) : true).reduce((acc, [key, value]) => ({
|
|
15
|
+
...acc,
|
|
16
|
+
[rekey(key, prefix)]: value,
|
|
17
|
+
}), {});
|
|
18
|
+
}
|
|
19
|
+
function rekey(key, prefix = '') {
|
|
20
|
+
const trim = prefix.length;
|
|
21
|
+
key = key.substring(trim);
|
|
22
|
+
return key.toLowerCase().split('_')
|
|
23
|
+
.reduce((acc, str, i) => {
|
|
24
|
+
if (i === 0)
|
|
25
|
+
return str;
|
|
26
|
+
return acc + str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
27
|
+
}, '');
|
|
28
|
+
}
|
|
29
|
+
function findParameters([key, value]) {
|
|
30
|
+
const params = Array.from(value.matchAll(/{{([^}]+)}}/g))
|
|
31
|
+
.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
32
|
+
return {
|
|
33
|
+
key,
|
|
34
|
+
value,
|
|
35
|
+
...(Object.keys(params).length ? { params } : {}),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
function injectParams(env) {
|
|
39
|
+
const values = Object.entries(env).map(findParameters);
|
|
40
|
+
return values.reduce((acc, { key, value, params }) => {
|
|
41
|
+
if (!params) {
|
|
42
|
+
return acc;
|
|
43
|
+
}
|
|
44
|
+
const valueWithParams = Object.entries(params)
|
|
45
|
+
.reduce((paramAcc, [pkey, pval]) => {
|
|
46
|
+
const injection = env[pval];
|
|
47
|
+
return paramAcc.replace(pkey, injection);
|
|
48
|
+
}, value);
|
|
49
|
+
return { ...acc, [key]: valueWithParams };
|
|
50
|
+
}, env);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=utils.js.map
|
package/cjs/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;AAEA,gCAaC;AAED,wCAWC;AAkCD,oCAmBC;AA/ED,SAAgB,UAAU,CACxB,IAAa;IAEb,OAAO,KAAK,CAAC,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CACnB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAY,CACtC,CACF,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1B,GAAG,GAAG;QACN,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,YAAY,CAClC,cAAc,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,CACnC;KACF,CAAC,EAAE,EAAE,CAAC,CAAC;AACV,CAAC;AAED,SAAgB,cAAc,CAC5B,GAAY,EACZ,MAAe;IAEf,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;SACvB,MAAM,CACL,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAClD,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,GAAG,GAAG;QACN,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK;KAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,KAAK,CACZ,GAAW,EACX,SAAiB,EAAE;IAEnB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;SAChC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,OAAO,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAQD,SAAS,cAAc,CACrB,CAAC,GAAG,EAAE,KAAK,CAAmB;IAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACtD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjE,OAAO;QACL,GAAG;QACH,KAAK;QACL,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAC1B,GAA2B;IAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aAC3C,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC,EAAE,KAAK,CAAC,CAAC;QAEZ,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5C,CAAC,EACH,GAAG,CAAC,CAAC;AACP,CAAC"}
|
package/esm/client.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { config } from 'dotenv';
|
|
2
|
+
import { autoPrefix, filterByPrefix, injectParams } from './utils';
|
|
3
|
+
class State {
|
|
4
|
+
vars = {};
|
|
5
|
+
collections = {};
|
|
6
|
+
subcollections = {};
|
|
7
|
+
env = this.get.bind(this);
|
|
8
|
+
constructor() {
|
|
9
|
+
config({ processEnv: this.vars });
|
|
10
|
+
this.collections = autoPrefix(this.vars);
|
|
11
|
+
}
|
|
12
|
+
get(prefix) {
|
|
13
|
+
if (prefix) {
|
|
14
|
+
return this.findPrefix(prefix);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return this.collections;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
findPrefix(prefix) {
|
|
21
|
+
prefix = prefix.endsWith('_') ? prefix : prefix + '_';
|
|
22
|
+
const filtered = filterByPrefix(this.vars, prefix);
|
|
23
|
+
const paramaterized = injectParams(filtered);
|
|
24
|
+
return paramaterized;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export const client = new State();
|
|
28
|
+
export const env = () => client.env();
|
|
29
|
+
export const getEnv = (prefix) => client.env(prefix);
|
|
30
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElE,MAAM,KAAK;IACF,IAAI,GAAY,EAAE,CAAA;IAClB,WAAW,GAAkB,EAAE,CAAA;IAC/B,cAAc,GAAkB,EAAE,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhC;QACE,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEO,GAAG,CAAC,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAY,CAAA;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAA4B,CAAA;QAC1C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC5C,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;AACjC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,EAAmB,CAAA;AACtD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAY,CAAA"}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { config } from 'dotenv';
|
|
3
|
+
import { autoPrefix, filterByPrefix, injectParams } from './utils';
|
|
4
|
+
import { client, env, getEnv } from './client';
|
|
5
|
+
function autoEnv() {
|
|
6
|
+
const vars = {};
|
|
7
|
+
config({ processEnv: vars });
|
|
8
|
+
return autoPrefix(vars);
|
|
9
|
+
}
|
|
10
|
+
;
|
|
3
11
|
function buildEnv({ filename, prefix, }) {
|
|
4
12
|
const envVars = {};
|
|
5
13
|
const filepath = filename && path.resolve(process.cwd(), filename);
|
|
@@ -11,46 +19,6 @@ function buildEnv({ filename, prefix, }) {
|
|
|
11
19
|
const paramaterized = injectParams(filtered);
|
|
12
20
|
return paramaterized;
|
|
13
21
|
}
|
|
14
|
-
function rekey(key, prefix = '') {
|
|
15
|
-
const trim = prefix.length;
|
|
16
|
-
key = key.substring(trim);
|
|
17
|
-
return key.toLowerCase().split('_')
|
|
18
|
-
.reduce((acc, str, i) => {
|
|
19
|
-
if (i === 0)
|
|
20
|
-
return str;
|
|
21
|
-
return acc + str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
22
|
-
}, '');
|
|
23
|
-
}
|
|
24
|
-
function filterByPrefix(env, prefix) {
|
|
25
|
-
return Object.entries(env)
|
|
26
|
-
.filter(([key]) => prefix ? key.startsWith(prefix) : true).reduce((acc, [key, value]) => ({
|
|
27
|
-
...acc,
|
|
28
|
-
[rekey(key, prefix)]: value,
|
|
29
|
-
}), {});
|
|
30
|
-
}
|
|
31
|
-
function findParameters([key, value]) {
|
|
32
|
-
const params = Array.from(value.matchAll(/{{([^}]+)}}/g))
|
|
33
|
-
.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
34
|
-
return {
|
|
35
|
-
key,
|
|
36
|
-
value,
|
|
37
|
-
...(Object.keys(params).length ? { params } : {}),
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function injectParams(env) {
|
|
41
|
-
const values = Object.entries(env).map(findParameters);
|
|
42
|
-
return values.reduce((acc, { key, value, params }) => {
|
|
43
|
-
if (!params) {
|
|
44
|
-
return acc;
|
|
45
|
-
}
|
|
46
|
-
const valueWithParams = Object.entries(params)
|
|
47
|
-
.reduce((paramAcc, [pkey, pval]) => {
|
|
48
|
-
const injection = env[pval];
|
|
49
|
-
return paramAcc.replace(pkey, injection);
|
|
50
|
-
}, value);
|
|
51
|
-
return { ...acc, [key]: valueWithParams };
|
|
52
|
-
}, env);
|
|
53
|
-
}
|
|
54
22
|
export default buildEnv;
|
|
55
|
-
export { buildEnv };
|
|
23
|
+
export { autoEnv, buildEnv, client, env, getEnv };
|
|
56
24
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE/C,SAAS,OAAO;IACd,MAAM,IAAI,GAAY,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAAA,CAAC;AAEF,SAAS,QAAQ,CAAC,EAChB,QAAQ,EACR,MAAM,GACU;IAChB,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IACnE,MAAM,CAAC;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC7C,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,eAAe,QAAQ,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC"}
|
package/esm/state.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { config } from 'dotenv';
|
|
2
|
+
import { autoPrefix, filterByPrefix, injectParams } from './utils';
|
|
3
|
+
class State {
|
|
4
|
+
vars = {};
|
|
5
|
+
collections = {};
|
|
6
|
+
subcollections = {};
|
|
7
|
+
env = this.get.bind(this);
|
|
8
|
+
constructor() {
|
|
9
|
+
config({ processEnv: this.vars });
|
|
10
|
+
this.collections = autoPrefix(this.vars);
|
|
11
|
+
}
|
|
12
|
+
get(prefix) {
|
|
13
|
+
if (prefix) {
|
|
14
|
+
return this.findPrefix(prefix);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
return this.collections;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
findPrefix(prefix) {
|
|
21
|
+
prefix = prefix.endsWith('_') ? prefix : prefix + '_';
|
|
22
|
+
const filtered = filterByPrefix(this.vars, prefix);
|
|
23
|
+
const paramaterized = injectParams(filtered);
|
|
24
|
+
return paramaterized;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export const client = new State();
|
|
28
|
+
export const env = client;
|
|
29
|
+
//# sourceMappingURL=state.js.map
|
package/esm/state.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElE,MAAM,KAAK;IACF,IAAI,GAAY,EAAE,CAAA;IAClB,WAAW,GAAkB,EAAE,CAAA;IAC/B,cAAc,GAAkB,EAAE,CAAA;IAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhC;QACE,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAEO,GAAG,CAAC,MAAe;QACzB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,MAAc;QAC/B,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAA;QACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QAC5C,OAAO,aAAa,CAAA;IACtB,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;AACjC,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAA"}
|
package/esm/types.js
ADDED
package/esm/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/esm/utils.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export function autoPrefix(vars) {
|
|
2
|
+
return Array(...new Set(Object.keys(vars).map((k) => k.split('_').shift()))).reduce((acc, prefix) => ({
|
|
3
|
+
...acc,
|
|
4
|
+
[prefix.toLowerCase()]: injectParams(filterByPrefix(vars, `${prefix}_`)),
|
|
5
|
+
}), {});
|
|
6
|
+
}
|
|
7
|
+
export function filterByPrefix(env, prefix) {
|
|
8
|
+
return Object.entries(env)
|
|
9
|
+
.filter(([key]) => prefix ? key.startsWith(prefix) : true).reduce((acc, [key, value]) => ({
|
|
10
|
+
...acc,
|
|
11
|
+
[rekey(key, prefix)]: value,
|
|
12
|
+
}), {});
|
|
13
|
+
}
|
|
14
|
+
function rekey(key, prefix = '') {
|
|
15
|
+
const trim = prefix.length;
|
|
16
|
+
key = key.substring(trim);
|
|
17
|
+
return key.toLowerCase().split('_')
|
|
18
|
+
.reduce((acc, str, i) => {
|
|
19
|
+
if (i === 0)
|
|
20
|
+
return str;
|
|
21
|
+
return acc + str.substring(0, 1).toUpperCase() + str.substring(1);
|
|
22
|
+
}, '');
|
|
23
|
+
}
|
|
24
|
+
function findParameters([key, value]) {
|
|
25
|
+
const params = Array.from(value.matchAll(/{{([^}]+)}}/g))
|
|
26
|
+
.reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});
|
|
27
|
+
return {
|
|
28
|
+
key,
|
|
29
|
+
value,
|
|
30
|
+
...(Object.keys(params).length ? { params } : {}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function injectParams(env) {
|
|
34
|
+
const values = Object.entries(env).map(findParameters);
|
|
35
|
+
return values.reduce((acc, { key, value, params }) => {
|
|
36
|
+
if (!params) {
|
|
37
|
+
return acc;
|
|
38
|
+
}
|
|
39
|
+
const valueWithParams = Object.entries(params)
|
|
40
|
+
.reduce((paramAcc, [pkey, pval]) => {
|
|
41
|
+
const injection = env[pval];
|
|
42
|
+
return paramAcc.replace(pkey, injection);
|
|
43
|
+
}, value);
|
|
44
|
+
return { ...acc, [key]: valueWithParams };
|
|
45
|
+
}, env);
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=utils.js.map
|
package/esm/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|