@@ -9,10 +9,26 @@ const typescriptDirectory = resolve(process.env.TYPESCRIPT_REPO || resolve(websi
99const vendorDirectory = resolve ( packageDirectory , "vendor" )
1010const typescriptPackage = resolve ( typescriptDirectory , "packages/typescript" )
1111const wasmPackage = resolve ( typescriptDirectory , "packages/typescript-wasip1-wasm" )
12- const libDirectory = resolve ( typescriptDirectory , "built/local " )
12+ const libDirectory = resolve ( wasmPackage , "lib " )
1313const packageNames = [ "typescript" , "typescript-wasip1-wasm" ]
1414const legalFiles = [ "LICENSE.txt" , "NOTICE.txt" ]
1515
16+ const libFileNames = JSON . parse ( await readFile ( resolve ( libDirectory , "libFiles.json" ) , "utf8" ) )
17+ const expectedLibFileNames = ( await readdir ( libDirectory ) ) . filter ( fileName => / ^ l i b (?: \. .+ ) ? \. d \. t s $ / . test ( fileName ) ) . sort ( )
18+ if (
19+ ! Array . isArray ( libFileNames ) ||
20+ libFileNames . length === 0 ||
21+ JSON . stringify ( libFileNames ) !== JSON . stringify ( expectedLibFileNames )
22+ ) {
23+ throw new Error ( "The WASI package library index does not match its declaration files" )
24+ }
25+ await Promise . all ( [
26+ readFile ( resolve ( typescriptPackage , "dist/wasm/index.js" ) ) ,
27+ readFile ( resolve ( typescriptPackage , "schemas/tsconfig.schema.json" ) ) ,
28+ readFile ( resolve ( typescriptPackage , "schemas/jsconfig.schema.json" ) ) ,
29+ readFile ( resolve ( wasmPackage , "lib/tsc.wasm" ) ) ,
30+ ] )
31+
1632await Promise . all ( [
1733 rm ( resolve ( vendorDirectory , "lib" ) , { force : true , recursive : true } ) ,
1834 rm ( resolve ( vendorDirectory , "typescript" ) , { force : true , recursive : true } ) ,
@@ -28,9 +44,8 @@ await Promise.all([
2844 cp ( resolve ( wasmPackage , "dist" ) , resolve ( vendorDirectory , "typescript-wasip1-wasm/dist" ) , {
2945 recursive : true ,
3046 } ) ,
31- mkdir ( resolve ( vendorDirectory , "typescript-wasip1-wasm/lib" ) , { recursive : true } ) . then ( ( ) =>
32- cp ( resolve ( wasmPackage , "lib/tsc.wasm" ) , resolve ( vendorDirectory , "typescript-wasip1-wasm/lib/tsc.wasm" ) )
33- ) ,
47+ cp ( resolve ( wasmPackage , "lib" ) , resolve ( vendorDirectory , "typescript-wasip1-wasm/lib" ) , { recursive : true } ) ,
48+ cp ( resolve ( typescriptPackage , "schemas" ) , resolve ( vendorDirectory , "typescript/schemas" ) , { recursive : true } ) ,
3449 writeVendorManifest ( typescriptPackage , "typescript" ) ,
3550 writeVendorManifest ( wasmPackage , "typescript-wasip1-wasm" ) ,
3651 ...packageNames . flatMap ( packageName =>
@@ -40,13 +55,6 @@ await Promise.all([
4055 ) ,
4156] )
4257
43- const vendorLibDirectory = resolve ( vendorDirectory , "lib" )
44- await mkdir ( vendorLibDirectory , { recursive : true } )
45- const libFileNames = ( await readdir ( libDirectory ) ) . filter ( fileName => / ^ l i b (?: \. .+ ) ? \. d \. t s $ / . test ( fileName ) )
46- await Promise . all (
47- libFileNames . map ( fileName => cp ( resolve ( libDirectory , fileName ) , resolve ( vendorLibDirectory , fileName ) ) )
48- )
49-
5058const versionResult = spawnSync ( resolve ( typescriptDirectory , "built/local/tsc" ) , [ "--version" ] , { encoding : "utf8" } )
5159if ( versionResult . status !== 0 ) {
5260 throw new Error ( versionResult . stderr || "Unable to read the TypeScript version" )
@@ -85,7 +93,7 @@ async function writeVendorManifest(sourceDirectory, vendorName) {
8593 version : manifest . version ,
8694 license : manifest . license ,
8795 type : manifest . type ,
88- files : vendorName === "typescript-wasip1-wasm" ? [ "dist" , "lib/tsc.wasm " , ...legalFiles ] : [ "dist" , ...legalFiles ] ,
96+ files : vendorName === "typescript-wasip1-wasm" ? [ "dist" , "lib" , ...legalFiles ] : [ "dist" , "schemas ", ...legalFiles ] ,
8997 exports,
9098 imports,
9199 }
0 commit comments