@@ -33,24 +33,26 @@ const ready = new Promise((f) => {
33
33
} ) ;
34
34
35
35
let files : Map < string , ( ) => string > ;
36
- let package_json ;
36
+ let package_json : any ;
37
37
38
38
self . addEventListener ( 'message' , async ( event : MessageEvent < BundleMessageData > ) => {
39
39
switch ( event . data . type ) {
40
40
case 'init' : {
41
41
( { packages_url, svelte_url } = event . data ) ;
42
42
43
- if ( event . data . is_pkg_pr_new ) {
44
- let local_files ;
43
+ if ( svelte_url . startsWith ( 'ref:' ) ) {
44
+ let local_files : Awaited < ReturnType < typeof parseTar > > ;
45
45
46
- const maybe_tar = await fetch ( svelte_url ) ;
46
+ const ref = svelte_url . substring ( 'ref:' . length ) ;
47
+
48
+ const maybe_tar = await fetch ( `https://pkg.pr.new/svelte@${ ref } ` ) ;
47
49
if ( maybe_tar . headers . get ( 'content-type' ) === 'application/tar+gzip' ) {
48
50
const buffer = await maybe_tar . arrayBuffer ( ) ;
49
51
local_files = await parseTar ( buffer ) ;
50
52
files = new Map (
51
53
local_files . map ( ( file ) => [ file . name . substring ( 'package' . length ) , ( ) => file . text ] )
52
54
) ;
53
- const package_json_content = files . get ( '/package.json' ) ( ) ;
55
+ const package_json_content = files . get ( '/package.json' ) ?. ( ) ;
54
56
if ( package_json_content ) {
55
57
package_json = JSON . parse ( package_json_content ) ;
56
58
}
@@ -64,17 +66,17 @@ self.addEventListener('message', async (event: MessageEvent<BundleMessageData>)
64
66
// unpkg doesn't set the correct MIME type for .cjs files
65
67
// https://github.com/mjackson/unpkg/issues/355
66
68
const compiler =
67
- files . get ( '/compiler.cjs' ) ( ) ??
69
+ files . get ( '/compiler.cjs' ) ?. ( ) ??
68
70
( await fetch ( `${ svelte_url } /compiler.cjs` ) . then ( ( r ) => r . text ( ) ) ) ;
69
71
( 0 , eval ) ( compiler + '\n//# sourceURL=compiler.cjs@' + version ) ;
70
72
} else if ( version . startsWith ( '3.' ) ) {
71
73
const compiler =
72
- files . get ( '/compiler.js' ) ( ) ??
74
+ files . get ( '/compiler.js' ) ?. ( ) ??
73
75
( await fetch ( `${ svelte_url } /compiler.js` ) . then ( ( r ) => r . text ( ) ) ) ;
74
76
( 0 , eval ) ( compiler + '\n//# sourceURL=compiler.js@' + version ) ;
75
77
} else {
76
78
const compiler =
77
- files . get ( '/compiler/index.js' ) ( ) ??
79
+ files . get ( '/compiler/index.js' ) ?. ( ) ??
78
80
( await fetch ( `${ svelte_url } /compiler/index.js` ) . then ( ( r ) => r . text ( ) ) ) ;
79
81
( 0 , eval ) ( compiler + '\n//# sourceURL=compiler/index.js@' + version ) ;
80
82
}
@@ -354,7 +356,7 @@ async function get_bundle(
354
356
}
355
357
} ;
356
358
357
- let pkg ;
359
+ let pkg : any ;
358
360
let pkg_url_base = 'file:' ;
359
361
if ( importee . startsWith ( `svelte` ) ) {
360
362
pkg = package_json ;
@@ -381,7 +383,7 @@ async function get_bundle(
381
383
const resolved_url = new URL ( resolved ) ;
382
384
383
385
if ( resolved_url . protocol === 'file:' ) {
384
- return files . get ( resolved_url . pathname ) ( ) ;
386
+ return files . get ( resolved_url . pathname ) ?. ( ) ;
385
387
}
386
388
} catch { }
387
389
0 commit comments