[ci] format

This commit is contained in:
matthewp 2023-07-27 18:44:29 +00:00 committed by astrobot-houston
parent 7dbcbc86b3
commit 9fe1089e3e
3 changed files with 20 additions and 16 deletions

View file

@ -6,8 +6,8 @@ import {
createComponent, createComponent,
createHeadAndContent, createHeadAndContent,
renderComponent, renderComponent,
renderUniqueScriptElement,
renderTemplate, renderTemplate,
renderUniqueScriptElement,
renderUniqueStylesheet, renderUniqueStylesheet,
unescapeHTML, unescapeHTML,
type AstroComponentFactory, type AstroComponentFactory,
@ -303,7 +303,9 @@ async function render({
.join(''); .join('');
} }
if (Array.isArray(collectedScripts)) { if (Array.isArray(collectedScripts)) {
scripts = collectedScripts.map((script: any) => renderUniqueScriptElement(result, script)).join(''); scripts = collectedScripts
.map((script: any) => renderUniqueScriptElement(result, script))
.join('');
} }
let props = baseProps; let props = baseProps;

View file

@ -27,8 +27,8 @@ export {
renderSlotToString, renderSlotToString,
renderTemplate, renderTemplate,
renderToString, renderToString,
renderUniqueStylesheet,
renderUniqueScriptElement, renderUniqueScriptElement,
renderUniqueStylesheet,
voidElementNames, voidElementNames,
} from './render/index.js'; } from './render/index.js';
export type { export type {

View file

@ -10,42 +10,44 @@ export function renderScriptElement({ props, children }: SSRElement) {
} }
export function renderUniqueScriptElement(result: SSRResult, { props, children }: SSRElement) { export function renderUniqueScriptElement(result: SSRResult, { props, children }: SSRElement) {
if(Array.from(result.scripts).some(s => { if (
if(s.props.type === props.type && s.props.src === props.src) { Array.from(result.scripts).some((s) => {
return true; if (s.props.type === props.type && s.props.src === props.src) {
} return true;
if(!props.src && s.children === children) return true; }
})) return ''; if (!props.src && s.children === children) return true;
})
)
return '';
const key = `script-${props.type}-${props.src}-${children}`; const key = `script-${props.type}-${props.src}-${children}`;
if(checkOrAddContentKey(result, key)) return ''; if (checkOrAddContentKey(result, key)) return '';
return renderScriptElement({ props, children }); return renderScriptElement({ props, children });
} }
export function renderUniqueStylesheet(result: SSRResult, sheet: StylesheetAsset) { export function renderUniqueStylesheet(result: SSRResult, sheet: StylesheetAsset) {
if (sheet.type === 'external') { if (sheet.type === 'external') {
if (Array.from(result.styles).some((s) => s.props.href === sheet.src)) return ''; if (Array.from(result.styles).some((s) => s.props.href === sheet.src)) return '';
const key = 'link-external-' + sheet.src; const key = 'link-external-' + sheet.src;
if(checkOrAddContentKey(result, key)) return ''; if (checkOrAddContentKey(result, key)) return '';
return renderElement('link', { return renderElement('link', {
props: { props: {
rel: 'stylesheet', rel: 'stylesheet',
href: sheet.src href: sheet.src,
}, },
children: '' children: '',
}); });
} }
if (sheet.type === 'inline') { if (sheet.type === 'inline') {
if (Array.from(result.styles).some((s) => s.children.includes(sheet.content))) return ''; if (Array.from(result.styles).some((s) => s.children.includes(sheet.content))) return '';
const key = `link-inline-` + sheet.content; const key = `link-inline-` + sheet.content;
if(checkOrAddContentKey(result, key)) return ''; if (checkOrAddContentKey(result, key)) return '';
return renderElement('style', { props: { type: 'text/css' }, children: sheet.content }); return renderElement('style', { props: { type: 'text/css' }, children: sheet.content });
} }
} }
function checkOrAddContentKey(result: SSRResult, key: string): boolean { function checkOrAddContentKey(result: SSRResult, key: string): boolean {
if(result._metadata.contentKeys.has(key)) return true; if (result._metadata.contentKeys.has(key)) return true;
result._metadata.contentKeys.add(key); result._metadata.contentKeys.add(key);
return false; return false;
} }