@js-utils-kit/env 1.7.0 → 2.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/dist/index.d.cts CHANGED
@@ -291,4 +291,5 @@ declare const isTest: boolean;
291
291
  */
292
292
  declare const isNode: boolean;
293
293
  //#endregion
294
- export { appendEnv, envRef, getEnv, getEnvOr, getRunTimeEnvironment, hasEnv, isBrowser, isCI, isDev, isEnvEmpty, isNode, isProd, isTest, prependEnv, removeEnv, setEnv, setEnvMany, toggleEnv };
294
+ export { appendEnv, envRef, getEnv, getEnvOr, getRunTimeEnvironment, hasEnv, isBrowser, isCI, isDev, isEnvEmpty, isNode, isProd, isTest, prependEnv, removeEnv, setEnv, setEnvMany, toggleEnv };
295
+ //# sourceMappingURL=index.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/env.ts","../src/getRunTimeEnvironment.ts","../src/isCI.ts","../src/runtime.ts"],"mappings":";;;;;;AAyBA;;;;;AAkBA;;;;;AAqBA;;;;;AAqBA;;;;iBA5DgB,MAAA,CA+EhB,gCA7EE,CAAA;;;;AA+FF;;;;;AAuBA;;;iBAtGgB,MAAA,iCAEd,CAAA,gCAEA,CAAA;;AA0HF;;;;;;;;;AA2BA;;iBApIgB,SAAA,iCAEd,CAAA;AA4JF;;;;;AAuBA;;;;;;;;ACtOA;AD+MA,iBAzIgB,MAAA,iCAEd,CAAA;;;;;AEQF;;;;;;;;iBFSgB,MAAA,iCAEd,CAAA;;;AGxEF;;;;;AAiBA;;;;iBHuEgB,QAAA,CGtDhB,gCHwDE,CAAA,sDAEA,QAAA;;AGrCF;;;;;;;;;;;;;iBHwDgB,SAAA,iCAEd,CAAA,gCAEA,CAAA,0BAEA,GAAA;;;;;;;;;;;;;iBAkBc,UAAA,iCAEd,CAAA,iCAEA,CAAA,0BAEA,GAAA;;;;;;;;;;;;;;;;iBAqBc,SAAA,iCAEd,CAAA,uDAEA,OAAA;;;;;;;;;;;;;;;;;iBAsBc,UAAA,iCAEd,CAAA;;;;;;;;;;;;;;;;iBAqBc,UAAA,yCAEd,IAAA,EAAM,MAAA;;;;;AA9NR;;;;;AAkBA;;;;;AAqBA;iBCjDgB,qBAAA,CAAA,GAAyB,WAAA;;;;;;ADUzC;;;;;AAkBA;;;;;AAqBA;;;;;AAqBA;;;;;cEUa,IAAA;;;;;;AFtEb;;;;;AAkBA;;;;;AAqBA;;cG/Ca,SAAA;;;AHoEb;;;;;AAmBA;;;;;AAkBA;;cGxFa,KAAA;;;AH+Gb;;;;;;;;;AAwBA;;;cGtHa,MAAA;;;;;;AHiJb;;;;;AA0BA;;;;cG1Ja,MAAA;AHiLb;;;;;;;;ACtOA;;;;;;;;ACgFA;;AFsJA,cG5Ja,MAAA"}
package/dist/index.d.mts CHANGED
@@ -291,4 +291,5 @@ declare const isTest: boolean;
291
291
  */
292
292
  declare const isNode: boolean;
293
293
  //#endregion
