diff --git a/types/asenv/asenv-tests.ts b/types/asenv/asenv-tests.ts new file mode 100644 index 0000000000..0448672d10 --- /dev/null +++ b/types/asenv/asenv-tests.ts @@ -0,0 +1,26 @@ +import { unlessProduction, isDevelopment, isTest, isProduction, getEnv, setEnv } from 'asenv'; +import { equal, throws } from 'assert'; + +// Test isDevelopment() +setEnv('development'); +equal(getEnv(), 'development', 'Should return be true'); +equal(isDevelopment(), true, 'NODE_ENV should be "development"'); +equal(isTest(), false, 'NODE_ENV should be "development"'); +equal(isProduction(), false, 'NODE_ENV should be "development"'); +equal(unlessProduction(() => true), true, "Shound return true"); + +// Test isTest() +setEnv('test'); +equal(getEnv(), 'test', 'Should return be true'); +equal(isDevelopment(), false, 'NODE_ENV should be "test"'); +equal(isTest(), true, 'NODE_ENV should be "test"'); +equal(isProduction(), false, 'NODE_ENV should be "test"'); +equal(unlessProduction(() => true), true, "Shound return true"); + +// Test isProduction() +setEnv('production'); +equal(getEnv(), 'production', 'Should return be true'); +equal(isDevelopment(), false, 'NODE_ENV should be "production"'); +equal(isTest(), false, 'NODE_ENV should be "production"'); +equal(isProduction(), true, 'NODE_ENV should be "production"'); +equal(unlessProduction(() => true), false, "Shound return false"); diff --git a/types/asenv/index.d.ts b/types/asenv/index.d.ts new file mode 100644 index 0000000000..f127664d13 --- /dev/null +++ b/types/asenv/index.d.ts @@ -0,0 +1,18 @@ +// Type definitions for asenv 1.1 +// Project: https://github.com/a-labo/asenv#readme +// Definitions by: Remisery +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export function getEnv(): string; + +export function isDevelopment(): boolean; + +export function isProduction(): boolean; + +export function isTest(): boolean; + +export function setEnv(env: string): void; + +export function unlessProduction(handle: () => any): any; diff --git a/types/asenv/tsconfig.json b/types/asenv/tsconfig.json new file mode 100644 index 0000000000..129dd1caf0 --- /dev/null +++ b/types/asenv/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "asenv-tests.ts" + ] +} diff --git a/types/asenv/tslint.json b/types/asenv/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/asenv/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +}