diff --git a/config/config-tests.ts b/config/config-tests.ts new file mode 100644 index 000000000..2f53b76d6 --- /dev/null +++ b/config/config-tests.ts @@ -0,0 +1,30 @@ +/// + +import config = require('config'); + +var value1: string = config.get(""); +var value2: any = config.get(""); + +var has: boolean = config.has(""); + +// util tests: +var extended1: any = config.util.extendDeep({}, {}); +var extended2: any = config.util.extendDeep({}, {}, 20); + +var clone1: any = config.util.cloneDeep({}); +var clone2: any = config.util.cloneDeep({}, 20); + +var equals1: boolean = config.util.equalsDeep({}, {}); +var equals2: boolean = config.util.equalsDeep({}, {}, 20); + +var diff1: any = config.util.diffDeep({}, {}); +var diff2: any = config.util.diffDeep({}, {}, 20); + +var immutable1: any = config.util.makeImmutable({}); +var immutable2: any = config.util.makeImmutable({}, ""); +var immutable3: any = config.util.makeImmutable({}, "", ""); + +var hidden1: any = config.util.makeHidden({}, ""); +var hidden2: any = config.util.makeHidden({}, "", ""); + +var env: string = config.util.getEnv(""); diff --git a/config/config.d.ts b/config/config.d.ts new file mode 100644 index 000000000..c37eddae9 --- /dev/null +++ b/config/config.d.ts @@ -0,0 +1,34 @@ +// Type definitions for node-config +// Project: https://github.com/lorenwest/node-config +// Definitions by: Roman Korneev +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +declare module "config" { + // see https://github.com/lorenwest/node-config/wiki/Using-Config-Utilities + interface IUtil { + // Extend an object (and any object it contains) with one or more objects (and objects contained in them). + extendDeep(mergeInto: any, mergeFrom: any, depth?: number): any; + + // Return a deep copy of the specified object. + cloneDeep(copyFrom: any, depth?: number): any; + + // Return true if two objects have equal contents. + equalsDeep(object1: any, object2: any, dept?: number): boolean; + + // Returns an object containing all elements that differ between two objects. + diffDeep(object1: any, object2: any, depth?: number): any; + + // Make a javascript object property immutable (assuring it cannot be changed from the current value). + makeImmutable(object: any, propertyName?: string, propertyValue?: string): any; + + // Make an object property hidden so it doesn't appear when enumerating elements of the object. + makeHidden(object: any, propertyName: string, propertyValue?: string): any; + + // Get the current value of a config environment variable + getEnv(varName: string): string; + } + + export function get(setting: string): T; + export function has(setting: string): boolean; + export var util: IUtil; +}