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
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' });
@ -94,24 +94,33 @@ function adjust(input) {
return [import_statements, ...renamed_generics].join("\n");
}
for (const dir of readdirSync('types/runtime')) {
if (dir.endsWith('.d.ts')) continue;
function walk(dir) {
const files = readdirSync(dir);
const _dir = dir.slice('types/'.length)
modify(
`types/runtime/${dir}/index.d.ts`,
content => {
// TODO adjust all d.ts files
content = adjust(content);
if (existsSync(`src/runtime/${dir}/public.d.ts`)) {
copyFileSync(`src/runtime/${dir}/public.d.ts`, `types/runtime/${dir}/public.d.ts`);
content + "\nexport * from './public.js'";
for (const file of files) {
const path = `${dir}/${file}`;
if (file.endsWith('.d.ts')) {
modify(path, content => {
content = adjust(content);
if (file === 'index.d.ts' && existsSync(`src/${_dir}/public.d.ts`)) {
copyFileSync(`src/${_dir}/public.d.ts`, `${dir}/public.d.ts`);
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`);
}
return content;
walk(path);
}
);
}
}
walk('types');
copyFileSync(`src/runtime/ambient.d.ts`, `types/runtime/ambient.d.ts`);
modify(`types/runtime/index.d.ts`, content => content + "\nimport './ambient.js'");

Loading…
Cancel
Save