From d09aa67bc302d16dce99e286d302c77223bbac0b Mon Sep 17 00:00:00 2001 From: Anthony Cleaver Date: Wed, 19 Jul 2017 10:26:32 +0100 Subject: [PATCH 1/3] ignore files inside node_modules when removing declarations files --- lib/index.ts | 9 +++++---- test/expected/default/foo-mx.d.ts | 3 +++ test/expected/excludeExp/foo-mx.d.ts | 3 +++ test/expected/excludeFunc/foo-mx.d.ts | 3 +++ test/expected/externals/foo-mx.d.ts | 8 ++++++++ test/expected/includeExclude/foo-mx.d.ts | 8 ++++++++ test/expected/out/fizz/buzz.d.ts | 3 +++ test/expected/remove/foo-mx.d.ts | 3 +++ test/expected/seprinnew/bar-mx.d.ts | 3 +++ test/src/main/index.ts | 7 +++++++ 10 files changed, 46 insertions(+), 4 deletions(-) diff --git a/lib/index.ts b/lib/index.ts index 6e744c4..980cb3d 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -22,6 +22,7 @@ const identifierExp = /^\w+(?:[\.-]\w+)*$/; const fileExp = /^([\./].*|.:.*)$/; const privateExp = /^[ \t]*(?:static )?private (?:static )?/; const publicExp = /^([ \t]*)(static |)(public |)(static |)(.*)/; +const nodeModulesExp = /\/node_modules\//; export interface Options { main: string; @@ -374,11 +375,11 @@ export function bundle(options: Options): BundleResult { if (removeSource) { trace('\n### remove source typings ###'); - sourceTypings.forEach(p => { + sourceTypings.forEach((filePath: string) => { // safety check, only delete .d.ts files, leave our outFile intact for now - if (p !== outFile && dtsExp.test(p) && fs.statSync(p).isFile()) { - trace(' - %s', p); - fs.unlinkSync(p); + if (filePath !== outFile && dtsExp.test(filePath) && !nodeModulesExp.test(filePath) && fs.statSync(filePath).isFile()) { + trace(' - %s', filePath); + fs.unlinkSync(filePath); } }); } diff --git a/test/expected/default/foo-mx.d.ts b/test/expected/default/foo-mx.d.ts index 3eddaee..25d7cbc 100644 --- a/test/expected/default/foo-mx.d.ts +++ b/test/expected/default/foo-mx.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: // ../../src/typings/external.d.ts +// ../../src/node_modules/modules.d.ts declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('external1'); + import nodeModule = require('node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/lib/exported-sub' { diff --git a/test/expected/excludeExp/foo-mx.d.ts b/test/expected/excludeExp/foo-mx.d.ts index 53fa0df..5f1062b 100644 --- a/test/expected/excludeExp/foo-mx.d.ts +++ b/test/expected/excludeExp/foo-mx.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: // ../../src/typings/external.d.ts +// ../../src/node_modules/modules.d.ts declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('external1'); + import nodeModule = require('node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/Foo' { diff --git a/test/expected/excludeFunc/foo-mx.d.ts b/test/expected/excludeFunc/foo-mx.d.ts index 53fa0df..5f1062b 100644 --- a/test/expected/excludeFunc/foo-mx.d.ts +++ b/test/expected/excludeFunc/foo-mx.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: // ../../src/typings/external.d.ts +// ../../src/node_modules/modules.d.ts declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('external1'); + import nodeModule = require('node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/Foo' { diff --git a/test/expected/externals/foo-mx.d.ts b/test/expected/externals/foo-mx.d.ts index d92b6b8..d7ecc10 100644 --- a/test/expected/externals/foo-mx.d.ts +++ b/test/expected/externals/foo-mx.d.ts @@ -2,10 +2,12 @@ declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('foo-mx/index//external1'); + import nodeModule = require('foo-mx/index//node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/index//external1' { @@ -20,6 +22,12 @@ declare module 'foo-mx/index//external2' { } } +declare module 'foo-mx/index//node_module' { + export class SomeType { + foo(): void; + } +} + declare module 'foo-mx/lib/exported-sub' { import Foo = require('foo-mx/Foo'); import mod2 = require('foo-mx/index//external2'); diff --git a/test/expected/includeExclude/foo-mx.d.ts b/test/expected/includeExclude/foo-mx.d.ts index ba3848c..552a68d 100644 --- a/test/expected/includeExclude/foo-mx.d.ts +++ b/test/expected/includeExclude/foo-mx.d.ts @@ -2,10 +2,12 @@ declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('foo-mx/index//external1'); + import nodeModule = require('foo-mx/index//node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/index//external1' { @@ -20,6 +22,12 @@ declare module 'foo-mx/index//external2' { } } +declare module 'foo-mx/index//node_module' { + export class SomeType { + foo(): void; + } +} + declare module 'foo-mx/Foo' { class Foo { foo: string; diff --git a/test/expected/out/fizz/buzz.d.ts b/test/expected/out/fizz/buzz.d.ts index 3eddaee..25d7cbc 100644 --- a/test/expected/out/fizz/buzz.d.ts +++ b/test/expected/out/fizz/buzz.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: // ../../src/typings/external.d.ts +// ../../src/node_modules/modules.d.ts declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('external1'); + import nodeModule = require('node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/lib/exported-sub' { diff --git a/test/expected/remove/foo-mx.d.ts b/test/expected/remove/foo-mx.d.ts index 3eddaee..25d7cbc 100644 --- a/test/expected/remove/foo-mx.d.ts +++ b/test/expected/remove/foo-mx.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: // ../../src/typings/external.d.ts +// ../../src/node_modules/modules.d.ts declare module 'foo-mx' { import exp = require('foo-mx/lib/exported-sub'); import mod1 = require('external1'); + import nodeModule = require('node_module'); export import Foo = require('foo-mx/Foo'); export function run(foo?: Foo): Foo; export function flep(): exp.ExternalContainer; export function bar(): mod1.SomeType; + export function baz(): nodeModule.SomeType; } declare module 'foo-mx/lib/exported-sub' { diff --git a/test/expected/seprinnew/bar-mx.d.ts b/test/expected/seprinnew/bar-mx.d.ts index 8a08b03..8ae8ff6 100644 --- a/test/expected/seprinnew/bar-mx.d.ts +++ b/test/expected/seprinnew/bar-mx.d.ts @@ -1,13 +1,16 @@ // Dependencies for this module: //$ // ../../src/typings/external.d.ts //$ +// ../../src/node_modules/modules.d.ts //$ //$ declare module 'bar-mx' { //$ import exp = require('--bar-mx#lib#exported-sub'); //$ import mod1 = require('external1'); //$ + import nodeModule = require('node_module'); //$ export import Foo = require('--bar-mx#Foo'); //$ export function run(foo?: Foo): Foo; //$ export function flep(): exp.ExternalContainer; //$ export function bar(): mod1.SomeType; //$ + export function baz(): nodeModule.SomeType; //$ } //$ //$ declare module '--bar-mx#lib#exported-sub' { //$ diff --git a/test/src/main/index.ts b/test/src/main/index.ts index 3ad5a64..2003464 100644 --- a/test/src/main/index.ts +++ b/test/src/main/index.ts @@ -1,8 +1,10 @@ /// +/// import int = require('./lib/only-internal'); import exp = require('./lib/exported-sub'); import mod1 = require('external1'); +import nodeModule = require('node_module'); export import Foo = require('./Foo'); /* @@ -23,3 +25,8 @@ export function flep(): exp.ExternalContainer { export function bar(): mod1.SomeType { return new mod1.SomeType(); } + +// baz some of that +export function baz(): nodeModule.SomeType { + return new nodeModule.SomeType(); +} From 1386b12d9840fcc6269a09011705cd216505e44d Mon Sep 17 00:00:00 2001 From: Anthony Cleaver Date: Wed, 19 Jul 2017 11:15:46 +0100 Subject: [PATCH 2/3] add testing node_modules files ignored by git ignore --- .gitignore | 1 + test/src/node_modules/modules.d.ts | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 test/src/node_modules/modules.d.ts diff --git a/.gitignore b/.gitignore index 2de8774..f8e9c39 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ /test/tmp /test/build !/test/src/typings/*.d.ts +!/test/src/node_modules/*.d.ts /test/src/**/*.d.ts /test/src/**/*.js /test/src/**/*.js.map diff --git a/test/src/node_modules/modules.d.ts b/test/src/node_modules/modules.d.ts new file mode 100644 index 0000000..a412788 --- /dev/null +++ b/test/src/node_modules/modules.d.ts @@ -0,0 +1,5 @@ +declare module 'node_module' { + export class SomeType { + foo(): void; + } +} \ No newline at end of file From 1cc888942d4b343dd857ad63ee1f1ed98dc3eeb7 Mon Sep 17 00:00:00 2001 From: Anthony Cleaver Date: Wed, 19 Jul 2017 11:21:24 +0100 Subject: [PATCH 3/3] bump the version number for node types to get correct typings for fs.writeFileSync --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 548e1fe..eb79aec 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@types/detect-indent": "0.1.30", "@types/glob": "5.0.30", "@types/mkdirp": "0.3.29", - "@types/node": "8.0.0", + "@types/node": "8.0.14", "commander": "^2.9.0", "detect-indent": "^0.2.0", "glob": "^6.0.4",