diff options
Diffstat (limited to 'scripts/utils/svelte-plugin.js')
-rw-r--r-- | scripts/utils/svelte-plugin.js | 91 |
1 files changed, 46 insertions, 45 deletions
diff --git a/scripts/utils/svelte-plugin.js b/scripts/utils/svelte-plugin.js index 84839ffd7..cd65a5fdf 100644 --- a/scripts/utils/svelte-plugin.js +++ b/scripts/utils/svelte-plugin.js @@ -4,57 +4,58 @@ import { relative, isAbsolute, join, dirname } from 'path'; import { promises as fs } from 'fs'; const convertMessage = ({ message, start, end, filename, frame }) => ({ - text: message, - location: start && end && { - file: filename, - line: start.line, - column: start.column, - length: start.line === end.line ? end.column - start.column : 0, - lineText: frame, + text: message, + location: start && + end && { + file: filename, + line: start.line, + column: start.column, + length: start.line === end.line ? end.column - start.column : 0, + lineText: frame, }, -}) +}); const handleLoad = async (args, generate) => { - const { path } = args; - const source = await fs.readFile(path, 'utf8'); - const filename = relative(process.cwd(), path) + const { path } = args; + const source = await fs.readFile(path, 'utf8'); + const filename = relative(process.cwd(), path); - try { - let compileOptions = { css: false, generate, hydratable: true }; + try { + let compileOptions = { css: false, generate, hydratable: true }; - let { js, warnings } = compile(source, { ...compileOptions, filename }) - let contents = js.code + `\n//# sourceMappingURL=` + js.map.toUrl() + let { js, warnings } = compile(source, { ...compileOptions, filename }); + let contents = js.code + `\n//# sourceMappingURL=` + js.map.toUrl(); - return { loader: 'js', contents, resolveDir: dirname(path), warnings: warnings.map(w => convertMessage(w)) }; - } catch (e) { - return { errors: [convertMessage(e)] } - } -} + return { loader: 'js', contents, resolveDir: dirname(path), warnings: warnings.map((w) => convertMessage(w)) }; + } catch (e) { + return { errors: [convertMessage(e)] }; + } +}; export default function sveltePlugin() { - return { - name: 'svelte-esbuild', - setup(build) { - build.onResolve({ filter: /\.svelte$/ }, args => { - let path = args.path.replace(/\.(?:client|server)/, ''); - path = isAbsolute(path) ? path : join(args.resolveDir, path) - - if (/\.client\.svelte$/.test(args.path)) { - return { - path, - namespace: 'svelte:client', - } - } - - if (/\.server\.svelte$/.test(args.path)) { - return { - path, - namespace: 'svelte:server', - } - } - }); - build.onLoad({ filter: /.*/, namespace: 'svelte:client' }, (args) => handleLoad(args, 'dom')) - build.onLoad({ filter: /.*/, namespace: 'svelte:server' }, (args) => handleLoad(args, 'ssr')) - }, - } + return { + name: 'svelte-esbuild', + setup(build) { + build.onResolve({ filter: /\.svelte$/ }, (args) => { + let path = args.path.replace(/\.(?:client|server)/, ''); + path = isAbsolute(path) ? path : join(args.resolveDir, path); + + if (/\.client\.svelte$/.test(args.path)) { + return { + path, + namespace: 'svelte:client', + }; + } + + if (/\.server\.svelte$/.test(args.path)) { + return { + path, + namespace: 'svelte:server', + }; + } + }); + build.onLoad({ filter: /.*/, namespace: 'svelte:client' }, (args) => handleLoad(args, 'dom')); + build.onLoad({ filter: /.*/, namespace: 'svelte:server' }, (args) => handleLoad(args, 'ssr')); + }, + }; } |