Skip to content

Commit 1585ffd

Browse files
committed
DRY out
1 parent 25655c3 commit 1585ffd

File tree

2 files changed

+17
-26
lines changed

2 files changed

+17
-26
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ async function init(v: string) {
1616
const match = /^(?:pr|commit)-(.+)/.exec(v);
1717

1818
let tarball: FileDescription[] | undefined;
19-
let version;
19+
let version: string;
2020

2121
if (match) {
2222
const response = await fetch(`https://pkg.pr.new/svelte@${match[1]}`);

packages/repl/src/lib/workers/bundler/index.ts

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ self.addEventListener('message', async (event: MessageEvent<BundleMessageData>)
4343
({ packages_url, svelte_url } = event.data);
4444
const match = /^(pr|commit)-(.+)/.exec(svelte_url);
4545

46-
if (match) {
47-
let local_files: FileDescription[];
46+
let tarball: FileDescription[] | undefined;
4847

48+
if (match) {
4949
try {
5050
const response = await fetch(`https://pkg.pr.new/svelte@${match[2]}`);
5151

@@ -55,14 +55,12 @@ self.addEventListener('message', async (event: MessageEvent<BundleMessageData>)
5555
);
5656
}
5757

58-
local_files = await parseTar(await response.arrayBuffer());
58+
tarball = await parseTar(await response.arrayBuffer());
5959
files = new Map(
60-
local_files.map((file) => [file.name.substring('package'.length), file.text])
60+
tarball.map((file) => [file.name.substring('package'.length), file.text])
6161
);
6262
const package_json_content = files.get('/package.json')!;
63-
if (package_json_content) {
64-
package_json = JSON.parse(package_json_content);
65-
}
63+
package_json = JSON.parse(package_json_content);
6664
} catch (e) {
6765
reject_ready(e as Error);
6866
return;
@@ -73,24 +71,17 @@ self.addEventListener('message', async (event: MessageEvent<BundleMessageData>)
7371
package_json ?? (await fetch(`${svelte_url}/package.json`).then((r) => r.json())));
7472
console.log(`Using Svelte compiler version ${version}`);
7573

76-
if (version.startsWith('4.')) {
77-
// unpkg doesn't set the correct MIME type for .cjs files
78-
// https://github.com/mjackson/unpkg/issues/355
79-
const compiler =
80-
files?.get('/compiler.cjs') ??
81-
(await fetch(`${svelte_url}/compiler.cjs`).then((r) => r.text()));
82-
(0, eval)(compiler + '\n//# sourceURL=compiler.cjs@' + version);
83-
} else if (version.startsWith('3.')) {
84-
const compiler =
85-
files?.get('/compiler.js') ??
86-
(await fetch(`${svelte_url}/compiler.js`).then((r) => r.text()));
87-
(0, eval)(compiler + '\n//# sourceURL=compiler.js@' + version);
88-
} else {
89-
const compiler =
90-
files?.get('/compiler/index.js') ??
91-
(await fetch(`${svelte_url}/compiler/index.js`).then((r) => r.text()));
92-
(0, eval)(compiler + '\n//# sourceURL=compiler/index.js@' + version);
93-
}
74+
const entry = version.startsWith('3.')
75+
? 'compiler.js'
76+
: version.startsWith('4.')
77+
? 'compiler.cjs'
78+
: 'compiler/index.js';
79+
80+
const compiler = tarball
81+
? tarball.find((file) => file.name === `package/${entry}`)!.text
82+
: await fetch(`${svelte_url}/${entry}`).then((r) => r.text());
83+
84+
(0, eval)(compiler + `\n//# sourceURL=${entry}@` + version);
9485

9586
fulfil_ready();
9687
break;

0 commit comments

Comments
 (0)