294
- export { appendEnv, envRef, getEnv, getEnvOr, getRunTimeEnvironment, hasEnv, isBrowser, isCI, isDev, isEnvEmpty, isNode, isProd, isTest, prependEnv, removeEnv, setEnv, setEnvMany, toggleEnv };
294
+ export { appendEnv, envRef, getEnv, getEnvOr, getRunTimeEnvironment, hasEnv, isBrowser, isCI, isDev, isEnvEmpty, isNode, isProd, isTest, prependEnv, removeEnv, setEnv, setEnvMany, toggleEnv };
295
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/env.ts","../src/getRunTimeEnvironment.ts","../src/isCI.ts","../src/runtime.ts"],"mappings":";;;;;;AAyBA;;;;;AAkBA;;;;;AAqBA;;;;;AAqBA;;;;iBA5DgB,MAAA,CA+EhB,gCA7EE,CAAA;;;;AA+FF;;;;;AAuBA;;;iBAtGgB,MAAA,iCAEd,CAAA,gCAEA,CAAA;;AA0HF;;;;;;;;;AA2BA;;iBApIgB,SAAA,iCAEd,CAAA;AA4JF;;;;;AAuBA;;;;;;;;ACtOA;AD+MA,iBAzIgB,MAAA,iCAEd,CAAA;;;;;AEQF;;;;;;;;iBFSgB,MAAA,iCAEd,CAAA;;;AGxEF;;;;;AAiBA;;;;iBHuEgB,QAAA,CGtDhB,gCHwDE,CAAA,sDAEA,QAAA;;AGrCF;;;;;;;;;;;;;iBHwDgB,SAAA,iCAEd,CAAA,gCAEA,CAAA,0BAEA,GAAA;;;;;;;;;;;;;iBAkBc,UAAA,iCAEd,CAAA,iCAEA,CAAA,0BAEA,GAAA;;;;;;;;;;;;;;;;iBAqBc,SAAA,iCAEd,CAAA,uDAEA,OAAA;;;;;;;;;;;;;;;;;iBAsBc,UAAA,iCAEd,CAAA;;;;;;;;;;;;;;;;iBAqBc,UAAA,yCAEd,IAAA,EAAM,MAAA;;;;;AA9NR;;;;;AAkBA;;;;;AAqBA;iBCjDgB,qBAAA,CAAA,GAAyB,WAAA;;;;;;ADUzC;;;;;AAkBA;;;;;AAqBA;;;;;AAqBA;;;;;cEUa,IAAA;;;;;;AFtEb;;;;;AAkBA;;;;;AAqBA;;cG/Ca,SAAA;;;AHoEb;;;;;AAmBA;;;;;AAkBA;;cGxFa,KAAA;;;AH+Gb;;;;;;;;;AAwBA;;;cGtHa,MAAA;;;;;;AHiJb;;;;;AA0BA;;;;cG1Ja,MAAA;AHiLb;;;;;;;;ACtOA;;;;;;;;ACgFA;;AFsJA,cG5Ja,MAAA"}
package/dist/index.mjs CHANGED
@@ -1 +1,2 @@
1
- import{delimiter as e}from"node:path";import{env as t,isWindows as n}from"@js-utils-kit/system";import{Environment as r}from"@js-utils-kit/types";import{env as i}from"node:process";function a(e){return n?`%${e}%`:`$${e}`}function o(e,n){t[e]=n}function s(e){delete t[e]}function c(e){return Object.hasOwn(t,e)}function l(e){return t[e]}function u(e,t){return l(e)??t}function d(t,n,r=e){o(t,[l(t),n].filter(Boolean).join(r))}function f(t,n,r=e){o(t,[n,l(t)].filter(Boolean).join(r))}function p(e,t){t?o(e,`1`):s(e)}function m(e){let t=l(e);return t===void 0||t===``}function h(e){for(let[t,n]of Object.entries(e))o(t,n)}function g(){switch(process.env.NODE_ENV){case r.PROD:return r.PROD;case r.DEV:return r.DEV;case r.TEST:return r.TEST;default:return r.UNKNOWN}}const _=`AC_APPCIRCLE.AGOLA_GIT_REF.APPCENTER_BUILD_ID.APPVEYOR.bamboo_planKey.BITBUCKET_COMMIT.BITRISE_IO.BUDDY_WORKSPACE_ID.BUILD_ID.BUILD_NUMBER.BUILDER_OUTPUT.BUILDKITE.CF_BUILD_ID.CF_PAGES.CI_XCODE_PROJECT.CIRCLECI.CIRRUS_CI.CM_BUILD_ID.CODEBUILD_BUILD_ARN.DRONE.DSARI.EARTHLY_CI.EAS_BUILD.GERRIT_PROJECT.GITEA_ACTIONS.GITHUB_ACTIONS.GITLAB_CI.GO_PIPELINE_LABEL.HARNESS_BUILD_ID.HUDSON_URL.JENKINS_URL.LAYERCI.MAGNUM.NETLIFY.NEVERCODE.NOW_BUILDER.PROW_JOB_ID.RELEASE_BUILD_ID.RENDER.RUN_ID.SAILCI.SCREWDRIVER.SEMAPHORE.STRIDER.TASK_ID.TEAMCITY_VERSION.TF_BUILD.TRAVIS.VELA.VERCEL.WORKERS_CI.XCS`.split(`.`),v=[`CI`,`CONTINUOUS_INTEGRATION`],y=[`codeship`,`sourcehut`,`woodpecker`],b=e=>{let t=i[e]??i[e.toUpperCase()]??i[e.toLowerCase()];return t!=null&&t!==`0`&&t.toLowerCase()!==`false`},x=_.some(b),S=x||v.some(b)&&(x||typeof i.CI_NAME==`string`&&y.includes(i.CI_NAME.toLowerCase())),C=typeof window<`u`&&window.document!==void 0,w=typeof process<`u`&&process.env.NODE_ENV===r.DEV,T=typeof process<`u`&&process.env.NODE_ENV===r.PROD,E=typeof process<`u`&&process.env.NODE_ENV===r.TEST,D=typeof process<`u`&&process.versions!=null&&process.versions.node!=null;export{d as appendEnv,a as envRef,l as getEnv,u as getEnvOr,g as getRunTimeEnvironment,c as hasEnv,C as isBrowser,S as isCI,w as isDev,m as isEnvEmpty,D as isNode,T as isProd,E as isTest,f as prependEnv,s as removeEnv,o as setEnv,h as setEnvMany,p as toggleEnv};
1
+ import{delimiter as e}from"node:path";import{env as t,isWindows as n}from"@js-utils-kit/system";import{Environment as r}from"@js-utils-kit/types";import{env as i}from"node:process";function a(e){return n?`%${e}%`:`$${e}`}function o(e,n){t[e]=n}function s(e){delete t[e]}function c(e){return Object.hasOwn(t,e)}function l(e){return t[e]}function u(e,t){return l(e)??t}function d(t,n,r=e){o(t,[l(t),n].filter(Boolean).join(r))}function f(t,n,r=e){o(t,[n,l(t)].filter(Boolean).join(r))}function p(e,t){t?o(e,`1`):s(e)}function m(e){let t=l(e);return t===void 0||t===``}function h(e){for(let[t,n]of Object.entries(e))o(t,n)}function g(){switch(process.env.NODE_ENV){case r.PROD:return r.PROD;case r.DEV:return r.DEV;case r.TEST:return r.TEST;default:return r.UNKNOWN}}const _=`AC_APPCIRCLE.AGOLA_GIT_REF.APPCENTER_BUILD_ID.APPVEYOR.bamboo_planKey.BITBUCKET_COMMIT.BITRISE_IO.BUDDY_WORKSPACE_ID.BUILD_ID.BUILD_NUMBER.BUILDER_OUTPUT.BUILDKITE.CF_BUILD_ID.CF_PAGES.CI_XCODE_PROJECT.CIRCLECI.CIRRUS_CI.CM_BUILD_ID.CODEBUILD_BUILD_ARN.DRONE.DSARI.EARTHLY_CI.EAS_BUILD.GERRIT_PROJECT.GITEA_ACTIONS.GITHUB_ACTIONS.GITLAB_CI.GO_PIPELINE_LABEL.HARNESS_BUILD_ID.HUDSON_URL.JENKINS_URL.LAYERCI.MAGNUM.NETLIFY.NEVERCODE.NOW_BUILDER.PROW_JOB_ID.RELEASE_BUILD_ID.RENDER.RUN_ID.SAILCI.SCREWDRIVER.SEMAPHORE.STRIDER.TASK_ID.TEAMCITY_VERSION.TF_BUILD.TRAVIS.VELA.VERCEL.WORKERS_CI.XCS`.split(`.`),v=[`CI`,`CONTINUOUS_INTEGRATION`],y=[`codeship`,`sourcehut`,`woodpecker`],b=e=>{let t=i[e]??i[e.toUpperCase()]??i[e.toLowerCase()];return t!=null&&t!==`0`&&t.toLowerCase()!==`false`},x=_.some(b),S=x||v.some(b)&&(x||typeof i.CI_NAME==`string`&&y.includes(i.CI_NAME.toLowerCase())),C=typeof window<`u`&&window.document!==void 0,w=typeof process<`u`&&process.env.NODE_ENV===r.DEV,T=typeof process<`u`&&process.env.NODE_ENV===r.PROD,E=typeof process<`u`&&process.env.NODE_ENV===r.TEST,D=typeof process<`u`&&process.versions!=null&&process.versions.node!=null;export{d as appendEnv,a as envRef,l as getEnv,u as getEnvOr,g as getRunTimeEnvironment,c as hasEnv,C as isBrowser,S as isCI,w as isDev,m as isEnvEmpty,D as isNode,T as isProd,E as isTest,f as prependEnv,s as removeEnv,o as setEnv,h as setEnvMany,p as toggleEnv};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["env"],"sources":["../src/env.ts","../src/getRunTimeEnvironment.ts","../src/isCI.ts","../src/runtime.ts"],"sourcesContent":["import { delimiter } from 'node:path';\nimport { env, isWindows } from '@js-utils-kit/system';\n\n/**\n * Get a shell-compatible reference to an environment variable.\n *\n * @remarks\n * - This helper returns a string that can be used inside shell commands to reference an environment variable.\n * - The format differs between operating systems:\n * - Unix/Linux/macOS → `$VAR`\n * - Windows (cmd) → `%VAR%`\n * - Supported shells:\n * - cmd\n * - bash / sh / zsh (POSIX)\n *\n * This is useful when constructing shell commands dynamically.\n *\n *\n * @example\n * ```ts\n * envRef(\"PATH\")\n * // Linux/macOS → \"$PATH\"\n * // Windows → \"%PATH%\"\n * ```\n */\nexport function envRef(\n /** Environment variable name */\n v: string,\n) {\n return isWindows ? `%${v}%` : `$${v}`;\n}\n\n/**\n * Set or update an environment variable.\n *\n * @remarks\n * This function writes a value to the environment map. If the variable already exists, it will be overwritten.\n *\n * @example\n * ```ts\n * setEnv(\"NODE_ENV\", \"production\");\n * ```\n */\nexport function setEnv(\n /** Environment variable name */\n k: string,\n /** Value to assign */\n v: string,\n) {\n env[k] = v;\n}\n\n/**\n * Remove an environment variable.\n *\n * @remarks\n * - Deletes the specified key from the environment object.\n * - After removal, the variable will behave as if it was never set.\n *\n * @example\n * ```ts\n * removeEnv(\"DEBUG\");\n * ```\n */\nexport function removeEnv(\n /** Environment variable name */\n k: string,\n) {\n delete env[k];\n}\n\n/**\n * Check if an environment variable exists.\n *\n * @remarks\n * - This only checks whether the variable key is present in the environment object.\n * - It does not check whether the value is empty.\n *\n * @example\n * ```ts\n * if (hasEnv(\"CI\")) {\n * console.log(\"Running in CI environment\");\n * }\n * ```\n */\nexport function hasEnv(\n /** Environment variable name */\n k: string,\n) {\n return Object.hasOwn(env, k);\n}\n\n/**\n * Retrieve the value of an environment variable.\n *\n * @remarks\n * - Returns the raw string value stored in the environment object.\n * - If the variable is not defined, `undefined` will be returned.\n *\n * @example\n * ```ts\n * const port = getEnv(\"PORT\");\n * ```\n */\nexport function getEnv(\n /** Environment variable name */\n k: string,\n) {\n return env[k];\n}\n\n/**\n * Retrieve an environment variable with a fallback value.\n *\n * @remarks\n * If the requested variable does not exist, the provided fallback value will be returned instead.\n *\n * @example\n * ```ts\n * const port = getEnvOr(\"PORT\", \"3000\");\n * ```\n */\nexport function getEnvOr(\n /** Environment variable name */\n k: string,\n /** Default value if variable is not set */\n fallback: string,\n) {\n return getEnv(k) ?? fallback;\n}\n\n/**\n * Append a value to an existing environment variable.\n *\n * @remarks\n * - Useful for variables like `PATH` that contain multiple entries.\n * - The platform-specific delimiter is used by default:\n * - Windows → `;`\n * - Unix/Linux/macOS → `:`\n *\n * @example\n * ```ts\n * appendEnv(\"PATH\", \"/custom/bin\");\n * ```\n */\nexport function appendEnv(\n /** Environment variable name */\n k: string,\n /** Value to append */\n v: string,\n /** Separator */\n sep = delimiter,\n) {\n const current = getEnv(k);\n setEnv(k, [current, v].filter(Boolean).join(sep));\n}\n\n/**\n * Prepend a value to an existing environment variable.\n *\n * @remarks\n * - Works similarly to {@link appendEnv} but places the new value at the beginning of the variable.\n * - This is often used to prioritize a binary path.\n *\n * @example\n * ```ts\n * prependEnv(\"PATH\", \"/my/bin\");\n * ```\n */\nexport function prependEnv(\n /** Environment variable name */\n k: string,\n /** Value to prepend */\n v: string,\n /** Separator */\n sep = delimiter,\n) {\n const current = getEnv(k);\n setEnv(k, [v, current].filter(Boolean).join(sep));\n}\n\n/**\n * Enable or disable a flag-style environment variable.\n *\n * @remarks\n * - When enabled, the variable is set to `\"1\"`.\n * - When disabled, it is removed from the environment.\n *\n * This pattern is commonly used for boolean flags in CLI tools.\n *\n * @example\n * ```ts\n * toggleEnv(\"DEBUG\", true);\n * toggleEnv(\"DEBUG\", false);\n * ```\n */\nexport function toggleEnv(\n /** Environment variable name */\n k: string,\n /** Whether the variable should be enabled */\n enabled: boolean,\n) {\n if (enabled) setEnv(k, '1');\n else removeEnv(k);\n}\n\n/**\n * Check if an environment variable is empty.\n *\n * @remarks\n * A variable is considered empty when:\n *\n * - It does not exist\n * - Its value is an empty string\n *\n * @example\n * ```ts\n * if (isEnvEmpty(\"API_KEY\")) {\n * console.warn(\"API key is missing\");\n * }\n * ```\n */\nexport function isEnvEmpty(\n /** Environment variable name */\n k: string,\n) {\n const v = getEnv(k);\n return v === undefined || v === '';\n}\n\n/**\n * Set multiple environment variables at once.\n *\n * @remarks\n * This helper allows batch updates of environment variables using an object map.\n *\n * @example\n * ```ts\n * setEnvMany({\n * NODE_ENV: \"production\",\n * DEBUG: \"1\",\n * PORT: \"8080\"\n * });\n * ```\n */\nexport function setEnvMany(\n /** Object containing key-value pairs */\n vars: Record<string, string>,\n) {\n for (const [k, v] of Object.entries(vars)) {\n setEnv(k, v);\n }\n}\n","import { Environment } from '@js-utils-kit/types';\n\n/**\n * Returns the current runtime environment as one of the defined `Environment` enum values.\n *\n * @returns The current environment.\n *\n * @example\n * ```ts\n * const env = getRunTimeEnvironment();\n * if (env === \"development\") {\n * console.log('Dev mode enabled');\n * }\n * ```\n */\nexport function getRunTimeEnvironment(): Environment {\n switch (process.env['NODE_ENV']) {\n case Environment.PROD:\n return Environment.PROD;\n case Environment.DEV:\n return Environment.DEV;\n case Environment.TEST:\n return Environment.TEST;\n default:\n return Environment.UNKNOWN;\n }\n}\n","import { env } from 'node:process';\n\n/** Environment variable keys */\nconst KEYS = [\n 'AC_APPCIRCLE',\n 'AGOLA_GIT_REF',\n 'APPCENTER_BUILD_ID',\n 'APPVEYOR',\n 'bamboo_planKey',\n 'BITBUCKET_COMMIT',\n 'BITRISE_IO',\n 'BUDDY_WORKSPACE_ID',\n 'BUILD_ID',\n 'BUILD_NUMBER',\n 'BUILDER_OUTPUT',\n 'BUILDKITE',\n 'CF_BUILD_ID',\n 'CF_PAGES',\n 'CI_XCODE_PROJECT',\n 'CIRCLECI',\n 'CIRRUS_CI',\n 'CM_BUILD_ID',\n 'CODEBUILD_BUILD_ARN',\n 'DRONE',\n 'DSARI',\n 'EARTHLY_CI',\n 'EAS_BUILD',\n 'GERRIT_PROJECT',\n 'GITEA_ACTIONS',\n 'GITHUB_ACTIONS',\n 'GITLAB_CI',\n 'GO_PIPELINE_LABEL',\n 'HARNESS_BUILD_ID',\n 'HUDSON_URL',\n 'JENKINS_URL',\n 'LAYERCI',\n 'MAGNUM',\n 'NETLIFY',\n 'NEVERCODE',\n 'NOW_BUILDER',\n 'PROW_JOB_ID',\n 'RELEASE_BUILD_ID',\n 'RENDER',\n 'RUN_ID',\n 'SAILCI',\n 'SCREWDRIVER',\n 'SEMAPHORE',\n 'STRIDER',\n 'TASK_ID',\n 'TEAMCITY_VERSION',\n 'TF_BUILD',\n 'TRAVIS',\n 'VELA',\n 'VERCEL',\n 'WORKERS_CI',\n 'XCS',\n] as const;\n\n/** Generic CI flags (can be set by tools like npx) */\nconst GENERIC_KEYS = ['CI', 'CONTINUOUS_INTEGRATION'] as const;\n\n/** CI provider identifiers exposed via the `CI_NAME` */\nconst NAMES = ['codeship', 'sourcehut', 'woodpecker'] as const;\n\nconst check = (key: string) => {\n const value = env[key] ?? env[key.toUpperCase()] ?? env[key.toLowerCase()];\n\n return value != null && value !== '0' && value.toLowerCase() !== 'false';\n};\n\nconst hasProviderKey = KEYS.some(check);\n\n/**\n * Determines whether the current runtime environment is a Continuous Integration (CI) environment.\n *\n * Detection is conservative to avoid false positives in local development.\n * It works as follows:\n *\n * 1. Immediately returns `true` if a known CI provider environment variable is present\n * (e.g. GitHub Actions, GitLab CI, CircleCI, etc.).\n * 2. If only generic CI flags (such as `CI` or `CONTINUOUS_INTEGRATION`) are present,\n * they are considered valid **only when** backed by a real CI provider signal\n * or a known `CI_NAME` identifier.\n *\n * This prevents tools like `npx`, npm, or local shells from incorrectly causing CI detection while preserving correct behavior in real CI environments.\n *\n * @example\n * ```ts\n * if (isCI) {\n * console.log(\"Running in CI\");\n * }\n * ```\n *\n * @returns `true` if running inside a CI environment, otherwise `false`.\n */\nexport const isCI =\n hasProviderKey ||\n (GENERIC_KEYS.some(check) &&\n (hasProviderKey ||\n (typeof env['CI_NAME'] === 'string' &&\n NAMES.includes(env['CI_NAME'].toLowerCase() as (typeof NAMES)[number]))));\n","import { Environment } from '@js-utils-kit/types';\n\n/**\n * Checks if the current runtime environment is a browser.\n *\n * This function helps detect whether code is executing in a web browser\n * by confirming the existence of the global `window` and `document` objects.\n *\n * @returns `true` if running in a browser, otherwise `false`.\n *\n * @example\n * ```ts\n * if (isBrowser) {\n * console.log('Running in a browser environment');\n * }\n * ```\n */\nexport const isBrowser: boolean =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\n/**\n * Checks if the current environment is development.\n *\n * This is determined by comparing `process.env.NODE_ENV` with `'development'`.\n *\n * @returns `true` if `NODE_ENV` is set to development.\n *\n * @example\n * ```ts\n * if (isDev) {\n * console.log('Dev mode enabled');\n * }\n * ```\n */\nexport const isDev: boolean =\n typeof process !== 'undefined' && process.env['NODE_ENV'] === Environment.DEV;\n\n/**\n * Checks if the current environment is production.\n *\n * This is determined by comparing `process.env.NODE_ENV` with `'production'`.\n *\n * @returns `true` if `NODE_ENV` is set to production.\n *\n * @example\n * ```ts\n * if (isProd) {\n * enableAnalytics();\n * }\n * ```\n */\nexport const isProd: boolean =\n typeof process !== 'undefined' && process.env['NODE_ENV'] === Environment.PROD;\n\n/**\n * Checks if the current environment is testing.\n *\n * This is determined by comparing `process.env.NODE_ENV` with `'test'`.\n *\n * @returns `true` if `NODE_ENV` is set to test.\n *\n * @example\n * ```ts\n * if (isTest) {\n * mockDatabase();\n * }\n * ```\n */\nexport const isTest: boolean =\n typeof process !== 'undefined' && process.env['NODE_ENV'] === Environment.TEST;\n\n/**\n * Checks if the current runtime environment is Node.js.\n *\n * @remarks\n * - It is useful to conditionally execute server-side logic.\n * - It detects the Node.js environment by verifying the presence of the global `process` object and its `versions.node` property.\n *\n * @returns `true` if running in Node.js, otherwise `false`.\n *\n * @example\n * ```ts\n * if (isNode) {\n * console.log('Running in Node.js environment');\n * }\n * ```\n *\n * @see {@link https://nodejs.org/api/process.html | Node.js process documentation}\n */\nexport const isNode: boolean =\n typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n"],"mappings":"qLAyBA,SAAgB,EAEd,EACA,CACA,OAAO,EAAY,IAAI,EAAE,GAAK,IAAI,IAcpC,SAAgB,EAEd,EAEA,EACA,CACA,EAAI,GAAK,EAeX,SAAgB,EAEd,EACA,CACA,OAAO,EAAI,GAiBb,SAAgB,EAEd,EACA,CACA,OAAO,OAAO,OAAO,EAAK,EAAE,CAe9B,SAAgB,EAEd,EACA,CACA,OAAO,EAAI,GAcb,SAAgB,EAEd,EAEA,EACA,CACA,OAAO,EAAO,EAAE,EAAI,EAiBtB,SAAgB,EAEd,EAEA,EAEA,EAAM,EACN,CAEA,EAAO,EAAG,CADM,EAAO,EAAE,CACL,EAAE,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAI,CAAC,CAenD,SAAgB,EAEd,EAEA,EAEA,EAAM,EACN,CAEA,EAAO,EAAG,CAAC,EADK,EAAO,EAAE,CACH,CAAC,OAAO,QAAQ,CAAC,KAAK,EAAI,CAAC,CAkBnD,SAAgB,EAEd,EAEA,EACA,CACI,EAAS,EAAO,EAAG,IAAI,CACtB,EAAU,EAAE,CAmBnB,SAAgB,EAEd,EACA,CACA,IAAM,EAAI,EAAO,EAAE,CACnB,OAAO,IAAM,IAAA,IAAa,IAAM,GAkBlC,SAAgB,EAEd,EACA,CACA,IAAK,GAAM,CAAC,EAAG,KAAM,OAAO,QAAQ,EAAK,CACvC,EAAO,EAAG,EAAE,CC3OhB,SAAgB,GAAqC,CACnD,OAAQ,QAAQ,IAAI,SAApB,CACE,KAAK,EAAY,KACf,OAAO,EAAY,KACrB,KAAK,EAAY,IACf,OAAO,EAAY,IACrB,KAAK,EAAY,KACf,OAAO,EAAY,KACrB,QACE,OAAO,EAAY,SCrBzB,MAAM,EAAO,2lBAqDZ,CAGK,EAAe,CAAC,KAAM,yBAAyB,CAG/C,EAAQ,CAAC,WAAY,YAAa,aAAa,CAE/C,EAAS,GAAgB,CAC7B,IAAM,EAAQA,EAAI,IAAQA,EAAI,EAAI,aAAa,GAAKA,EAAI,EAAI,aAAa,EAEzE,OAAO,GAAS,MAAQ,IAAU,KAAO,EAAM,aAAa,GAAK,SAG7D,EAAiB,EAAK,KAAK,EAAM,CAyB1B,EACX,GACC,EAAa,KAAK,EAAM,GACtB,GACE,OAAOA,EAAI,SAAe,UACzB,EAAM,SAASA,EAAI,QAAW,aAAa,CAA2B,ECnFjE,EACX,OAAO,OAAW,KAAsB,OAAO,WAAa,OAgBjD,EACX,OAAO,QAAY,KAAe,QAAQ,IAAI,WAAgB,EAAY,IAgB/D,EACX,OAAO,QAAY,KAAe,QAAQ,IAAI,WAAgB,EAAY,KAgB/D,EACX,OAAO,QAAY,KAAe,QAAQ,IAAI,WAAgB,EAAY,KAoB/D,EACX,OAAO,QAAY,KAAe,QAAQ,UAAY,MAAQ,QAAQ,SAAS,MAAQ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-utils-kit/env",
3
- "version": "1.7.0",
3
+ "version": "2.0.0",
4
4
  "description": "Environment utilities",
5
5
  "homepage": "https://js-utils.js.org",
6
6
  "repository": {
@@ -35,8 +35,8 @@
35
35
  "node": ">=22"
36
36
  },
37
37
  "dependencies": {
38
- "@js-utils-kit/system": "1.0.0",
39
- "@js-utils-kit/types": "1.5.0"
38
+ "@js-utils-kit/system": "1.0.1",
39
+ "@js-utils-kit/types": "1.6.0"
40
40
  },
41
41
  "scripts": {
42
42
  "build": "tsdown",