@@ -247,25 +247,33 @@ async function webviewPreloads(ctx: PreloadContext) {
247
247
return new Function ( ...args . map ( ( [ k ] ) => k ) , functionSrc ) ( ...args . map ( ( [ , v ] ) => v ) ) ;
248
248
} ;
249
249
250
- const runKernelPreload = async ( url : string , originalUri : string , forceLoadAsModule : boolean ) : Promise < void > => {
250
+ async function runKernelPreload ( url : string , originalUri : string , forceLoadAsModule : boolean ) : Promise < void > {
251
+ if ( forceLoadAsModule ) {
252
+ return activateModuleKernelPreload ( url ) ;
253
+ }
254
+
251
255
const text = await loadScriptSource ( url , originalUri ) ;
252
256
const isModule = / \b e x p o r t \b .* \b a c t i v a t e \b / . test ( text ) ;
253
257
try {
254
- if ( isModule || forceLoadAsModule ) {
255
- const module : KernelPreloadModule = await __import ( url ) ;
256
- if ( ! module . activate ) {
257
- console . error ( `Notebook preload (${ url } ) looks like a module but does not export an activate function` ) ;
258
- return ;
259
- }
260
- return module . activate ( createKernelContext ( ) ) ;
258
+ if ( isModule ) {
259
+ return activateModuleKernelPreload ( url ) ;
261
260
} else {
262
261
return invokeSourceWithGlobals ( text , { ...kernelPreloadGlobals , scriptUrl : url } ) ;
263
262
}
264
263
} catch ( e ) {
265
264
console . error ( e ) ;
266
265
throw e ;
267
266
}
268
- } ;
267
+ }
268
+
269
+ async function activateModuleKernelPreload ( url : string ) {
270
+ const module : KernelPreloadModule = await __import ( url ) ;
271
+ if ( ! module . activate ) {
272
+ console . error ( `Notebook preload '${ url } ' was expected to be a module but it does not export an 'activate' function` ) ;
273
+ return ;
274
+ }
275
+ return module . activate ( createKernelContext ( ) ) ;
276
+ }
269
277
270
278
const dimensionUpdater = new class {
271
279
private readonly pending = new Map < string , webviewMessages . DimensionUpdate > ( ) ;
0 commit comments