11import { execSync } from 'child_process'
22import { basename , extname } from 'path'
33import { pathToFileURL } from 'url'
4- import { compile , preprocess as sveltePreprocess } from 'svelte/compiler'
4+ import * as SvelteCompiler from 'svelte/compiler'
55
66import { getSvelteConfig } from './svelteconfig.js'
7- import { dynamicImport , IS_COMMON_JS , isSvelte3 } from './utils.js'
7+ import { dynamicImport , IS_COMMON_JS , isSvelte3 , isSvelteModule } from './utils.js'
88
99const currentFileExtension = ( global . __dirname !== undefined ? extname ( __filename ) : extname ( pathToFileURL ( import . meta. url ) . toString ( ) ) ) . replace ( '.' , '' )
1010
@@ -29,7 +29,7 @@ const processAsync = async (source, filename, jestOptions) => {
2929
3030 const svelteConfigPath = getSvelteConfig ( rootMode , filename , preprocess )
3131 const svelteConfig = await dynamicImport ( svelteConfigPath )
32- const processed = await sveltePreprocess (
32+ const processed = await SvelteCompiler . preprocess (
3333 source ,
3434 svelteConfig . default . preprocess || { } ,
3535 { filename }
@@ -91,6 +91,8 @@ const compiler = (format, options = {}, filename, processedCode, processedMap) =
9191 opts . format = format
9292 }
9393
94+ const compile = isSvelteModule ( filename ) ? compileModule : compileComponent
95+
9496 let result
9597 try {
9698 result = compile ( processedCode , opts )
@@ -115,6 +117,18 @@ const compiler = (format, options = {}, filename, processedCode, processedMap) =
115117 }
116118}
117119
120+ const compileComponent = ( processedCode , opts ) => {
121+ return SvelteCompiler . compile ( processedCode , opts )
122+ }
123+
124+ const compileModule = ( processedCode , opts ) => {
125+ return SvelteCompiler . compileModule ( processedCode , {
126+ filename : opts . filename ,
127+ dev : opts . dev ,
128+ generate : opts . ssr ? 'server' : 'client'
129+ } )
130+ }
131+
118132export default {
119133 process : processSync ,
120134 processAsync
0 commit comments