mirror of
https://github.com/nuxt/ui.git
synced 2026-09-14 19:51:10 +08:00
472851df55
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Benjamin Canac <canacb1@gmail.com>
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
let _prettier
|
|
let _plugins
|
|
|
|
self.onmessage = async function (event) {
|
|
try {
|
|
self.postMessage({
|
|
uid: event.data.uid,
|
|
message: await handleMessage(event.data.message)
|
|
})
|
|
} catch (error) {
|
|
self.postMessage({
|
|
uid: event.data.uid,
|
|
error: error.message || String(error)
|
|
})
|
|
}
|
|
}
|
|
|
|
function handleMessage(message) {
|
|
switch (message.type) {
|
|
case 'format':
|
|
return handleFormatMessage(message)
|
|
}
|
|
}
|
|
|
|
async function handleFormatMessage(message) {
|
|
if (!_prettier) {
|
|
const [prettierModule, ...plugins] = await Promise.all([
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/standalone.mjs'),
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/plugins/babel.mjs'),
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/plugins/estree.mjs'),
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/plugins/html.mjs'),
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/plugins/markdown.mjs'),
|
|
import('https://cdn.jsdelivr.net/npm/prettier@3.8.2/plugins/typescript.mjs')
|
|
])
|
|
_prettier = prettierModule
|
|
_plugins = plugins
|
|
}
|
|
|
|
const { options, source } = message
|
|
return _prettier.format(source, {
|
|
parser: 'markdown',
|
|
plugins: _plugins,
|
|
...options
|
|
})
|
|
}
|