Skip to content

Commit e2c5fef

Browse files
authored
fix #766 (#769)
1 parent eb18e82 commit e2c5fef

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

packages/editor/src/lib/Workspace.svelte.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { CompileError, CompileOptions, CompileResult } from 'svelte/compiler';
1+
import type { CompileError, CompileResult } from 'svelte/compiler';
22
import { Compartment, EditorState } from '@codemirror/state';
33
import { compile_file } from './compile-worker';
44
import { BROWSER } from 'esm-env';
@@ -77,7 +77,7 @@ const default_extensions = [
7777
// extensions.push(vim());
7878
// }
7979

80-
interface ExposedCompilerOptions {
80+
export interface ExposedCompilerOptions {
8181
generate: 'client' | 'server';
8282
dev: boolean;
8383
modernAst: boolean;

packages/editor/src/lib/compile-worker/worker.ts

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import type { File } from '../Workspace.svelte';
1+
import type { CompileResult } from 'svelte/compiler';
2+
import type { ExposedCompilerOptions, File } from '../Workspace.svelte';
23

34
// hack for magic-string and Svelte 4 compiler
45
// do not put this into a separate module and import it, would be treeshaken in prod
@@ -39,12 +40,10 @@ addEventListener('message', async (event) => {
3940
const { id, file, options } = event.data as {
4041
id: number;
4142
file: File;
42-
options: { generate: 'client' | 'server'; dev: boolean };
43+
options: ExposedCompilerOptions;
4344
};
4445

45-
const fn = file.name.endsWith('.svelte') ? self.svelte.compile : self.svelte.compileModule;
46-
47-
if (!fn) {
46+
if (!file.name.endsWith('.svelte') && !self.svelte.compileModule) {
4847
// .svelte.js file compiled with Svelte 3/4 compiler
4948
postMessage({
5049
id,
@@ -69,7 +68,22 @@ addEventListener('message', async (event) => {
6968
}
7069

7170
try {
72-
const result = fn(file.contents, { ...options, filename: file.name });
71+
let result: CompileResult;
72+
73+
if (file.name.endsWith('.svelte')) {
74+
result = self.svelte.compile(file.contents, {
75+
generate: options.generate, // TODO do we need to adjust this for 3/4?
76+
dev: options.dev,
77+
modernAst: options.modernAst,
78+
filename: file.name
79+
});
80+
} else {
81+
result = self.svelte.compileModule(file.contents, {
82+
generate: options.generate,
83+
dev: options.dev,
84+
filename: file.name
85+
});
86+
}
7387

7488
postMessage({
7589
id,

0 commit comments

Comments
 (0)