@jdeighan/env 9.1.18 → 9.1.21
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +3 -3
- package/src/EnvLoaderEx.coffee +16 -9
- package/src/EnvLoaderEx.js +17 -9
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jdeighan/env",
|
3
3
|
"type": "module",
|
4
|
-
"version": "9.1.
|
4
|
+
"version": "9.1.21",
|
5
5
|
"description": "enhanced syntax for .env files",
|
6
6
|
"main": "./src/EnvLoaderEx.js",
|
7
7
|
"exports": {
|
@@ -31,8 +31,8 @@
|
|
31
31
|
},
|
32
32
|
"homepage": "https://github.com/johndeighan/env#readme",
|
33
33
|
"dependencies": {
|
34
|
-
"@jdeighan/coffee-utils": "^7.0.
|
35
|
-
"@jdeighan/mapper": "^
|
34
|
+
"@jdeighan/coffee-utils": "^7.0.22",
|
35
|
+
"@jdeighan/mapper": "^15.0.2",
|
36
36
|
"coffeescript": "^2.6.1",
|
37
37
|
"cross-env": "^7.0.3"
|
38
38
|
},
|
package/src/EnvLoaderEx.coffee
CHANGED
@@ -3,12 +3,12 @@
|
|
3
3
|
import pathlib from 'path'
|
4
4
|
|
5
5
|
import {
|
6
|
-
assert, undef, pass, error, rtrim, isArray, isFunction,
|
6
|
+
assert, undef, pass, error, rtrim, isArray, isHash, isFunction,
|
7
7
|
rtrunc, escapeStr, croak,
|
8
8
|
} from '@jdeighan/coffee-utils'
|
9
9
|
import {log} from '@jdeighan/coffee-utils/log'
|
10
10
|
import {debug} from '@jdeighan/coffee-utils/debug'
|
11
|
-
import {slurp, pathTo, mkpath} from '@jdeighan/coffee-utils/fs'
|
11
|
+
import {slurp, pathTo, mkpath, parseSource} from '@jdeighan/coffee-utils/fs'
|
12
12
|
import {TreeMapper} from '@jdeighan/mapper/tree'
|
13
13
|
|
14
14
|
hDefCallbacks = {
|
@@ -259,10 +259,13 @@ export class EnvLoader extends TreeMapper
|
|
259
259
|
# ---------------------------------------------------------------------------
|
260
260
|
# Load environment from a string
|
261
261
|
|
262
|
-
export loadEnvString = (contents, hOptions
|
262
|
+
export loadEnvString = (contents, hOptions) ->
|
263
263
|
|
264
|
-
debug "enter loadEnvString()"
|
265
|
-
|
264
|
+
debug "enter loadEnvString()", hOptions
|
265
|
+
assert isHash(hOptions),\
|
266
|
+
"loadEnvString(): 2nd arg not a hash #{typeof hOptions}"
|
267
|
+
assert hOptions.source, "loadEnvString(): Missing source"
|
268
|
+
env = new EnvLoader(contents, hOptions.source, hOptions)
|
266
269
|
env.load()
|
267
270
|
debug "return from loadEnvString()"
|
268
271
|
return
|
@@ -274,20 +277,24 @@ export loadEnvFile = (filepath, hOptions={}) ->
|
|
274
277
|
|
275
278
|
debug "enter loadEnvFile #{filepath}"
|
276
279
|
contents = slurp filepath
|
277
|
-
|
280
|
+
hOptions.source = filepath
|
281
|
+
loadEnvString contents, hOptions
|
278
282
|
debug "return from loadEnvFile"
|
279
283
|
return
|
280
284
|
|
281
285
|
# ---------------------------------------------------------------------------
|
282
286
|
# Load environment from .env file
|
283
287
|
|
284
|
-
export loadEnvFrom = (
|
288
|
+
export loadEnvFrom = (source, hOptions={}) ->
|
285
289
|
# --- valid options:
|
286
290
|
# onefile - load only the first file found
|
287
291
|
# hCallbacks - getVar, setVar, clearVar, clearAll, names
|
288
292
|
|
289
|
-
|
290
|
-
|
293
|
+
source = mkpath(source)
|
294
|
+
debug "enter loadEnvFrom '#{source}'"
|
295
|
+
hSourceInfo = parseSource(source)
|
296
|
+
debug 'hSourceInfo', hSourceInfo
|
297
|
+
path = pathTo('.env', source, "up")
|
291
298
|
if ! path?
|
292
299
|
debug "return from loadEnvFrom() - no .env file found"
|
293
300
|
return
|
package/src/EnvLoaderEx.js
CHANGED
@@ -11,6 +11,7 @@ import {
|
|
11
11
|
error,
|
12
12
|
rtrim,
|
13
13
|
isArray,
|
14
|
+
isHash,
|
14
15
|
isFunction,
|
15
16
|
rtrunc,
|
16
17
|
escapeStr,
|
@@ -28,7 +29,8 @@ import {
|
|
28
29
|
import {
|
29
30
|
slurp,
|
30
31
|
pathTo,
|
31
|
-
mkpath
|
32
|
+
mkpath,
|
33
|
+
parseSource
|
32
34
|
} from '@jdeighan/coffee-utils/fs';
|
33
35
|
|
34
36
|
import {
|
@@ -269,10 +271,12 @@ export var EnvLoader = class EnvLoader extends TreeMapper {
|
|
269
271
|
// ---------------------------------------------------------------------------
|
270
272
|
// ---------------------------------------------------------------------------
|
271
273
|
// Load environment from a string
|
272
|
-
export var loadEnvString = function(contents, hOptions
|
274
|
+
export var loadEnvString = function(contents, hOptions) {
|
273
275
|
var env;
|
274
|
-
debug("enter loadEnvString()");
|
275
|
-
|
276
|
+
debug("enter loadEnvString()", hOptions);
|
277
|
+
assert(isHash(hOptions), `loadEnvString(): 2nd arg not a hash ${typeof hOptions}`);
|
278
|
+
assert(hOptions.source, "loadEnvString(): Missing source");
|
279
|
+
env = new EnvLoader(contents, hOptions.source, hOptions);
|
276
280
|
env.load();
|
277
281
|
debug("return from loadEnvString()");
|
278
282
|
};
|
@@ -283,19 +287,23 @@ export var loadEnvFile = function(filepath, hOptions = {}) {
|
|
283
287
|
var contents;
|
284
288
|
debug(`enter loadEnvFile ${filepath}`);
|
285
289
|
contents = slurp(filepath);
|
286
|
-
|
290
|
+
hOptions.source = filepath;
|
291
|
+
loadEnvString(contents, hOptions);
|
287
292
|
debug("return from loadEnvFile");
|
288
293
|
};
|
289
294
|
|
290
295
|
// ---------------------------------------------------------------------------
|
291
296
|
// Load environment from .env file
|
292
|
-
export var loadEnvFrom = function(
|
293
|
-
var filepath, i, lPaths, len, path;
|
297
|
+
export var loadEnvFrom = function(source, hOptions = {}) {
|
298
|
+
var filepath, hSourceInfo, i, lPaths, len, path;
|
294
299
|
// --- valid options:
|
295
300
|
// onefile - load only the first file found
|
296
301
|
// hCallbacks - getVar, setVar, clearVar, clearAll, names
|
297
|
-
|
298
|
-
|
302
|
+
source = mkpath(source);
|
303
|
+
debug(`enter loadEnvFrom '${source}'`);
|
304
|
+
hSourceInfo = parseSource(source);
|
305
|
+
debug('hSourceInfo', hSourceInfo);
|
306
|
+
path = pathTo('.env', source, "up");
|
299
307
|
if (path == null) {
|
300
308
|
debug("return from loadEnvFrom() - no .env file found");
|
301
309
|
return;
|