Skip to content
This repository has been archived by the owner on Nov 7, 2024. It is now read-only.

An ES (JavaScript & TypeScript) module for cross runtime environment variables interface.

License

Notifications You must be signed in to change notification settings

hugoalh-studio/cross-env-es

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cross Env (ES)

⚖️ MIT

GitHub: hugoalh-studio/cross-env-es JSR: @hugoalh/cross-env NPM: @hugoalh/cross-env

An ES (JavaScript & TypeScript) module for cross runtime environment variables interface.

🔰 Begin

🎯 Targets

Registry - JSR Registry - NPM Remote Import
Bun >= v1.1.0 ✔️ node_modules ✔️ Specifier npm:
Deno >= v1.42.0 ✔️ Specifier jsr: ✔️ Specifier npm: ✔️
NodeJS >= v16.13.0 ✔️ node_modules ✔️ node_modules

ℹ️ Note

It is possible to use this module in other methods/ways which not listed in here, however it is not officially supported.

#️⃣ Registries Identifier

  • JSR:
    @hugoalh/cross-env
    
  • NPM:
    @hugoalh/cross-env
    

ℹ️ Note

  • Although it is recommended to import the entire module, it is also able to import part of the module with sub path if available, please visit file jsr.jsonc property exports for available sub paths.
  • It is recommended to use this module with tag for immutability.

#️⃣ Remote Import Paths

  • GitHub Raw: (Require Tag)
    https://raw.githubusercontent.com/hugoalh-studio/cross-env-es/${Tag}/mod.ts
    

ℹ️ Note

  • Although it is recommended to import the entire module with the main path mod.ts, it is also able to import part of the module with sub path if available, but do not import if:

    • it's file path has an underscore prefix (e.g.: _foo.ts, _util/bar.ts), or
    • it is a benchmark or test file (e.g.: foo.bench.ts, foo.test.ts), or
    • it's symbol has an underscore prefix (e.g.: export function _baz() {}).

    These elements are not considered part of the public API, thus no stability is guaranteed for them.

  • Although there have 3rd party services which provide enhanced, equal, or similar methods/ways to remote import the module, beware these services maybe inject unrelated elements and thus affect the security.

🛡️ Permissions

Target Type Coverage
Deno Environment Variable (allow-env) All

🧩 APIs

  • const env: CrossEnv;
  • const envPath: CrossEnvPath;
  • const envPathExt: CrossEnvPathExt;
  • function isEnvironmentCI(): boolean;
  • function isEnvironmentDocker(): Promise<boolean>;
  • function isEnvironmentHeroku(): boolean;
  • function isEnvironmentHyper(): boolean;
  • function isEnvironmentPodman(): Promise<boolean>;
  • function isEnvironmentRoot(): boolean;
  • function isEnvironmentSSH(): boolean;
  • function isEnvironmentTravis(): boolean;
  • function isEnvironmentWSL(): Promise<boolean>;
  • interface CrossEnv {
      delete(key: string): void;
      get(key: string): string | undefined;
      getAll(): { [key: string]: string; };
      has(key: string): boolean;
      set(key: string, value: string): void;
    }
  • interface CrossEnvPath {
      add(...values: string[]): void;
      delete(...values: string[]): void;
      get(): string[];
    }
  • interface CrossEnvPathExt {
      add(...values: string[]): void;
      delete(...values: string[]): void;
      get(): string[] | null;
    }

ℹ️ Note

For the prettier documentation, can visit via:

✍️ Examples

  • env.delete("SOME_VAR");
  • env.get("HOME");
    //=> "/home/alice"
  • env.get("SOME_VAR");
    //=> undefined