From 616c84c0e73295a78a94b96276da833dcafe9ea0 Mon Sep 17 00:00:00 2001 From: Flarna Date: Thu, 28 Sep 2017 22:36:21 +0200 Subject: [PATCH] [node] Allow augmentation of module (#19612) * [node] Allow augmentation of module - move class Module into NodeJS namespace - add Module.Module * update according to review findings --- types/node/index.d.ts | 36 +++++++++++++++++++----------------- types/node/node-tests.ts | 5 +++-- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index 211371b1ad..96c7fd132f 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -679,6 +679,24 @@ declare namespace NodeJS { ref(): void; unref(): void; } + + class Module { + static runMain(): void; + static wrap(code: string): string; + + static Module: typeof Module; + + exports: any; + require: NodeRequireFunction; + id: string; + filename: string; + loaded: boolean; + parent: Module | null; + children: Module[]; + paths: string[]; + + constructor(id: string, parent?: Module); + } } interface IterableIterator { } @@ -5627,23 +5645,7 @@ declare module "constants" { } declare module "module" { - class Module implements NodeModule { - static runMain(): void; - static wrap(code: string): string; - - exports: any; - require: NodeRequireFunction; - id: string; - filename: string; - loaded: boolean; - parent: NodeModule | null; - children: NodeModule[]; - paths: string[]; - - constructor(id: string, parent?: Module); - } - - export = Module; + export = NodeJS.Module; } declare module "process" { diff --git a/types/node/node-tests.ts b/types/node/node-tests.ts index bfd1eaa02e..84bdba51fd 100644 --- a/types/node/node-tests.ts +++ b/types/node/node-tests.ts @@ -3466,7 +3466,8 @@ namespace module_tests { require.extensions[".ts"] = () => ""; Module.runMain(); - Module.wrap("some code"); + const s: string = Module.wrap("some code"); - const m1 = new Module("moduleId"); + const m1: Module = new Module("moduleId"); + const m2: Module = new Module.Module("moduleId"); }