@stryke/env 0.7.0 → 0.9.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.
@@ -4,8 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.isInteractive = exports.isCI = void 0;
7
- var _providers = require("./providers.cjs");
8
- const isCI = (I = process.env) => !!(I.STORM_CI || I.CI || I.CONTINUOUS_INTEGRATION || I.BUILD_NUMBER || I.RUN_ID || I.AGOLA_GIT_REF || I.AC_APPCIRCLE || I.APPVEYOR || I.CODEBUILD || I.TF_BUILD || I.bamboo_planKey || I.BITBUCKET_COMMIT || I.BITRISE_IO || I.BUDDY_WORKSPACE_ID || I.BUILDKITE || I.CIRCLECI || I.CIRRUS_CI || I.CF_BUILD_ID || I.CM_BUILD_ID || I.CI_NAME || I.DRONE || I.DSARI || I.EARTHLY_CI || I.EAS_BUILD || I.GERRIT_PROJECT || I.GITEA_ACTIONS || I.GITHUB_ACTIONS || I.GITLAB_CI || I.GOCD || I.BUILDER_OUTPUT || I.HARNESS_BUILD_ID || I.JENKINS_URL || I.BUILD_ID || I.LAYERCI || I.MAGNUM || I.NETLIFY || I.NEVERCODE || I.PROW_JOB_ID || I.RELEASE_BUILD_ID || I.RENDER || I.SAILCI || I.HUDSON || I.JENKINS_URL || I.BUILD_ID || I.SCREWDRIVER || I.SEMAPHORE || I.SOURCEHUT || I.STRIDER || I.TASK_ID || I.RUN_ID || I.TEAMCITY_VERSION || I.TRAVIS || I.VELA || I.NOW_BUILDER || I.APPCENTER_BUILD_ID || I.CI_XCODE_PROJECT || I.XCS || _providers.providerInfo.ci !== !1),
7
+ const isCI = (I = process.env) => !!(I.STORM_CI || I.CI || I.CONTINUOUS_INTEGRATION || I.BUILD_NUMBER || I.RUN_ID || I.AGOLA_GIT_REF || I.AC_APPCIRCLE || I.APPVEYOR || I.CODEBUILD || I.TF_BUILD || I.bamboo_planKey || I.BITBUCKET_COMMIT || I.BITRISE_IO || I.BUDDY_WORKSPACE_ID || I.BUILDKITE || I.CIRCLECI || I.CIRRUS_CI || I.CF_BUILD_ID || I.CM_BUILD_ID || I.CI_NAME || I.DRONE || I.DSARI || I.EARTHLY_CI || I.EAS_BUILD || I.GERRIT_PROJECT || I.GITEA_ACTIONS || I.GITHUB_ACTIONS || I.GITLAB_CI || I.GOCD || I.BUILDER_OUTPUT || I.HARNESS_BUILD_ID || I.JENKINS_URL || I.BUILD_ID || I.LAYERCI || I.MAGNUM || I.NETLIFY || I.NEVERCODE || I.PROW_JOB_ID || I.RELEASE_BUILD_ID || I.RENDER || I.SAILCI || I.HUDSON || I.JENKINS_URL || I.BUILD_ID || I.SCREWDRIVER || I.SEMAPHORE || I.SOURCEHUT || I.STRIDER || I.TASK_ID || I.RUN_ID || I.TEAMCITY_VERSION || I.TRAVIS || I.VELA || I.NOW_BUILDER || I.APPCENTER_BUILD_ID || I.CI_XCODE_PROJECT || I.XCS),
9
8
  isInteractive = (I = process.stdin) => !!(I?.isTTY && process.env.TERM !== "dumb");
10
9
  exports.isInteractive = isInteractive;
11
10
  exports.isCI = isCI;
