diff --git a/README.md b/README.md index 98e9039..40af623 100644 --- a/README.md +++ b/README.md @@ -12,18 +12,28 @@ Operating on the NODE_ENV environmental variable ## Usage +### Install + +```shell +npm install node-env-manager +``` + ### CONST ```javascript const { ENV } = require("node-env-manager"); -ENV.PROD // -> "production" -ENV.DEV // -> "development" -ENV.LOCAL // -> "local" -ENV.TEST // -> "test" -ENV.EXP // -> "experience" -ENV.GRAY // -> "gray" -ENV.CI // -> "ci" +ENV.PROD // -> "production", +ENV.PRODUCTION // -> "production", +ENV.DEV // -> "dev", +ENV.DEVELOP // -> "develop", +ENV.DEVELOPMENT // -> "development", +ENV.LOCAL // -> "local", +ENV.TEST // -> "test", +ENV.EXP // -> "exp", +ENV.EXPERIENCE // -> "experience", +ENV.GRAY // -> "gray", +ENV.CI // -> "ci" ``` ### Mothods @@ -31,7 +41,7 @@ ENV.CI // -> "ci" ```javascript const env = require("node-env-manager"); -env.init(); // set `process.env.NODE_ENV` value if this is null +env.init(); // set `process.env.NODE_ENV` value if the value is null env.set(); // set `process.env.NODE_ENV` value env.get(); // get `process.env.NODE_ENV` value diff --git a/lib/index.ts b/lib/index.ts index fbabca2..7fe113f 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -2,14 +2,22 @@ export enum ENV { /** 开发环境 */ PROD = "production", + /** 开发环境 */ + PRODUCTION = "production", + /** 生产环境 */ + DEV = "dev", + /** 生产环境 */ + DEVELOP = "develop", /** 生产环境 */ - DEV = "development", + DEVELOPMENT = "development", /** 本地环境 */ LOCAL = "local", /** 测试环境 */ TEST = "test", /** 正式环境 */ - EXP = "experience", + EXP = "exp", + /** 正式环境 */ + EXPERIENCE = "experience", /** 灰度环境 */ GRAY = "gray", /** CI 环境 */ @@ -36,7 +44,7 @@ export const get = () => { * @param env {string} */ export const set = (env: ENV | string) => { - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } env = env.trim().toLowerCase(); @@ -50,11 +58,12 @@ export const set = (env: ENV | string) => { */ export const isLocal = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ["local"].map((item) => item.trim().toUpperCase()).indexOf(env) !== -1; + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.LOCAL ]; + return envs.indexOf(env) !== -1; }; /** @@ -63,11 +72,12 @@ export const isLocal = () => { */ export const isTest = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ["test"].map((item) => item.trim().toUpperCase()).indexOf(env) !== -1; + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.TEST ]; + return envs.indexOf(env) !== -1; }; /** @@ -76,15 +86,12 @@ export const isTest = () => { */ export const isDev = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ( - ["dev", "develop", "development"] - .map((item) => item.trim().toUpperCase()) - .indexOf(env) !== -1 - ); + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.DEV, ENV.DEVELOP, ENV.DEVELOPMENT ]; + return envs.indexOf(env) !== -1; }; /** @@ -93,15 +100,12 @@ export const isDev = () => { */ export const isProd = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ( - ["prod", "production"] - .map((item) => item.trim().toUpperCase()) - .indexOf(env) !== -1 - ); + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.PROD, ENV.PRODUCTION ]; + return envs.indexOf(env) !== -1; }; /** @@ -110,15 +114,12 @@ export const isProd = () => { */ export const isExp = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ( - ["exp", "experience"] - .map((item) => item.trim().toUpperCase()) - .indexOf(env) !== -1 - ); + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.EXP, ENV.EXPERIENCE ]; + return envs.indexOf(env) !== -1; }; /** @@ -127,11 +128,12 @@ export const isExp = () => { */ export const isGray = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ["gray"].map((item) => item.trim().toUpperCase()).indexOf(env) !== -1; + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.GRAY ]; + return envs.indexOf(env) !== -1; }; /** @@ -140,9 +142,10 @@ export const isGray = () => { */ export const isCI = () => { let env = process.env.NODE_ENV; - if (typeof env !== "string") { + if (!env || typeof env !== "string") { return false; } - env = env.trim().toUpperCase(); - return ["ci"].map((item) => item.trim().toUpperCase()).indexOf(env) !== -1; + env = env.trim().toLowerCase(); + const envs: string[] = [ ENV.CI ]; + return envs.indexOf(env) !== -1; }; diff --git a/package.json b/package.json index 2a4658c..6d6e5d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-env-manager", - "version": "1.0.0", + "version": "1.0.1", "description": "Operating on the NODE_ENV environmental variable", "main": "dist/index.js", "types": "lib/index.ts", @@ -23,6 +23,8 @@ "environment", "env", "nodeenv", + "node-env", + "node_env", "NODE_ENV", "test", "local", diff --git a/test/is.spec.ts b/test/is.spec.ts index 0bdc1a8..8aed6a7 100644 --- a/test/is.spec.ts +++ b/test/is.spec.ts @@ -5,64 +5,65 @@ test.beforeEach(() => { delete process.env.NODE_ENV; }); -test((t) => { +test("isProd", (t) => { process.env.NODE_ENV = env.ENV.PROD; t.true(env.isProd()); }); -test((t) => { +test("isProd", (t) => { t.false(env.isProd()); }); -test((t) => { +test("isDev", (t) => { process.env.NODE_ENV = env.ENV.DEV; t.true(env.isDev()); }); -test((t) => { + +test("isDev", (t) => { t.false(env.isDev()); }); -test((t) => { +test("isLocal", (t) => { process.env.NODE_ENV = env.ENV.LOCAL; t.true(env.isLocal()); }); -test((t) => { +test("isLocal", (t) => { t.false(env.isLocal()); }); -test((t) => { +test("isTest", (t) => { process.env.NODE_ENV = env.ENV.TEST; t.true(env.isTest()); }); -test((t) => { +test("isTest", (t) => { t.false(env.isTest()); }); -test((t) => { +test("isExp", (t) => { process.env.NODE_ENV = env.ENV.EXP; t.true(env.isExp()); }); -test((t) => { +test("isExp", (t) => { t.false(env.isExp()); }); -test((t) => { +test("isGray", (t) => { process.env.NODE_ENV = env.ENV.GRAY; t.true(env.isGray()); }); -test((t) => { +test("isGray", (t) => { t.false(env.isGray()); }); -test((t) => { +test("isCI", (t) => { process.env.NODE_ENV = env.ENV.CI; t.true(env.isCI()); }); -test((t) => { +test("isCI", (t) => { t.false(env.isCI()); }); diff --git a/test/set.spec.ts b/test/set.spec.ts index ee8d631..68aee66 100644 --- a/test/set.spec.ts +++ b/test/set.spec.ts @@ -9,3 +9,14 @@ test((t) => { t.true(env.set(env.ENV.DEV)); t.true(env.isDev()); }); + +test((t) => { + t.false(env.set(1 as any)); +}); + +test((t) => { + env.init(); + t.true(env.isDev()); + t.false(env.set(undefined as any)); + t.true(env.isDev()); +});