Skip to content

jlongyam/env

Repository files navigation

env

npm (scoped) npm bundle size npm jsDelivr

Basic environment detector.

Usage

CLI

npm i @jlongyam/env -S or -D

  • ES Module
import env from "@jlongyam/env";

console.log(env);
  • CommonJS
const env = require("@jlongyam/env");

console.log(env);
  • SystemJS

npm i systemjs

import url from "url";
import systemjs from "systemjs";

const { System, applyImportMap, setBaseUrl } = systemjs;
const basePath = url.pathToFileURL(process.cwd()).href;

setBaseUrl(System, basePath);
applyImportMap(System, {
  imports: {
    env: "./node_modules/@jlongyam/env/dist/system/env.js"
  }
});

const exports = {
  env: await System.import(["env"])
};
const env = exports.env.default;

console.log(env);

Browser

  • IIFE
<script src="https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.min.js"></script>
<script>
  console.log(env)
</script>
  • ES Module
<script type="importmap">
  {
    "imports": {
      "env": "https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.es.min.js"
    }
  }
</script>
<script type="module">
  import env from "env";

  console.log(env);
</script>
  • SystemJS
<script src="https://cdn.jsdelivr.net/npm/systemjs/dist/system.min.js"></script>
<script type="systemjs-importmap">
  {
    "imports": {
      "env": "https://cdn.jsdelivr.net/npm/@jlongyam/env/dist/env.min.js"
    }
  }
</script>
<script>
  (async function () {
    let env = await System.import(["env"]);
    env = env.default;

    console.log(env);
  })();
</script>

Worker

  • worker.js
import env from "https://cdn.jsdelivr.net/npm/@jlongyam/env/src/env.es.min.js";

self.postMessage({
  result: env.worker
})
  • front
<script type="module">
  const worker = new Worker('./worker.js', { type: 'module' });

  worker.addEventListener('message', (event) => {
    console.log(event.data)
  });
</script>

API

Base

Namespace Type
env.browser Boolean
env.worker Boolean
env.cli Boolean

Expansion

Usage example using Expansion namespace:

import envGlobal from "@jlongyam/env/global";
import envBrowser from "@jlongyam/env/browser";

Alternative method for legacy node:

const envGlobal = require('@jlongyam/env/dist/global/envGlobal');
Namespace Type
envGlobal Object
envBrowser Object

Note

To use envBrowser in ancient browser like Internet Explorer, it's require polyfill:

  • Array.isArray
  • Array.some
  • Object.defineProperty
  • Object.defineProperties

See "test/browser/env.iife.test.html"

Uninstall

npm un @jlongyam/env -D or -S

Alternative

About

Basic environment detector

Topics

Resources

License

Stars

Watchers

Forks