@@ -1 +1 @@
1
- import{providerInfo as E}from"./providers";export const isCI=(I=process.env)=>!!(I.STORM_CI||I.CI||I.CONTINUOUS_INTEGRATION||I.BUILD_NUMBER||I.RUN_ID||I.AGOLA_GIT_REF||I.AC_APPCIRCLE||I.APPVEYOR||I.CODEBUILD||I.TF_BUILD||I.bamboo_planKey||I.BITBUCKET_COMMIT||I.BITRISE_IO||I.BUDDY_WORKSPACE_ID||I.BUILDKITE||I.CIRCLECI||I.CIRRUS_CI||I.CF_BUILD_ID||I.CM_BUILD_ID||I.CI_NAME||I.DRONE||I.DSARI||I.EARTHLY_CI||I.EAS_BUILD||I.GERRIT_PROJECT||I.GITEA_ACTIONS||I.GITHUB_ACTIONS||I.GITLAB_CI||I.GOCD||I.BUILDER_OUTPUT||I.HARNESS_BUILD_ID||I.JENKINS_URL||I.BUILD_ID||I.LAYERCI||I.MAGNUM||I.NETLIFY||I.NEVERCODE||I.PROW_JOB_ID||I.RELEASE_BUILD_ID||I.RENDER||I.SAILCI||I.HUDSON||I.JENKINS_URL||I.BUILD_ID||I.SCREWDRIVER||I.SEMAPHORE||I.SOURCEHUT||I.STRIDER||I.TASK_ID||I.RUN_ID||I.TEAMCITY_VERSION||I.TRAVIS||I.VELA||I.NOW_BUILDER||I.APPCENTER_BUILD_ID||I.CI_XCODE_PROJECT||I.XCS||E.ci!==!1),isInteractive=(I=process.stdin)=>!!(I?.isTTY&&process.env.TERM!=="dumb");
1
+ export const isCI=(I=process.env)=>!!(I.STORM_CI||I.CI||I.CONTINUOUS_INTEGRATION||I.BUILD_NUMBER||I.RUN_ID||I.AGOLA_GIT_REF||I.AC_APPCIRCLE||I.APPVEYOR||I.CODEBUILD||I.TF_BUILD||I.bamboo_planKey||I.BITBUCKET_COMMIT||I.BITRISE_IO||I.BUDDY_WORKSPACE_ID||I.BUILDKITE||I.CIRCLECI||I.CIRRUS_CI||I.CF_BUILD_ID||I.CM_BUILD_ID||I.CI_NAME||I.DRONE||I.DSARI||I.EARTHLY_CI||I.EAS_BUILD||I.GERRIT_PROJECT||I.GITEA_ACTIONS||I.GITHUB_ACTIONS||I.GITLAB_CI||I.GOCD||I.BUILDER_OUTPUT||I.HARNESS_BUILD_ID||I.JENKINS_URL||I.BUILD_ID||I.LAYERCI||I.MAGNUM||I.NETLIFY||I.NEVERCODE||I.PROW_JOB_ID||I.RELEASE_BUILD_ID||I.RENDER||I.SAILCI||I.HUDSON||I.JENKINS_URL||I.BUILD_ID||I.SCREWDRIVER||I.SEMAPHORE||I.SOURCEHUT||I.STRIDER||I.TASK_ID||I.RUN_ID||I.TEAMCITY_VERSION||I.TRAVIS||I.VELA||I.NOW_BUILDER||I.APPCENTER_BUILD_ID||I.CI_XCODE_PROJECT||I.XCS),isInteractive=(I=process.stdin)=>!!(I?.isTTY&&process.env.TERM!=="dumb");
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getEnvPaths = getEnvPaths;
7
7
  var _joinPaths = require("@stryke/path/join-paths");
8
8
  var _titleCase = require("@stryke/string-format/title-case");
9
- var _isString = require("@stryke/type-checks/is-string");
10
9
  var _nodeOs = _interopRequireDefault(require("node:os"));
11
10
  var _nodePath = _interopRequireDefault(require("node:path"));
