Skip to content

Commit

Permalink
[fix] export CompileOptions (#7658)
Browse files Browse the repository at this point in the history
It's used by SvelteKit and in order to properly use it under the new TS moduleResolution NodeNext it needs to be part of a file that is defined in the exports map
  • Loading branch information
dummdidumm committed Jul 6, 2022
1 parent a3ecb44 commit 0fa0a38
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
19 changes: 15 additions & 4 deletions generate-type-definitions.js
Expand Up @@ -5,9 +5,20 @@ const { readFileSync, writeFileSync } = require('fs');

execSync('tsc -p src/compiler --emitDeclarationOnly && tsc -p src/runtime --emitDeclarationOnly');

// We need to add these types to the index.d.ts here because if we add them before building, the build will fail,
// We need to add these types to the .d.ts files here because if we add them before building, the build will fail,
// because the TS->JS transformation doesn't know these exports are types and produces code that fails at runtime.
// We can't use `export type` syntax either because the TS version we're on doesn't have this feature yet.
const path = 'types/runtime/index.d.ts';
const content = readFileSync(path, 'utf8');
writeFileSync(path, content.replace('SvelteComponentTyped', 'SvelteComponentTyped, ComponentType, ComponentConstructorOptions, ComponentProps'));

function modify(path, modifyFn) {
const content = readFileSync(path, 'utf8');
writeFileSync(path, modifyFn(content));
}

modify(
'types/runtime/index.d.ts',
content => content.replace('SvelteComponentTyped', 'SvelteComponentTyped, ComponentType, ComponentConstructorOptions, ComponentProps')
);
modify(
'types/compiler/index.d.ts',
content => content + '\nexport { CompileOptions, ModuleFormat, EnableSourcemap, CssHashGetter } from "./interfaces"'
);
1 change: 1 addition & 0 deletions src/compiler/index.ts
Expand Up @@ -4,3 +4,4 @@ export { default as preprocess } from './preprocess/index';
export { walk } from 'estree-walker';

export const VERSION = '__VERSION__';
// additional exports added through generate-type-definitions.js
2 changes: 1 addition & 1 deletion src/runtime/index.ts
Expand Up @@ -13,5 +13,5 @@ export {
createEventDispatcher,
SvelteComponentDev as SvelteComponent,
SvelteComponentTyped
// additional exports added through post-typegen.js
// additional exports added through generate-type-definitions.js
} from 'svelte/internal';

0 comments on commit 0fa0a38

Please sign in to comment.