mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-11 08:33:53 +00:00
perf(ui-templates): don't emit message data for pure strings
This commit is contained in:
parent
f687e211a8
commit
9b1bfe69ed
@ -80,6 +80,7 @@ export const RenderPlugin = () => {
|
|||||||
|
|
||||||
// Serialize into a js function
|
// Serialize into a js function
|
||||||
const chunks = html.split(/\{{2,3}\s*[^{}]+\s*\}{2,3}/g).map(chunk => JSON.stringify(chunk))
|
const chunks = html.split(/\{{2,3}\s*[^{}]+\s*\}{2,3}/g).map(chunk => JSON.stringify(chunk))
|
||||||
|
let hasMessages = chunks.length > 1
|
||||||
let templateString = chunks.shift()
|
let templateString = chunks.shift()
|
||||||
for (const expression of html.matchAll(/\{{2,3}(\s*[^{}]+\s*)\}{2,3}/g)) {
|
for (const expression of html.matchAll(/\{{2,3}(\s*[^{}]+\s*)\}{2,3}/g)) {
|
||||||
templateString += ` + (${expression[1].trim()}) + ${chunks.shift()}`
|
templateString += ` + (${expression[1].trim()}) + ${chunks.shift()}`
|
||||||
@ -88,10 +89,10 @@ export const RenderPlugin = () => {
|
|||||||
templateString += ' + ' + chunks.join(' + ')
|
templateString += ' + ' + chunks.join(' + ')
|
||||||
}
|
}
|
||||||
const functionalCode = [
|
const functionalCode = [
|
||||||
`export type DefaultMessages = Record<${Object.keys({ ...genericMessages, ...messages }).map(a => `"${a}"`).join(' | ') || 'string'}, string | boolean | number >`,
|
hasMessages ? `export type DefaultMessages = Record<${Object.keys({ ...genericMessages, ...messages }).map(a => `"${a}"`).join(' | ') || 'string'}, string | boolean | number >` : '',
|
||||||
`const _messages = ${JSON.stringify({ ...genericMessages, ...messages })}`,
|
hasMessages ? `const _messages = ${JSON.stringify({ ...genericMessages, ...messages })}` : '',
|
||||||
'export const template = (messages: Partial<DefaultMessages>) => {',
|
`export const template = (${hasMessages ? 'messages: Partial<DefaultMessages>' : ''}) => {`,
|
||||||
' messages = { ..._messages, ...messages }',
|
hasMessages ? ' messages = { ..._messages, ...messages }' : '',
|
||||||
` return ${templateString}`,
|
` return ${templateString}`,
|
||||||
'}',
|
'}',
|
||||||
].join('\n')
|
].join('\n')
|
||||||
|
Loading…
Reference in New Issue
Block a user