@@ -41,18 +41,31 @@ var tsOptions = {
4141 sourceRoot : util . toFileUri ( rootDir )
4242} ;
4343
44+ function createFastFilter ( filterFn ) {
45+ var result = es . through ( function ( data ) {
46+ if ( filterFn ( data ) ) {
47+ this . emit ( 'data' , data ) ;
48+ } else {
49+ result . restore . push ( data ) ;
50+ }
51+ } ) ;
52+ result . restore = es . through ( ) ;
53+ return result ;
54+ }
55+
4456function createCompile ( build , emitError ) {
4557 var opts = _ . clone ( tsOptions ) ;
4658 opts . inlineSources = ! ! build ;
59+ opts . noFilesystemLookup = true ;
4760
4861 var ts = tsb . create ( opts , null , null , quiet ? null : function ( err ) {
4962 reporter ( err . toString ( ) ) ;
5063 } ) ;
5164
5265 return function ( token ) {
53- var utf8Filter = filter ( '**/ test/**/* utf8*' , { restore : true } ) ;
54- var tsFilter = filter ( [ '**/*.ts' ] , { restore : true } ) ;
55- var noDeclarationsFilter = filter ( [ '**/*' , '!**/*.d .ts' ] , { restore : true } ) ;
66+ var utf8Filter = createFastFilter ( function ( data ) { return / ( \/ | \\ ) t e s t ( \/ | \\ ) . * u t f 8 / . test ( data . path ) ; } ) ;
67+ var tsFilter = createFastFilter ( function ( data ) { return / \. t s $ / . test ( data . path ) ; } ) ;
68+ var noDeclarationsFilter = createFastFilter ( function ( data ) { return ! ( / \. d \ .t s $ / . test ( data . path ) ) ; } ) ;
5669
5770 var input = es . through ( ) ;
5871 var output = input
@@ -81,7 +94,10 @@ function compileTask(out, build) {
8194 var compile = createCompile ( build , true ) ;
8295
8396 return function ( ) {
84- var src = gulp . src ( 'src/**' , { base : 'src' } ) ;
97+ var src = es . merge (
98+ gulp . src ( 'src/**' , { base : 'src' } ) ,
99+ gulp . src ( 'node_modules/typescript/lib/lib.d.ts' )
100+ ) ;
85101
86102 return src
87103 . pipe ( compile ( ) )
@@ -94,7 +110,10 @@ function watchTask(out, build) {
94110 var compile = createCompile ( build ) ;
95111
96112 return function ( ) {
97- var src = gulp . src ( 'src/**' , { base : 'src' } ) ;
113+ var src = es . merge (
114+ gulp . src ( 'src/**' , { base : 'src' } ) ,
115+ gulp . src ( 'node_modules/typescript/lib/lib.d.ts' )
116+ ) ;
98117 var watchSrc = watch ( 'src/**' , { base : 'src' } ) ;
99118
100119 return watchSrc
@@ -138,6 +157,8 @@ function monacodtsTask(out, isWatch) {
138157 }
139158 } ;
140159
160+ var resultStream ;
161+
141162 if ( isWatch ) {
142163
143164 var filesToWatchMap = { } ;
@@ -149,7 +170,7 @@ function monacodtsTask(out, isWatch) {
149170 runSoon ( 5000 ) ;
150171 } ) ) ;
151172
152- return es . through ( function ( data ) {
173+ resultStream = es . through ( function ( data ) {
153174 var filePath = path . normalize ( data . path ) ;
154175 if ( filesToWatchMap [ filePath ] ) {
155176 runSoon ( 5000 ) ;
@@ -159,12 +180,14 @@ function monacodtsTask(out, isWatch) {
159180
160181 } else {
161182
162- return es . through ( null , function ( end ) {
183+ resultStream = es . through ( null , function ( end ) {
163184 runNow ( ) ;
164185 this . emit ( 'end' ) ;
165186 } ) ;
166187
167188 }
189+
190+ return resultStream ;
168191}
169192
170193// Fast compile for development time
0 commit comments