@cabloy/dotenv 1.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/LICENSE.en-US ADDED
@@ -0,0 +1,3 @@
1
+ Copyright (c) 2016-present CabloyJS
2
+
3
+ CabloyJS 5.0 internal beta version, still under continuous development, not yet open source, please do not spread it
package/LICENSE.zh-CN ADDED
@@ -0,0 +1,3 @@
1
+ Copyright (c) 2016-present CabloyJS
2
+
3
+ CabloyJS 5.0 内测版,仍在持续开发中,尚未开源,请勿扩散
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # @cabloy/dotenv
@@ -0,0 +1,4 @@
1
+ export declare function loadEnvs(meta: object, dir: string, prefix?: string, postfix?: string): object | undefined;
2
+ export declare function metaToScope(meta: object): {};
3
+ export declare function getEnvFiles(meta: object, dir: string, prefix: string, postfix?: string): string[] | undefined;
4
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js ADDED
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getEnvFiles = exports.metaToScope = exports.loadEnvs = void 0;
7
+ const egg_born_utils_1 = __importDefault(require("egg-born-utils"));
8
+ const cascade_extend_1 = require("cascade-extend");
9
+ const dotenv_1 = __importDefault(require("dotenv"));
10
+ const dotenv_expand_1 = __importDefault(require("dotenv-expand"));
11
+ function loadEnvs(meta, dir, prefix = '.env', postfix) {
12
+ // envfiles
13
+ const envFiles = getEnvFiles(meta, dir, prefix, postfix);
14
+ if (!envFiles)
15
+ return undefined;
16
+ // dotenv
17
+ const result = dotenv_1.default.config({ path: envFiles.reverse() });
18
+ if (result.error) {
19
+ throw result.error;
20
+ }
21
+ // expand
22
+ dotenv_expand_1.default.expand(result);
23
+ // ok
24
+ return result.parsed;
25
+ }
26
+ exports.loadEnvs = loadEnvs;
27
+ function metaToScope(meta) {
28
+ const scope = {};
29
+ for (const key in meta) {
30
+ scope[meta[key]] = true;
31
+ }
32
+ return scope;
33
+ }
34
+ exports.metaToScope = metaToScope;
35
+ function getEnvFiles(meta, dir, prefix, postfix) {
36
+ // files
37
+ const pattern = [`${dir}/${prefix}*`];
38
+ let files = egg_born_utils_1.default.tools.globbySync(pattern);
39
+ const fileNames = files.map(item => {
40
+ item = item.substring(dir.length + 1);
41
+ if (postfix) {
42
+ item = item.substring(0, item.length - postfix.length);
43
+ }
44
+ return item;
45
+ });
46
+ // source
47
+ const source = {};
48
+ for (const fileName of fileNames) {
49
+ source[fileName] = true;
50
+ }
51
+ // scope
52
+ const scope = metaToScope(meta);
53
+ // extend
54
+ const keys = (0, cascade_extend_1.cascadeExtendKeys)(scope, source, prefix, '.');
55
+ if (!keys)
56
+ return undefined;
57
+ // files
58
+ files = keys.map(key => {
59
+ let file = `${dir}/${key}`;
60
+ if (postfix) {
61
+ file = `${file}${postfix}`;
62
+ }
63
+ return file;
64
+ });
65
+ return files;
66
+ }
67
+ exports.getEnvFiles = getEnvFiles;
68
+ //# sourceMappingURL=index.js.map
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@cabloy/dotenv",
3
+ "version": "1.0.0",
4
+ "description": "cabloy dotenv",
5
+ "publishConfig": {
6
+ "access": "public"
7
+ },
8
+ "exports": {
9
+ ".": {
10
+ "types": [
11
+ "./src/index.ts",
12
+ "./dist/index.d.ts"
13
+ ],
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.js",
16
+ "default": "./src/index.ts"
17
+ },
18
+ "./package.json": "./package.json"
19
+ },
20
+ "files": [
21
+ "dist/**/*.js",
22
+ "dist/**/*.d.ts"
23
+ ],
24
+ "keywords": [
25
+ "egg",
26
+ "egg-born",
27
+ "framework",
28
+ "cabloy"
29
+ ],
30
+ "author": "zhennann",
31
+ "dependencies": {
32
+ "cascade-extend": "^1.0.3",
33
+ "dotenv": "^16.4.5",
34
+ "dotenv-expand": "^11.0.6",
35
+ "egg-born-utils": "^1.1.9"
36
+ },
37
+ "scripts": {
38
+ "lint": "eslint ."
39
+ }
40
+ }