@@ -125,6 +125,22 @@ const buildSrc = () => buildProject("src");
125125
126126task ( "build-src" , series ( preSrc , buildSrc ) ) ;
127127
128+ /**
129+ * @param {string } entrypoint
130+ * @param {string } output
131+ */
132+ async function runDtsBundler ( entrypoint , output ) {
133+ // Want to preserve @internal ? Pass `--stripInternal=false` when running the dts task.
134+ await exec ( process . execPath , [
135+ "./scripts/dtsBundler.js" ,
136+ "--entrypoint" ,
137+ entrypoint ,
138+ "--output" ,
139+ output ,
140+ `--stripInternal=${ cmdLineOptions . stripInternal } ` ,
141+ ] ) ;
142+ }
143+
128144/** @type {string | undefined } */
129145let copyrightHeader ;
130146function getCopyrightHeader ( ) {
@@ -250,10 +266,13 @@ const preBuild = cmdLineOptions.lkg ? lkgPreBuild : localPreBuild;
250266const esbuildServices = esbuildTask ( "./src/typescript/typescript.ts" , "./built/local/typescript.js" , /* exportIsTsObject */ true , /* performanceMatters */ true ) ;
251267
252268// TODO(jakebailey): rename this; no longer "services".
269+
270+ const buildServicesProject = ( ) => buildProject ( "src/typescript" ) ;
271+
253272const buildServices = ( ) => {
254273 if ( cmdLineOptions . bundle ) return esbuildServices . build ( ) ;
255274 writeCJSReexport ( "./built/local/typescript/typescript.js" , "./built/local/typescript.js" ) ;
256- return buildProject ( "src/typescript" ) ;
275+ return buildServicesProject ( ) ;
257276} ;
258277
259278task ( "services" , series ( preBuild , buildServices ) ) ;
@@ -276,6 +295,9 @@ task("watch-services").flags = {
276295 " --built" : "Compile using the built version of the compiler."
277296} ;
278297
298+ const dtsServices = ( ) => runDtsBundler ( "./built/local/typescript/typescript.d.ts" , "./built/local/typescript.d.ts" ) ;
299+ task ( "dts-services" , series ( preBuild , buildServicesProject , dtsServices ) ) ;
300+ task ( "dts-services" ) . description = "Builds typescript.d.ts" ;
279301
280302const esbuildServer = esbuildTask ( "./src/tsserver/server.ts" , "./built/local/tsserver.js" , /* exportIsTsObject */ true , /* performanceMatters */ true ) ;
281303
@@ -322,10 +344,11 @@ task("watch-min").flags = {
322344
323345const esbuildLssl = esbuildTask ( "./src/tsserverlibrary/tsserverlibrary.ts" , "./built/local/tsserverlibrary.js" , /* exportIsTsObject */ true , /* performanceMatters */ true ) ;
324346
347+ const buildLsslProject = ( ) => buildProject ( "src/tsserverlibrary" ) ;
325348const buildLssl = ( ) => {
326349 if ( cmdLineOptions . bundle ) return esbuildLssl . build ( ) ;
327350 writeCJSReexport ( "./built/local/tsserverlibrary/tsserverlibrary.js" , "./built/local/tsserverlibrary.js" ) ;
328- return buildProject ( "src/tsserverlibrary" ) ;
351+ return buildLsslProject ( ) ;
329352} ;
330353task ( "lssl" , series ( preBuild , buildLssl ) ) ;
331354task ( "lssl" ) . description = "Builds language service server library" ;
@@ -347,6 +370,14 @@ task("watch-lssl").flags = {
347370 " --built" : "Compile using the built version of the compiler."
348371} ;
349372
373+ const dtsLssl = ( ) => runDtsBundler ( "./built/local/tsserverlibrary/tsserverlibrary.d.ts" , "./built/local/tsserverlibrary.d.ts" ) ;
374+ task ( "dts-lssl" , series ( preBuild , buildLsslProject , dtsLssl ) ) ;
375+ task ( "dts-lssl" ) . description = "Builds tsserverlibrary.d.ts" ;
376+
377+ // TODO(jakebailey): this is probably not efficient, but, gulp.
378+ const dts = series ( preBuild , parallel ( buildServicesProject , buildLsslProject ) , parallel ( dtsServices , dtsLssl ) ) ;
379+ task ( "dts" , dts ) ;
380+
350381const testRunner = "./built/local/run.js" ;
351382const esbuildTests = esbuildTask ( "./src/testRunner/_namespaces/Harness.ts" , testRunner ) ;
352383
@@ -457,7 +488,7 @@ const buildOtherOutputs = parallel(buildCancellationToken, buildTypingsInstaller
457488task ( "other-outputs" , series ( preBuild , buildOtherOutputs ) ) ;
458489task ( "other-outputs" ) . description = "Builds miscelaneous scripts and documents distributed with the LKG" ;
459490
460- task ( "local" , series ( preBuild , parallel ( localize , buildTsc , buildServer , buildServices , buildLssl , buildOtherOutputs ) ) ) ;
491+ task ( "local" , series ( preBuild , parallel ( localize , buildTsc , buildServer , buildServices , buildLssl , buildOtherOutputs , dts ) ) ) ;
461492task ( "local" ) . description = "Builds the full compiler and services" ;
462493task ( "local" ) . flags = {
463494 " --built" : "Compile using the built version of the compiler."
@@ -473,7 +504,7 @@ const preTest = parallel(buildTsc, buildTests, buildServices, buildLssl);
473504preTest . displayName = "preTest" ;
474505
475506const runTests = ( ) => runConsoleTests ( testRunner , "mocha-fivemat-progress-reporter" , /*runInParallel*/ false , /*watchMode*/ false ) ;
476- task ( "runtests" , series ( preBuild , preTest , runTests ) ) ;
507+ task ( "runtests" , series ( preBuild , preTest , dts , runTests ) ) ;
477508task ( "runtests" ) . description = "Runs the tests using the built run.js file." ;
478509task ( "runtests" ) . flags = {
479510 "-t --tests=<regex>" : "Pattern for tests to run." ,
@@ -492,7 +523,7 @@ task("runtests").flags = {
492523} ;
493524
494525const runTestsParallel = ( ) => runConsoleTests ( testRunner , "min" , /*runInParallel*/ cmdLineOptions . workers > 1 , /*watchMode*/ false ) ;
495- task ( "runtests-parallel" , series ( preBuild , preTest , runTestsParallel ) ) ;
526+ task ( "runtests-parallel" , series ( preBuild , preTest , dts , runTestsParallel ) ) ;
496527task ( "runtests-parallel" ) . description = "Runs all the tests in parallel using the built run.js file." ;
497528task ( "runtests-parallel" ) . flags = {
498529 " --light" : "Run tests in light mode (fewer verifications, but tests run faster)." ,
@@ -579,8 +610,7 @@ const produceLKG = async () => {
579610 }
580611} ;
581612
582- // TODO(jakebailey): dependencies on dts
583- task ( "LKG" , series ( lkgPreBuild , parallel ( localize , buildTsc , buildServer , buildServices , buildLssl , buildOtherOutputs ) , produceLKG ) ) ;
613+ task ( "LKG" , series ( lkgPreBuild , parallel ( localize , buildTsc , buildServer , buildServices , buildLssl , buildOtherOutputs , dts ) , produceLKG ) ) ;
584614task ( "LKG" ) . description = "Makes a new LKG out of the built js files" ;
585615task ( "LKG" ) . flags = {
586616 " --built" : "Compile using the built version of the compiler." ,
0 commit comments