From 575d43c508d56b5d5fc0aa0ddc2aab93b3a3676e Mon Sep 17 00:00:00 2001 From: Gitgiddy Date: Fri, 26 Jun 2015 09:24:50 -0400 Subject: [PATCH] Extendable interfaces for require, module.require Node's `require` should implement a new interface `NodeRequire` (rather than direct signature) for specialized extension by other libraries #4740 --- node/node.d.ts | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/node/node.d.ts b/node/node.d.ts index 0c6b42740d..6d73172f82 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -27,23 +27,30 @@ declare function clearInterval(intervalId: NodeJS.Timer): void; declare function setImmediate(callback: (...args: any[]) => void, ...args: any[]): any; declare function clearImmediate(immediateId: any): void; -declare var require: { +interface NodeRequireFunction { (id: string): any; +} + +interface NodeRequire extends NodeRequireFunction { resolve(id:string): string; cache: any; extensions: any; main: any; -}; +} -declare var module: { +declare var require: NodeRequire; + +interface NodeModule { exports: any; - require(id: string): any; + require: NodeRequireFunction; id: string; filename: string; loaded: boolean; parent: any; children: any[]; -}; +} + +declare var module: NodeModule; // Same as module.exports declare var exports: any;