[ci] format
This commit is contained in:
parent
bfbd32588f
commit
d186c406b9
4 changed files with 38 additions and 29 deletions
|
@ -133,8 +133,8 @@ export async function generateHydrateScript(
|
|||
};
|
||||
|
||||
// Attach renderer-provided attributes
|
||||
if(attrs) {
|
||||
for(const [key, value] of Object.entries(attrs)) {
|
||||
if (attrs) {
|
||||
for (const [key, value] of Object.entries(attrs)) {
|
||||
island.props[key] = value;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { sharedConfig } from 'solid-js';
|
||||
import { hydrate, render, createComponent } from 'solid-js/web';
|
||||
import { createComponent, hydrate, render } from 'solid-js/web';
|
||||
|
||||
export default (element: HTMLElement) =>
|
||||
(Component: any, props: any, slotted: any, { client }: { client: string }) => {
|
||||
|
@ -39,7 +39,7 @@ export default (element: HTMLElement) =>
|
|||
}),
|
||||
element,
|
||||
{
|
||||
renderId
|
||||
renderId,
|
||||
}
|
||||
);
|
||||
};
|
||||
|
|
|
@ -3,19 +3,19 @@ import type { RendererContext } from './types';
|
|||
type Context = {
|
||||
id: string;
|
||||
c: number;
|
||||
}
|
||||
};
|
||||
|
||||
const contexts = new WeakMap<RendererContext['result'], Context>();
|
||||
|
||||
export function getContext(result: RendererContext['result']): Context {
|
||||
if(contexts.has(result)) {
|
||||
if (contexts.has(result)) {
|
||||
return contexts.get(result)!;
|
||||
}
|
||||
let ctx = {
|
||||
c: 0,
|
||||
get id() {
|
||||
return 's' + this.c.toString();
|
||||
}
|
||||
},
|
||||
};
|
||||
contexts.set(result, ctx);
|
||||
return ctx;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import type { RendererContext } from './types';
|
||||
import { renderToString, ssr, createComponent } from 'solid-js/web';
|
||||
import { createComponent, renderToString, ssr } from 'solid-js/web';
|
||||
import { getContext, incrementId } from './context.js';
|
||||
import type { RendererContext } from './types';
|
||||
|
||||
const slotName = (str: string) => str.trim().replace(/[-_]([a-z])/g, (_, w) => w.toUpperCase());
|
||||
|
||||
|
@ -10,32 +10,41 @@ function check(this: RendererContext, Component: any, props: Record<string, any>
|
|||
return typeof html === 'string';
|
||||
}
|
||||
|
||||
function renderToStaticMarkup(this: RendererContext, Component: any, props: Record<string, any>, { default: children, ...slotted }: any, metadata?: undefined | Record<string, any>) {
|
||||
function renderToStaticMarkup(
|
||||
this: RendererContext,
|
||||
Component: any,
|
||||
props: Record<string, any>,
|
||||
{ default: children, ...slotted }: any,
|
||||
metadata?: undefined | Record<string, any>
|
||||
) {
|
||||
const renderId = metadata?.hydrate ? incrementId(getContext(this.result)) : '';
|
||||
|
||||
const html = renderToString(() => {
|
||||
const slots: Record<string, any> = {};
|
||||
for (const [key, value] of Object.entries(slotted)) {
|
||||
const name = slotName(key);
|
||||
slots[name] = ssr(`<astro-slot name="${name}">${value}</astro-slot>`);
|
||||
}
|
||||
// Note: create newProps to avoid mutating `props` before they are serialized
|
||||
const newProps = {
|
||||
...props,
|
||||
...slots,
|
||||
// In Solid SSR mode, `ssr` creates the expected structure for `children`.
|
||||
children: children != null ? ssr(`<astro-slot>${children}</astro-slot>`) : children,
|
||||
};
|
||||
const html = renderToString(
|
||||
() => {
|
||||
const slots: Record<string, any> = {};
|
||||
for (const [key, value] of Object.entries(slotted)) {
|
||||
const name = slotName(key);
|
||||
slots[name] = ssr(`<astro-slot name="${name}">${value}</astro-slot>`);
|
||||
}
|
||||
// Note: create newProps to avoid mutating `props` before they are serialized
|
||||
const newProps = {
|
||||
...props,
|
||||
...slots,
|
||||
// In Solid SSR mode, `ssr` creates the expected structure for `children`.
|
||||
children: children != null ? ssr(`<astro-slot>${children}</astro-slot>`) : children,
|
||||
};
|
||||
|
||||
return createComponent(Component, newProps);
|
||||
}, {
|
||||
renderId
|
||||
});
|
||||
return createComponent(Component, newProps);
|
||||
},
|
||||
{
|
||||
renderId,
|
||||
}
|
||||
);
|
||||
return {
|
||||
attrs: {
|
||||
'data-solid-render-id': renderId
|
||||
'data-solid-render-id': renderId,
|
||||
},
|
||||
html
|
||||
html,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue