walk all types

pull/8569/head
Simon Holthausen 3 years ago
parent 76aee0d2a4
commit 91fb7d3b1d

@ -1,7 +1,7 @@
// This script generates the TypeScript definitions // This script generates the TypeScript definitions
import { execSync } from 'child_process'; import { execSync } from 'child_process';
import { readFileSync, writeFileSync, readdirSync, existsSync, copyFileSync } from 'fs'; import { readFileSync, writeFileSync, readdirSync, existsSync, copyFileSync, statSync } from 'fs';
execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emitDeclarationOnly', { stdio: 'inherit' }); execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emitDeclarationOnly', { stdio: 'inherit' });
@ -94,24 +94,33 @@ function adjust(input) {
return [import_statements, ...renamed_generics].join("\n"); return [import_statements, ...renamed_generics].join("\n");
} }
for (const dir of readdirSync('types/runtime')) { function walk(dir) {
if (dir.endsWith('.d.ts')) continue; const files = readdirSync(dir);
const _dir = dir.slice('types/'.length)
modify( for (const file of files) {
`types/runtime/${dir}/index.d.ts`, const path = `${dir}/${file}`;
content => { if (file.endsWith('.d.ts')) {
// TODO adjust all d.ts files modify(path, content => {
content = adjust(content); content = adjust(content);
if (existsSync(`src/runtime/${dir}/public.d.ts`)) { if (file === 'index.d.ts' && existsSync(`src/${_dir}/public.d.ts`)) {
copyFileSync(`src/runtime/${dir}/public.d.ts`, `types/runtime/${dir}/public.d.ts`); copyFileSync(`src/${_dir}/public.d.ts`, `${dir}/public.d.ts`);
content + "\nexport * from './public.js'"; content + "\nexport * from './public.js'";
}
return content;
});
} else if (statSync(path).isDirectory()) {
if (existsSync(`src/${_dir}/private.d.ts`)) {
copyFileSync(`src/${_dir}/private.d.ts`, `${dir}/private.d.ts`);
} }
walk(path);
return content;
} }
); }
} }
walk('types');
copyFileSync(`src/runtime/ambient.d.ts`, `types/runtime/ambient.d.ts`); copyFileSync(`src/runtime/ambient.d.ts`, `types/runtime/ambient.d.ts`);
modify(`types/runtime/index.d.ts`, content => content + "\nimport './ambient.js'"); modify(`types/runtime/index.d.ts`, content => content + "\nimport './ambient.js'");

Loading…
Cancel
Save