From 3537f59e0bbde80a10dfae49152aff696dbba795 Mon Sep 17 00:00:00 2001 From: Ben Davies Date: Wed, 31 May 2017 22:32:50 -0700 Subject: [PATCH] [cloud-env] Add type declarations (#16772) --- types/cloud-env/cloud-env-tests.ts | 9 ++++++ types/cloud-env/index.d.ts | 51 ++++++++++++++++++++++++++++++ types/cloud-env/tsconfig.json | 19 +++++++++++ 3 files changed, 79 insertions(+) create mode 100644 types/cloud-env/cloud-env-tests.ts create mode 100644 types/cloud-env/index.d.ts create mode 100644 types/cloud-env/tsconfig.json diff --git a/types/cloud-env/cloud-env-tests.ts b/types/cloud-env/cloud-env-tests.ts new file mode 100644 index 0000000000..64cbadd7f0 --- /dev/null +++ b/types/cloud-env/cloud-env-tests.ts @@ -0,0 +1,9 @@ +import * as cloudEnv from 'cloud-env'; + +if (cloudEnv.get('IP', '0.0.0.0') !== '0.0.0.0') { + throw new Error(`cloudEnv.get: expected value 0.0.0.0, but actually received value ${cloudEnv.get('IP', '0.0.0.0')}`); +} + +if (!(cloudEnv.defaults instanceof Object)) { + throw new Error(`cloudEnv.defaults: expected value of defaults be an instance of Object, but it was actually an instance of another class: ${typeof cloudEnv.defaults}`); +} diff --git a/types/cloud-env/index.d.ts b/types/cloud-env/index.d.ts new file mode 100644 index 0000000000..daec09022f --- /dev/null +++ b/types/cloud-env/index.d.ts @@ -0,0 +1,51 @@ +// Type definitions for cloud-env 0.2.2 +// Project: https://github.com/ryanj/cloud-env +// Definitions by: Ben Davies +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare interface DefaultSettings { + PORT?: number; + IP?: string; + HOSTNAME?: string; + APP_NAME?: string; + MONGODB_DB_URL?: string; + MONGODB_DB_HOST?: string; + MONGODB_DB_PORT?: number; + MONGODB_DB_USERNAME?: string; + MONGODB_DB_PASSWORD?: string; + POSTGRESQL_DB_URL?: string; + POSTGRESQL_DB_HOST?: string; + POSTGRESQL_DB_PORT?: number; + POSTGRESQL_DB_USERNAME?: string; + POSTGRESQL_DB_PASSWORD?: string; + MYSQL_DB_URL?: string; + MYSQL_DB_HOST?: string; + MYSQL_DB_PORT?: number; + MYSQL_DB_USERNAME?: string; + MYSQL_DB_PASSWORD?: string; +} + +declare type MaybeNum = number | void; +declare type MaybeStr = string | void; + +export const get: (key: string, default_key?: string) => MaybeStr; +export const defaults: { [key: string]: DefaultSettings; }; +export const PORT: MaybeNum; +export const IP: MaybeStr; +export const HOSTNAME: MaybeStr; +export const APP_NAME: MaybeStr; +export const MONGODB_DB_URL: MaybeStr; +export const MONGODB_DB_HOST: MaybeStr; +export const MONGODB_DB_PORT: MaybeNum; +export const MONGODB_DB_USERNAME: MaybeStr; +export const MONGODB_DB_PASSWORD: MaybeStr; +export const POSTGRESQL_DB_URL: MaybeStr; +export const POSTGRESQL_DB_HOST: MaybeStr; +export const POSTGRESQL_DB_PORT: MaybeNum; +export const POSTGRESQL_DB_USERNAME: MaybeStr; +export const POSTGRESQL_DB_PASSWORD: MaybeStr; +export const MYSQL_DB_URL: MaybeStr; +export const MYSQL_DB_HOST: MaybeStr; +export const MYSQL_DB_PORT: MaybeNum; +export const MYSQL_DB_USERNAME: MaybeStr; +export const MYSQL_DB_PASSWORD: MaybeStr; diff --git a/types/cloud-env/tsconfig.json b/types/cloud-env/tsconfig.json new file mode 100644 index 0000000000..e6a1323629 --- /dev/null +++ b/types/cloud-env/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "lib": ["es6"], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": ["../"], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "cloud-env-tests.ts" + ] +}