@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 +3 -0
- package/LICENSE.zh-CN +3 -0
- package/README.md +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +68 -0
- package/package.json +40 -0
package/LICENSE.en-US
ADDED
package/LICENSE.zh-CN
ADDED
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# @cabloy/dotenv
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
+
}
|