12
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
12
  const n = _nodeOs.default.homedir(),
14
13
  o = _nodeOs.default.tmpdir(),
15
- l = e => {
14
+ D = e => {
16
15
  const a = (0, _joinPaths.joinPaths)(n, "Library");
17
16
  return {
18
17
  data: (0, _joinPaths.joinPaths)(a, "Application Support", e),
@@ -22,7 +21,7 @@ const n = _nodeOs.default.homedir(),
22
21
  temp: (0, _joinPaths.joinPaths)(o, e)
23
22
  };
24
23
  },
25
- E = e => {
24
+ l = e => {
26
25
  const a = process.env.APPDATA || (0, _joinPaths.joinPaths)(n, "AppData", "Roaming"),
27
26
  t = process.env.LOCALAPPDATA || (0, _joinPaths.joinPaths)(n, "AppData", "Local"),
28
27
  r = (0, _titleCase.titleCase)(e).trim().replace(/\s+/g, "");
@@ -34,7 +33,7 @@ const n = _nodeOs.default.homedir(),
34
33
  temp: (0, _joinPaths.joinPaths)(o, e)
35
34
  };
36
35
  },
37
- _ = e => {
36
+ E = e => {
38
37
  const a = _nodePath.default.basename(n);
39
38
  return {
40
39
  data: (0, _joinPaths.joinPaths)(process.env.XDG_DATA_HOME || (0, _joinPaths.joinPaths)(n, ".local", "share"), e),
@@ -47,12 +46,12 @@ const n = _nodeOs.default.homedir(),
47
46
  function getEnvPaths(e = {}) {
48
47
  let a = e.orgId || "storm-software";
49
48
  if (!a) throw new Error("You need to provide an orgId to the `getEnvPaths` function");
50
- e.suffix && (a += `-${(0, _isString.isString)(e.suffix) ? e.suffix : "nodejs"}`);
49
+ e.suffix && (a += `-${typeof e.suffix == "string" ? e.suffix : "nodejs"}`);
51
50
  let t = {};
52
- return process.platform === "darwin" ? t = l(a) : process.platform === "win32" ? t = E(a) : t = _(a), process.env.STORM_DATA_DIR ? t.data = process.env.STORM_DATA_DIR : process.env.STORM_CONFIG_DIR ? t.config = process.env.STORM_CONFIG_DIR : process.env.STORM_CACHE_DIR ? t.cache = process.env.STORM_CACHE_DIR : process.env.STORM_LOG_DIR ? t.log = process.env.STORM_LOG_DIR : process.env.STORM_TEMP_DIR && (t.temp = process.env.STORM_TEMP_DIR), e.workspaceRoot && (t.cache ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, "node_modules", ".cache", a), t.temp ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, "tmp", a), t.log ??= (0, _joinPaths.joinPaths)(t.temp, "logs"), t.config ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, ".config", a)), Object.keys(t).reduce((r, c) => {
51
+ return process.platform === "darwin" ? t = D(a) : process.platform === "win32" ? t = l(a) : t = E(a), process.env.STORM_DATA_DIR ? t.data = process.env.STORM_DATA_DIR : process.env.STORM_CONFIG_DIR ? t.config = process.env.STORM_CONFIG_DIR : process.env.STORM_CACHE_DIR ? t.cache = process.env.STORM_CACHE_DIR : process.env.STORM_LOG_DIR ? t.log = process.env.STORM_LOG_DIR : process.env.STORM_TEMP_DIR && (t.temp = process.env.STORM_TEMP_DIR), e.workspaceRoot && (t.cache ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, "node_modules", ".cache", a), t.temp ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, "tmp", a), t.log ??= (0, _joinPaths.joinPaths)(t.temp, "logs"), t.config ??= (0, _joinPaths.joinPaths)(e.workspaceRoot, ".config", a)), Object.keys(t).reduce((r, c) => {
53
52
  if (t[c]) {
54
- const i = t[c];
55
- r[c] = e.appId && e.appId !== e.orgId && e.appId !== e.nestedDir ? (0, _joinPaths.joinPaths)(i, e.appId) : i, e.nestedDir && e.nestedDir !== e.orgId && e.nestedDir !== e.appId && (r[c] = (0, _joinPaths.joinPaths)(r[c], e.nestedDir));
53
+ const p = t[c];
54
+ r[c] = e.appId && e.appId !== e.orgId && e.appId !== e.nestedDir ? (0, _joinPaths.joinPaths)(p, e.appId) : p, e.nestedDir && e.nestedDir !== e.orgId && e.nestedDir !== e.appId && (r[c] = (0, _joinPaths.joinPaths)(r[c], e.nestedDir));
56
55
  }
57
56
  return r;
58
57
  }, {});
@@ -1 +1 @@
1
- import{joinPaths as s}from"@stryke/path/join-paths";import{titleCase as f}from"@stryke/string-format/title-case";import{isString as v}from"@stryke/type-checks/is-string";import p from"node:os";import D from"node:path";const n=p.homedir(),o=p.tmpdir(),l=e=>{const a=s(n,"Library");return{data:s(a,"Application Support",e),config:s(a,"Preferences",e),cache:s(a,"Caches",e),log:s(a,"Logs",e),temp:s(o,e)}},E=e=>{const a=process.env.APPDATA||s(n,"AppData","Roaming"),t=process.env.LOCALAPPDATA||s(n,"AppData","Local"),r=f(e).trim().replace(/\s+/g,"");return{data:s(t,r,"Data"),config:s(a,r,"Config"),cache:s(t,"Cache",e),log:s(t,r,"Log"),temp:s(o,e)}},_=e=>{const a=D.basename(n);return{data:s(process.env.XDG_DATA_HOME||s(n,".local","share"),e),config:s(process.env.XDG_CONFIG_HOME||s(n,".config"),e),cache:s(process.env.XDG_CACHE_HOME||s(n,".cache"),e),log:s(process.env.XDG_STATE_HOME||s(n,".local","state"),e),temp:process.env.DEVENV_RUNTIME||process.env.XDG_RUNTIME_DIR?s(process.env.DEVENV_RUNTIME||process.env.XDG_RUNTIME_DIR,e):s(o,a,e)}};export function getEnvPaths(e={}){let a=e.orgId||"storm-software";if(!a)throw new Error("You need to provide an orgId to the `getEnvPaths` function");e.suffix&&(a+=`-${v(e.suffix)?e.suffix:"nodejs"}`);let t={};return process.platform==="darwin"?t=l(a):process.platform==="win32"?t=E(a):t=_(a),process.env.STORM_DATA_DIR?t.data=process.env.STORM_DATA_DIR:process.env.STORM_CONFIG_DIR?t.config=process.env.STORM_CONFIG_DIR:process.env.STORM_CACHE_DIR?t.cache=process.env.STORM_CACHE_DIR:process.env.STORM_LOG_DIR?t.log=process.env.STORM_LOG_DIR:process.env.STORM_TEMP_DIR&&(t.temp=process.env.STORM_TEMP_DIR),e.workspaceRoot&&(t.cache??=s(e.workspaceRoot,"node_modules",".cache",a),t.temp??=s(e.workspaceRoot,"tmp",a),t.log??=s(t.temp,"logs"),t.config??=s(e.workspaceRoot,".config",a)),Object.keys(t).reduce((r,c)=>{if(t[c]){const i=t[c];r[c]=e.appId&&e.appId!==e.orgId&&e.appId!==e.nestedDir?s(i,e.appId):i,e.nestedDir&&e.nestedDir!==e.orgId&&e.nestedDir!==e.appId&&(r[c]=s(r[c],e.nestedDir))}return r},{})}
1
+ import{joinPaths as s}from"@stryke/path/join-paths";import{titleCase as f}from"@stryke/string-format/title-case";import i from"node:os";import v from"node:path";const n=i.homedir(),o=i.tmpdir(),D=e=>{const a=s(n,"Library");return{data:s(a,"Application Support",e),config:s(a,"Preferences",e),cache:s(a,"Caches",e),log:s(a,"Logs",e),temp:s(o,e)}},l=e=>{const a=process.env.APPDATA||s(n,"AppData","Roaming"),t=process.env.LOCALAPPDATA||s(n,"AppData","Local"),r=f(e).trim().replace(/\s+/g,"");return{data:s(t,r,"Data"),config:s(a,r,"Config"),cache:s(t,"Cache",e),log:s(t,r,"Log"),temp:s(o,e)}},E=e=>{const a=v.basename(n);return{data:s(process.env.XDG_DATA_HOME||s(n,".local","share"),e),config:s(process.env.XDG_CONFIG_HOME||s(n,".config"),e),cache:s(process.env.XDG_CACHE_HOME||s(n,".cache"),e),log:s(process.env.XDG_STATE_HOME||s(n,".local","state"),e),temp:process.env.DEVENV_RUNTIME||process.env.XDG_RUNTIME_DIR?s(process.env.DEVENV_RUNTIME||process.env.XDG_RUNTIME_DIR,e):s(o,a,e)}};export function getEnvPaths(e={}){let a=e.orgId||"storm-software";if(!a)throw new Error("You need to provide an orgId to the `getEnvPaths` function");e.suffix&&(a+=`-${typeof e.suffix=="string"?e.suffix:"nodejs"}`);let t={};return process.platform==="darwin"?t=D(a):process.platform==="win32"?t=l(a):t=E(a),process.env.STORM_DATA_DIR?t.data=process.env.STORM_DATA_DIR:process.env.STORM_CONFIG_DIR?t.config=process.env.STORM_CONFIG_DIR:process.env.STORM_CACHE_DIR?t.cache=process.env.STORM_CACHE_DIR:process.env.STORM_LOG_DIR?t.log=process.env.STORM_LOG_DIR:process.env.STORM_TEMP_DIR&&(t.temp=process.env.STORM_TEMP_DIR),e.workspaceRoot&&(t.cache??=s(e.workspaceRoot,"node_modules",".cache",a),t.temp??=s(e.workspaceRoot,"tmp",a),t.log??=s(t.temp,"logs"),t.config??=s(e.workspaceRoot,".config",a)),Object.keys(t).reduce((r,c)=>{if(t[c]){const p=t[c];r[c]=e.appId&&e.appId!==e.orgId&&e.appId!==e.nestedDir?s(p,e.appId):p,e.nestedDir&&e.nestedDir!==e.orgId&&e.nestedDir!==e.appId&&(r[c]=s(r[c],e.nestedDir))}return r},{})}
package/dist/load-env.cjs CHANGED
@@ -10,46 +10,46 @@ exports.loadEnvFile = loadEnvFile;
10
10
  exports.loadServerEnv = loadServerEnv;
11
11
  var _dotenvx = require("@dotenvx/dotenvx");
12
12
  var _readFile = require("@stryke/fs/read-file");
13
- var _json = require("@stryke/json");
14
- var _path = require("@stryke/path");
13
+ var _exists = require("@stryke/path/exists");
14
+ var _joinPaths = require("@stryke/path/join-paths");
15
15
  var _defu = _interopRequireDefault(require("defu"));
16
16
  var _types = require("./types.cjs");
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
- function getEnvFilesForMode(t, r = "production") {
19
- return [".env", ".env.local", `.env.${r}`, `.env.${r}.local`, `.env.local.${r}`].map(s => (0, _path.joinPaths)(t, s));
18
+ function getEnvFilesForMode(n, r = "production") {
19
+ return [".env", ".env.local", `.env.${r}`, `.env.${r}.local`, `.env.local.${r}`].map(s => (0, _joinPaths.joinPaths)(n, s));
20
20
  }
21
- async function loadEnvFile(t, r = []) {
21
+ async function loadEnvFile(n, r = []) {
22
22
  const s = Array.isArray(r) ? r : [r];
23
- return (await Promise.all((r.length > 0 ? s.map(n => (0, _path.joinPaths)(n, t)) : [t]).map(async n => {
24
- if ((0, _path.existsSync)(n)) return (0, _readFile.readFile)(n);
25
- }))).reduce((n, c) => {
26
- if (!c) return n;
23
+ return (await Promise.all((r.length > 0 ? s.map(t => (0, _joinPaths.joinPaths)(t, n)) : [n]).map(async t => {
24
+ if ((0, _exists.existsSync)(t)) return (0, _readFile.readFile)(t);
25
+ }))).reduce((t, c) => {
26
+ if (!c) return t;
27
27
  const a = (0, _dotenvx.parse)(c, {
28
28
  processEnv: {
29
29
  ...process.env
30
30
  },
31
31
  privateKey: process.env.DOTENV_PRIVATE_KEY || process.env.STORM_PRIVATE_KEY
32
32
  });
33
- return (0, _defu.default)(a, n);
33
+ return (0, _defu.default)(a, t);
34
34
  }, {});
35
35
  }
36
- async function loadEnv(t, r, s) {
36
+ async function loadEnv(n, r, s) {
37
37
  if (r === "local") throw new Error('"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files.');
38
- const n = s ? Array.isArray(s) ? s : [s] : [],
39
- c = Array.isArray(t) ? t : [t],
38
+ const t = s ? Array.isArray(s) ? s : [s] : [],
39
+ c = Array.isArray(n) ? n : [n],
40
40
  a = {},
41
- v = c.reduce((e, i) => (e.push(...getEnvFilesForMode(i, r).filter(u => !e.includes(u))), e), []);
42
- let o = (await Promise.all(v.map(async e => loadEnvFile(e)))).reduce((e, i) => (0, _defu.default)(i, e), {});
43
- if (o.NODE_ENV && process.env.VITE_USER_NODE_ENV === void 0 && (process.env.VITE_USER_NODE_ENV = _json.StormJSON.stringify(o.NODE_ENV)), o.BROWSER && process.env.BROWSER === void 0 && (process.env.BROWSER = _json.StormJSON.stringify(o.BROWSER)), o.BROWSER_ARGS && process.env.BROWSER_ARGS === void 0 && (process.env.BROWSER_ARGS = _json.StormJSON.stringify(o.BROWSER_ARGS)), o = (0, _defu.default)({
41
+ E = c.reduce((e, i) => (e.push(...getEnvFilesForMode(i, r).filter(u => !e.includes(u))), e), []);
42
+ let o = (await Promise.all(E.map(async e => loadEnvFile(e)))).reduce((e, i) => (0, _defu.default)(i, e), {});
43
+ if (o.NODE_ENV && process.env.VITE_USER_NODE_ENV === void 0 && (process.env.VITE_USER_NODE_ENV = JSON.stringify(o.NODE_ENV)), o.BROWSER && process.env.BROWSER === void 0 && (process.env.BROWSER = JSON.stringify(o.BROWSER)), o.BROWSER_ARGS && process.env.BROWSER_ARGS === void 0 && (process.env.BROWSER_ARGS = JSON.stringify(o.BROWSER_ARGS)), o = (0, _defu.default)({
44
44
  ...process.env
45
- }, o), n.length === 0) return o;
46
- for (const [e, i] of Object.entries(o)) n.some(u => e.startsWith(u)) && (a[e] = String(i));
47
- for (const e in process.env) n.some(i => e.startsWith(i)) && (a[e] = process.env[e]);
45
+ }, o), t.length === 0) return o;
46
+ for (const [e, i] of Object.entries(o)) t.some(u => e.startsWith(u)) && (a[e] = String(i));
47
+ for (const e in process.env) t.some(i => e.startsWith(i)) && (a[e] = process.env[e]);
48
48
  return a;
49
49
  }
50
- async function loadClientEnv(t, r, s = _types.ENV_PREFIXES) {
51
- return loadEnv(t, r, s);
50
+ async function loadClientEnv(n, r, s = _types.ENV_PREFIXES) {
51
+ return loadEnv(n, r, s);
52
52
  }
53
- async function loadServerEnv(t, r) {
54
- return loadEnv(t, r);
53
+ async function loadServerEnv(n, r) {
54
+ return loadEnv(n, r);
55
55
  }
@@ -17,8 +17,8 @@ export declare function loadEnvFile(envFile: string, envDir?: string | string[])
17
17
  * - `.env.production`
18
18
  * - `.env.production.local`
19
19
  *
20
- * @param mode - The mode to load the environment variables for.
21
20
  * @param envDir - The directory/directories to load the environment variables from.
21
+ * @param mode - The mode to load the environment variables for.
22
22
  * @param prefix - The prefix or prefixes to use for the environment variables.
23
23
  * @returns The environment variables.
24
24
  */
@@ -33,8 +33,8 @@ export declare function loadEnv(envDir: string | string[], mode?: string, prefix
33
33
  * - `.env.production`
34
34
  * - `.env.production.local`
35
35
  *
36
- * @param mode - The mode to load the environment variables for.
37
36
  * @param envDir - The directory/directories to load the environment variables from.
37
+ * @param mode - The mode to load the environment variables for.
38
38
  * @param prefix - The prefix or prefixes to use for the environment variables.
39
39
  * @returns The environment variables.
40
40
  */
@@ -49,8 +49,8 @@ export declare function loadClientEnv(envDir: string | string[], mode?: string,
49
49
  * - `.env.production`
50
50
  * - `.env.production.local`
51
51
  *
52
- * @param mode - The mode to load the environment variables for.
53
52
  * @param envDir - The directory/directories to load the environment variables from.
53
+ * @param mode - The mode to load the environment variables for.
54
54
  * @returns The environment variables.
55
55
  */
56
56
  export declare function loadServerEnv(envDir: string | string[], mode: string): Promise<DotenvParseOutput>;
package/dist/load-env.mjs CHANGED
@@ -1 +1 @@
1
- import{parse as l}from"@dotenvx/dotenvx";import{readFile as m}from"@stryke/fs/read-file";import{StormJSON as p}from"@stryke/json";import{existsSync as g,joinPaths as E}from"@stryke/path";import f from"defu";import{ENV_PREFIXES as R}from"./types";export function getEnvFilesForMode(t,r="production"){return[".env",".env.local",`.env.${r}`,`.env.${r}.local`,`.env.local.${r}`].map(s=>E(t,s))}export async function loadEnvFile(t,r=[]){const s=Array.isArray(r)?r:[r];return(await Promise.all((r.length>0?s.map(n=>E(n,t)):[t]).map(async n=>{if(g(n))return m(n)}))).reduce((n,c)=>{if(!c)return n;const a=l(c,{processEnv:{...process.env},privateKey:process.env.DOTENV_PRIVATE_KEY||process.env.STORM_PRIVATE_KEY});return f(a,n)},{})}export async function loadEnv(t,r,s){if(r==="local")throw new Error('"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files.');const n=s?Array.isArray(s)?s:[s]:[],c=Array.isArray(t)?t:[t],a={},v=c.reduce((e,i)=>(e.push(...getEnvFilesForMode(i,r).filter(u=>!e.includes(u))),e),[]);let o=(await Promise.all(v.map(async e=>loadEnvFile(e)))).reduce((e,i)=>f(i,e),{});if(o.NODE_ENV&&process.env.VITE_USER_NODE_ENV===void 0&&(process.env.VITE_USER_NODE_ENV=p.stringify(o.NODE_ENV)),o.BROWSER&&process.env.BROWSER===void 0&&(process.env.BROWSER=p.stringify(o.BROWSER)),o.BROWSER_ARGS&&process.env.BROWSER_ARGS===void 0&&(process.env.BROWSER_ARGS=p.stringify(o.BROWSER_ARGS)),o=f({...process.env},o),n.length===0)return o;for(const[e,i]of Object.entries(o))n.some(u=>e.startsWith(u))&&(a[e]=String(i));for(const e in process.env)n.some(i=>e.startsWith(i))&&(a[e]=process.env[e]);return a}export async function loadClientEnv(t,r,s=R){return loadEnv(t,r,s)}export async function loadServerEnv(t,r){return loadEnv(t,r)}
1
+ import{parse as v}from"@dotenvx/dotenvx";import{readFile as l}from"@stryke/fs/read-file";import{existsSync as g}from"@stryke/path/exists";import{joinPaths as f}from"@stryke/path/join-paths";import p from"defu";import{ENV_PREFIXES as m}from"./types";export function getEnvFilesForMode(n,r="production"){return[".env",".env.local",`.env.${r}`,`.env.${r}.local`,`.env.local.${r}`].map(s=>f(n,s))}export async function loadEnvFile(n,r=[]){const s=Array.isArray(r)?r:[r];return(await Promise.all((r.length>0?s.map(t=>f(t,n)):[n]).map(async t=>{if(g(t))return l(t)}))).reduce((t,c)=>{if(!c)return t;const a=v(c,{processEnv:{...process.env},privateKey:process.env.DOTENV_PRIVATE_KEY||process.env.STORM_PRIVATE_KEY});return p(a,t)},{})}export async function loadEnv(n,r,s){if(r==="local")throw new Error('"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files.');const t=s?Array.isArray(s)?s:[s]:[],c=Array.isArray(n)?n:[n],a={},E=c.reduce((e,i)=>(e.push(...getEnvFilesForMode(i,r).filter(u=>!e.includes(u))),e),[]);let o=(await Promise.all(E.map(async e=>loadEnvFile(e)))).reduce((e,i)=>p(i,e),{});if(o.NODE_ENV&&process.env.VITE_USER_NODE_ENV===void 0&&(process.env.VITE_USER_NODE_ENV=JSON.stringify(o.NODE_ENV)),o.BROWSER&&process.env.BROWSER===void 0&&(process.env.BROWSER=JSON.stringify(o.BROWSER)),o.BROWSER_ARGS&&process.env.BROWSER_ARGS===void 0&&(process.env.BROWSER_ARGS=JSON.stringify(o.BROWSER_ARGS)),o=p({...process.env},o),t.length===0)return o;for(const[e,i]of Object.entries(o))t.some(u=>e.startsWith(u))&&(a[e]=String(i));for(const e in process.env)t.some(i=>e.startsWith(i))&&(a[e]=process.env[e]);return a}export async function loadClientEnv(n,r,s=m){return loadEnv(n,r,s)}export async function loadServerEnv(n,r){return loadEnv(n,r)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/env",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "type": "module",
5
5
  "description": "A package containing utility functions to handle environment specific processes",
6
6
  "repository": {
@@ -11,12 +11,10 @@
11
11
  "private": false,
12
12
  "dependencies": {
13
13
  "@dotenvx/dotenvx": "1.35.0",
14
- "defu": "^6.1.4",
15
- "@stryke/fs": "^0.13.0",
16
- "@stryke/json": "^0.8.2",
17
- "@stryke/path": "^0.4.14",
14
+ "@stryke/fs": "^0.14.0",
15
+ "@stryke/path": "^0.5.0",
18
16
  "@stryke/string-format": "^0.4.9",
19
- "@stryke/type-checks": "^0.3.3"
17
+ "defu": "^6.1.4"
20
18
  },
21
19
  "devDependencies": { "@types/node": "^22.14.0" },
22
20
  "publishConfig": { "access": "public" },