@expo/env 2.1.0 → 2.1.1
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/build/parse.js +1 -1
- package/build/parse.js.map +1 -1
- package/package.json +2 -2
package/build/parse.js
CHANGED
|
@@ -56,7 +56,7 @@ function expand(inputEnv, sourceEnv) {
|
|
|
56
56
|
for (const key in outputEnv) {
|
|
57
57
|
let value = outputEnv[key];
|
|
58
58
|
if (Object.prototype.hasOwnProperty.call(sourceEnv, key)) {
|
|
59
|
-
value = value != null && sourceEnv[key] === value ? interpolate(value, key, sourceEnv, outputEnv) :
|
|
59
|
+
value = value != null && sourceEnv[key] === value ? interpolate(value, key, sourceEnv, outputEnv) : inputEnv[key];
|
|
60
60
|
} else if (value != null) {
|
|
61
61
|
value = interpolate(value, key, sourceEnv, outputEnv);
|
|
62
62
|
}
|
package/build/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","names":["_nodeUtil","data","require","parse","contents","parsed","parseEnv","env","key","trim","DOTENV_SUBSTITUTION_REGEX","interpolate","value","sourceKey","sourceEnv","inputEnv","replace","match","escaped","_dollarSign","_openBrace","defaultValue","_closeBrace","slice","startsWith","expand","outputEnv","Object","prototype","hasOwnProperty","call"],"sources":["../src/parse.ts"],"sourcesContent":["import { parseEnv } from 'node:util';\n\nexport interface EnvOutput {\n [name: string]: string | undefined;\n}\n\nexport function parse<T extends EnvOutput = EnvOutput>(contents: string): T {\n const parsed = parseEnv(contents) as EnvOutput;\n const env: EnvOutput = {};\n // NOTE(@kitten): In Node <=20.20 some keys are not properly trimmed\n for (const key in parsed) env[key.trim()] = parsed[key];\n return env as T;\n}\n\n// See: dotenv-expand@11.0.7\n// https://github.com/motdotla/dotenv-expand/blob/v11.0.7/lib/main.js\n// Copyright (c) 2016, Scott Motte\n\n/*\n * (\\\\)? # is it escaped with a backslash?\n * (\\$) # literal $\n * (?!\\() # shouldnt be followed by parenthesis\n * (\\{?) # first brace wrap opening\n * ([\\w.]+) # key\n * (?::-((?:\\$\\{(?:\\$\\{(?:\\$\\{[^}]*\\}|[^}])*}|[^}])*}|[^}])+))? # optional default nested 3 times\n * (\\}?) # last brace warp closing\n */\nconst DOTENV_SUBSTITUTION_REGEX =\n /(\\\\)?(\\$)(?!\\()(\\{?)([\\w.]+)(?::?-((?:\\$\\{(?:\\$\\{(?:\\$\\{[^}]*\\}|[^}])*}|[^}])*}|[^}])+))?(\\}?)/gi;\n\nfunction interpolate(\n value: string,\n sourceKey: string,\n sourceEnv: EnvOutput,\n inputEnv: EnvOutput\n): string {\n return value.replace(\n DOTENV_SUBSTITUTION_REGEX,\n (match, escaped, _dollarSign, _openBrace, key, defaultValue, _closeBrace) => {\n if (escaped === '\\\\') {\n return match.slice(1);\n } else if (sourceEnv[key]) {\n return sourceEnv[key] === inputEnv[key]\n ? sourceEnv[key]\n : interpolate(sourceEnv[key], key, sourceEnv, inputEnv);\n } else if (inputEnv[key] && key !== sourceKey) {\n return interpolate(inputEnv[key], key, sourceEnv, inputEnv);\n } else if (defaultValue) {\n return defaultValue.startsWith('$')\n ? interpolate(defaultValue, key, sourceEnv, inputEnv)\n : defaultValue;\n } else {\n return '';\n }\n }\n );\n}\n\nexport function expand(inputEnv: EnvOutput, sourceEnv: EnvOutput): EnvOutput {\n const outputEnv = { ...inputEnv };\n for (const key in outputEnv) {\n let value = outputEnv[key];\n if (Object.prototype.hasOwnProperty.call(sourceEnv, key)) {\n value =\n value != null && sourceEnv[key] === value\n ? interpolate(value, key, sourceEnv, outputEnv)\n :
|
|
1
|
+
{"version":3,"file":"parse.js","names":["_nodeUtil","data","require","parse","contents","parsed","parseEnv","env","key","trim","DOTENV_SUBSTITUTION_REGEX","interpolate","value","sourceKey","sourceEnv","inputEnv","replace","match","escaped","_dollarSign","_openBrace","defaultValue","_closeBrace","slice","startsWith","expand","outputEnv","Object","prototype","hasOwnProperty","call"],"sources":["../src/parse.ts"],"sourcesContent":["import { parseEnv } from 'node:util';\n\nexport interface EnvOutput {\n [name: string]: string | undefined;\n}\n\nexport function parse<T extends EnvOutput = EnvOutput>(contents: string): T {\n const parsed = parseEnv(contents) as EnvOutput;\n const env: EnvOutput = {};\n // NOTE(@kitten): In Node <=20.20 some keys are not properly trimmed\n for (const key in parsed) env[key.trim()] = parsed[key];\n return env as T;\n}\n\n// See: dotenv-expand@11.0.7\n// https://github.com/motdotla/dotenv-expand/blob/v11.0.7/lib/main.js\n// Copyright (c) 2016, Scott Motte\n\n/*\n * (\\\\)? # is it escaped with a backslash?\n * (\\$) # literal $\n * (?!\\() # shouldnt be followed by parenthesis\n * (\\{?) # first brace wrap opening\n * ([\\w.]+) # key\n * (?::-((?:\\$\\{(?:\\$\\{(?:\\$\\{[^}]*\\}|[^}])*}|[^}])*}|[^}])+))? # optional default nested 3 times\n * (\\}?) # last brace warp closing\n */\nconst DOTENV_SUBSTITUTION_REGEX =\n /(\\\\)?(\\$)(?!\\()(\\{?)([\\w.]+)(?::?-((?:\\$\\{(?:\\$\\{(?:\\$\\{[^}]*\\}|[^}])*}|[^}])*}|[^}])+))?(\\}?)/gi;\n\nfunction interpolate(\n value: string,\n sourceKey: string,\n sourceEnv: EnvOutput,\n inputEnv: EnvOutput\n): string {\n return value.replace(\n DOTENV_SUBSTITUTION_REGEX,\n (match, escaped, _dollarSign, _openBrace, key, defaultValue, _closeBrace) => {\n if (escaped === '\\\\') {\n return match.slice(1);\n } else if (sourceEnv[key]) {\n return sourceEnv[key] === inputEnv[key]\n ? sourceEnv[key]\n : interpolate(sourceEnv[key], key, sourceEnv, inputEnv);\n } else if (inputEnv[key] && key !== sourceKey) {\n return interpolate(inputEnv[key], key, sourceEnv, inputEnv);\n } else if (defaultValue) {\n return defaultValue.startsWith('$')\n ? interpolate(defaultValue, key, sourceEnv, inputEnv)\n : defaultValue;\n } else {\n return '';\n }\n }\n );\n}\n\nexport function expand(inputEnv: EnvOutput, sourceEnv: EnvOutput): EnvOutput {\n const outputEnv = { ...inputEnv };\n for (const key in outputEnv) {\n let value = outputEnv[key];\n if (Object.prototype.hasOwnProperty.call(sourceEnv, key)) {\n value =\n value != null && sourceEnv[key] === value\n ? interpolate(value, key, sourceEnv, outputEnv)\n : inputEnv[key];\n } else if (value != null) {\n value = interpolate(value, key, sourceEnv, outputEnv);\n }\n if (value != null) {\n outputEnv[key] = value.replace(/\\\\\\$/g, '$');\n }\n }\n return outputEnv;\n}\n"],"mappings":";;;;;;;AAAA,SAAAA,UAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,SAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAMO,SAASE,KAAKA,CAAkCC,QAAgB,EAAK;EAC1E,MAAMC,MAAM,GAAG,IAAAC,oBAAQ,EAACF,QAAQ,CAAc;EAC9C,MAAMG,GAAc,GAAG,CAAC,CAAC;EACzB;EACA,KAAK,MAAMC,GAAG,IAAIH,MAAM,EAAEE,GAAG,CAACC,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,GAAGJ,MAAM,CAACG,GAAG,CAAC;EACvD,OAAOD,GAAG;AACZ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,yBAAyB,GAC7B,kGAAkG;AAEpG,SAASC,WAAWA,CAClBC,KAAa,EACbC,SAAiB,EACjBC,SAAoB,EACpBC,QAAmB,EACX;EACR,OAAOH,KAAK,CAACI,OAAO,CAClBN,yBAAyB,EACzB,CAACO,KAAK,EAAEC,OAAO,EAAEC,WAAW,EAAEC,UAAU,EAAEZ,GAAG,EAAEa,YAAY,EAAEC,WAAW,KAAK;IAC3E,IAAIJ,OAAO,KAAK,IAAI,EAAE;MACpB,OAAOD,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC;IACvB,CAAC,MAAM,IAAIT,SAAS,CAACN,GAAG,CAAC,EAAE;MACzB,OAAOM,SAAS,CAACN,GAAG,CAAC,KAAKO,QAAQ,CAACP,GAAG,CAAC,GACnCM,SAAS,CAACN,GAAG,CAAC,GACdG,WAAW,CAACG,SAAS,CAACN,GAAG,CAAC,EAAEA,GAAG,EAAEM,SAAS,EAAEC,QAAQ,CAAC;IAC3D,CAAC,MAAM,IAAIA,QAAQ,CAACP,GAAG,CAAC,IAAIA,GAAG,KAAKK,SAAS,EAAE;MAC7C,OAAOF,WAAW,CAACI,QAAQ,CAACP,GAAG,CAAC,EAAEA,GAAG,EAAEM,SAAS,EAAEC,QAAQ,CAAC;IAC7D,CAAC,MAAM,IAAIM,YAAY,EAAE;MACvB,OAAOA,YAAY,CAACG,UAAU,CAAC,GAAG,CAAC,GAC/Bb,WAAW,CAACU,YAAY,EAAEb,GAAG,EAAEM,SAAS,EAAEC,QAAQ,CAAC,GACnDM,YAAY;IAClB,CAAC,MAAM;MACL,OAAO,EAAE;IACX;EACF,CACF,CAAC;AACH;AAEO,SAASI,MAAMA,CAACV,QAAmB,EAAED,SAAoB,EAAa;EAC3E,MAAMY,SAAS,GAAG;IAAE,GAAGX;EAAS,CAAC;EACjC,KAAK,MAAMP,GAAG,IAAIkB,SAAS,EAAE;IAC3B,IAAId,KAAK,GAAGc,SAAS,CAAClB,GAAG,CAAC;IAC1B,IAAImB,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAAChB,SAAS,EAAEN,GAAG,CAAC,EAAE;MACxDI,KAAK,GACHA,KAAK,IAAI,IAAI,IAAIE,SAAS,CAACN,GAAG,CAAC,KAAKI,KAAK,GACrCD,WAAW,CAACC,KAAK,EAAEJ,GAAG,EAAEM,SAAS,EAAEY,SAAS,CAAC,GAC7CX,QAAQ,CAACP,GAAG,CAAC;IACrB,CAAC,MAAM,IAAII,KAAK,IAAI,IAAI,EAAE;MACxBA,KAAK,GAAGD,WAAW,CAACC,KAAK,EAAEJ,GAAG,EAAEM,SAAS,EAAEY,SAAS,CAAC;IACvD;IACA,IAAId,KAAK,IAAI,IAAI,EAAE;MACjBc,SAAS,CAAClB,GAAG,CAAC,GAAGI,KAAK,CAACI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;IAC9C;EACF;EACA,OAAOU,SAAS;AAClB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/env",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "hydrate environment variables from .env files into process.env",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "public"
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "928cc951854450f3c72e00e8e420e567fabd1f8c"
|
|
46
46
|
}
|