solid-js 1.4.5 → 1.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev.cjs +113 -116
- package/dist/dev.js +113 -116
- package/dist/server.cjs +28 -23
- package/dist/server.js +28 -23
- package/dist/solid.cjs +113 -114
- package/dist/solid.js +113 -114
- package/h/jsx-runtime/types/jsx.d.ts +6 -1401
- package/html/dist/html.cjs +34 -59
- package/html/dist/html.js +34 -59
- package/package.json +2 -2
- package/store/dist/dev.cjs +41 -23
- package/store/dist/dev.js +41 -23
- package/store/dist/store.cjs +41 -23
- package/store/dist/store.js +41 -23
- package/store/types/store.d.ts +1 -1
- package/types/index.d.ts +1 -1
- package/types/jsx.d.ts +194 -1580
- package/types/reactive/observable.d.ts +7 -2
- package/types/reactive/signal.d.ts +42 -13
- package/types/render/component.d.ts +21 -6
- package/types/server/reactive.d.ts +1 -0
- package/types/server/rendering.d.ts +2 -2
- package/universal/types/universal.d.ts +3 -3
- package/web/dist/dev.cjs +6 -7
- package/web/dist/dev.js +6 -7
- package/web/dist/server.cjs +35 -69
- package/web/dist/server.js +35 -69
- package/web/dist/web.cjs +6 -7
- package/web/dist/web.js +6 -7
- package/web/types/index.d.ts +4 -5
- package/web/types/server-mock.d.ts +4 -2
package/web/dist/server.js
CHANGED
|
@@ -4,6 +4,7 @@ export { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch,
|
|
|
4
4
|
const booleans = ["allowfullscreen", "async", "autofocus", "autoplay", "checked", "controls", "default", "disabled", "formnovalidate", "hidden", "indeterminate", "ismap", "loop", "multiple", "muted", "nomodule", "novalidate", "open", "playsinline", "readonly", "required", "reversed", "seamless", "selected"];
|
|
5
5
|
const BooleanAttributes = /*#__PURE__*/new Set(booleans);
|
|
6
6
|
/*#__PURE__*/new Set(["className", "value", "readOnly", "formNoValidate", "isMap", "noModule", "playsInline", ...booleans]);
|
|
7
|
+
const ChildProperties = /*#__PURE__*/new Set(["innerHTML", "textContent", "innerText", "children"]);
|
|
7
8
|
const Aliases = {
|
|
8
9
|
className: "class",
|
|
9
10
|
htmlFor: "for"
|
|
@@ -229,8 +230,7 @@ function stringifyString(str) {
|
|
|
229
230
|
return result;
|
|
230
231
|
}
|
|
231
232
|
|
|
232
|
-
const REPLACE_SCRIPT = `function $df(e,t,d,l){d=document.getElementById(e),(l=document.getElementById("pl-"+e))&&l.replaceWith(...d.childNodes),d.remove(),_$HY.set(e,t||
|
|
233
|
-
const FRAGMENT_REPLACE = /<!\[([\d-]+)\]>/;
|
|
233
|
+
const REPLACE_SCRIPT = `function $df(e,t,d,l){d=document.getElementById(e),(l=document.getElementById("pl-"+e))&&l.replaceWith(...d.childNodes),d.remove(),_$HY.set(e,t||"$$$")}`;
|
|
234
234
|
function renderToString(code, options = {}) {
|
|
235
235
|
let scripts = "";
|
|
236
236
|
sharedConfig.context = {
|
|
@@ -249,69 +249,20 @@ function renderToString(code, options = {}) {
|
|
|
249
249
|
return html;
|
|
250
250
|
}
|
|
251
251
|
function renderToStringAsync(code, options = {}) {
|
|
252
|
-
let scripts = "";
|
|
253
252
|
const {
|
|
254
|
-
nonce,
|
|
255
|
-
renderId,
|
|
256
253
|
timeoutMs = 30000
|
|
257
254
|
} = options;
|
|
258
|
-
const dedupe = new WeakMap();
|
|
259
|
-
const context = sharedConfig.context = {
|
|
260
|
-
id: renderId || "",
|
|
261
|
-
count: 0,
|
|
262
|
-
resources: {},
|
|
263
|
-
suspense: {},
|
|
264
|
-
assets: [],
|
|
265
|
-
async: true,
|
|
266
|
-
nonce,
|
|
267
|
-
writeResource(id, p, error) {
|
|
268
|
-
if (error) return scripts += `_$HY.set("${id}", ${serializeError(p)});`;
|
|
269
|
-
if (!p || typeof p !== "object" || !("then" in p)) return scripts += serializeSet(dedupe, id, p) + ";";
|
|
270
|
-
p.then(d => scripts += serializeSet(dedupe, id, d) + ";").catch(() => scripts += `_$HY.set("${id}", {});`);
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
255
|
let timeoutHandle;
|
|
274
256
|
const timeout = new Promise((_, reject) => {
|
|
275
257
|
timeoutHandle = setTimeout(() => reject("renderToString timed out"), timeoutMs);
|
|
276
258
|
});
|
|
277
|
-
|
|
278
|
-
return new Promise(resolve => {
|
|
279
|
-
const registry = new Set();
|
|
280
|
-
const cache = Object.create(null);
|
|
281
|
-
sharedConfig.context.registerFragment = register;
|
|
282
|
-
const rendered = fn();
|
|
283
|
-
if (!registry.size) resolve(rendered);
|
|
284
|
-
function register(key) {
|
|
285
|
-
registry.add(key);
|
|
286
|
-
return (value = "", error) => {
|
|
287
|
-
if (!registry.has(key)) return;
|
|
288
|
-
cache[key] = value;
|
|
289
|
-
registry.delete(key);
|
|
290
|
-
if (error) scripts += `_$HY.set("${key}", Promise.resolve(${serializeError(error)}));`;else scripts += `_$HY.set("${key}", null);`;
|
|
291
|
-
if (!registry.size) Promise.resolve().then(() => {
|
|
292
|
-
let source = resolveSSRNode(rendered);
|
|
293
|
-
let final = "";
|
|
294
|
-
let match;
|
|
295
|
-
while (match = source.match(FRAGMENT_REPLACE)) {
|
|
296
|
-
final += source.substring(0, match.index);
|
|
297
|
-
source = cache[match[1]] + source.substring(match.index + match[0].length);
|
|
298
|
-
}
|
|
299
|
-
resolve(final + source);
|
|
300
|
-
});
|
|
301
|
-
return true;
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
return Promise.race([asyncWrap(() => escape(code())), timeout]).then(res => {
|
|
259
|
+
return Promise.race([renderToStream(code, options), timeout]).then(html => {
|
|
307
260
|
clearTimeout(timeoutHandle);
|
|
308
|
-
let html = injectAssets(context.assets, resolveSSRNode(res));
|
|
309
|
-
if (scripts.length) html = injectScripts(html, scripts, nonce);
|
|
310
261
|
return html;
|
|
311
262
|
});
|
|
312
263
|
}
|
|
313
264
|
function renderToStream(code, options = {}) {
|
|
314
|
-
|
|
265
|
+
let {
|
|
315
266
|
nonce,
|
|
316
267
|
onCompleteShell,
|
|
317
268
|
onCompleteAll,
|
|
@@ -336,13 +287,13 @@ function renderToStream(code, options = {}) {
|
|
|
336
287
|
};
|
|
337
288
|
const pushTask = task => {
|
|
338
289
|
tasks.push(task);
|
|
339
|
-
if (!scheduled) {
|
|
290
|
+
if (!scheduled && firstFlushed) {
|
|
340
291
|
Promise.resolve().then(writeTasks);
|
|
341
292
|
scheduled = true;
|
|
342
293
|
}
|
|
343
294
|
};
|
|
344
295
|
const writeTasks = () => {
|
|
345
|
-
if (tasks.length && !completed) {
|
|
296
|
+
if (tasks.length && !completed && firstFlushed) {
|
|
346
297
|
buffer.write(`<script${nonce ? ` nonce="${nonce}"` : ""}>${tasks.join(";")}</script>`);
|
|
347
298
|
tasks.length = 0;
|
|
348
299
|
}
|
|
@@ -362,7 +313,6 @@ function renderToStream(code, options = {}) {
|
|
|
362
313
|
id: renderId || "",
|
|
363
314
|
count: 0,
|
|
364
315
|
async: true,
|
|
365
|
-
streaming: true,
|
|
366
316
|
resources: {},
|
|
367
317
|
suspense: {},
|
|
368
318
|
assets: [],
|
|
@@ -390,15 +340,15 @@ function renderToStream(code, options = {}) {
|
|
|
390
340
|
if ((value !== undefined || error) && !completed) {
|
|
391
341
|
if (!firstFlushed) {
|
|
392
342
|
Promise.resolve().then(() => html = replacePlaceholder(html, key, value !== undefined ? value : ""));
|
|
393
|
-
pushTask(`${keys.length ? keys.map(k => `_$HY.unset("${k}");`) : ""}_$HY.set("${key}",${error ? serializeError(error) : "
|
|
343
|
+
pushTask(`${keys.length ? keys.map(k => `_$HY.unset("${k}");`) : ""}_$HY.set("${key}",${error ? serializeError(error) : '"$$$"'})`);
|
|
394
344
|
} else {
|
|
395
345
|
buffer.write(`<div hidden id="${key}">${value !== undefined ? value : " "}</div>`);
|
|
396
|
-
pushTask(`${keys.length ? keys.map(k => `_$HY.unset("${k}")`).join(";") : ""}$df("${key}"${error ? "," + serializeError(error) : ""})${!scriptFlushed ? ";" + REPLACE_SCRIPT : ""}`);
|
|
346
|
+
pushTask(`${keys.length ? keys.map(k => `_$HY.unset("${k}")`).join(";") + ";" : ""}$df("${key}"${error ? "," + serializeError(error) : ""})${!scriptFlushed ? ";" + REPLACE_SCRIPT : ""}`);
|
|
397
347
|
scriptFlushed = true;
|
|
398
348
|
}
|
|
399
349
|
}
|
|
400
350
|
}
|
|
401
|
-
|
|
351
|
+
Promise.resolve().then(checkEnd);
|
|
402
352
|
return true;
|
|
403
353
|
};
|
|
404
354
|
}
|
|
@@ -417,6 +367,22 @@ function renderToStream(code, options = {}) {
|
|
|
417
367
|
});
|
|
418
368
|
}
|
|
419
369
|
return {
|
|
370
|
+
then(fn) {
|
|
371
|
+
function complete() {
|
|
372
|
+
doShell();
|
|
373
|
+
let mapped = "";
|
|
374
|
+
for (let i = 0, len = tmp.length; i < len; i++) mapped += tmp[i];
|
|
375
|
+
fn(mapped);
|
|
376
|
+
}
|
|
377
|
+
if (onCompleteAll) {
|
|
378
|
+
ogComplete = onCompleteAll;
|
|
379
|
+
onCompleteAll = options => {
|
|
380
|
+
ogComplete(options);
|
|
381
|
+
complete();
|
|
382
|
+
};
|
|
383
|
+
} else onCompleteAll = complete;
|
|
384
|
+
checkEnd();
|
|
385
|
+
},
|
|
420
386
|
pipe(w) {
|
|
421
387
|
Promise.allSettled(blockingResources).then(() => {
|
|
422
388
|
doShell();
|
|
@@ -513,16 +479,15 @@ function ssrStyle(value) {
|
|
|
513
479
|
}
|
|
514
480
|
return result;
|
|
515
481
|
}
|
|
516
|
-
function
|
|
517
|
-
let result = ""
|
|
518
|
-
if (props == null) return results;
|
|
482
|
+
function ssrElement(tag, props, children, needsId) {
|
|
483
|
+
let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
|
|
519
484
|
if (typeof props === "function") props = props();
|
|
520
485
|
const keys = Object.keys(props);
|
|
521
486
|
let classResolved;
|
|
522
487
|
for (let i = 0; i < keys.length; i++) {
|
|
523
488
|
const prop = keys[i];
|
|
524
|
-
if (prop ===
|
|
525
|
-
|
|
489
|
+
if (ChildProperties.has(prop) && children === undefined) {
|
|
490
|
+
children = prop === "innerHTML" ? props[prop] : escape(props[prop]);
|
|
526
491
|
continue;
|
|
527
492
|
}
|
|
528
493
|
const value = props[prop];
|
|
@@ -542,7 +507,9 @@ function ssrSpread(props, isSVG, skipChildren) {
|
|
|
542
507
|
}
|
|
543
508
|
if (i !== keys.length - 1) result += " ";
|
|
544
509
|
}
|
|
545
|
-
return
|
|
510
|
+
return {
|
|
511
|
+
t: result + `>${resolveSSRNode(children)}</${tag}>`
|
|
512
|
+
};
|
|
546
513
|
}
|
|
547
514
|
function ssrAttribute(key, value, isBoolean) {
|
|
548
515
|
return isBoolean ? value ? " " + key : "" : value != null ? ` ${key}="${value}"` : "";
|
|
@@ -614,7 +581,7 @@ function generateHydrationScript({
|
|
|
614
581
|
eventNames = ["click", "input"],
|
|
615
582
|
nonce
|
|
616
583
|
} = {}) {
|
|
617
|
-
return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{}}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('","')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])})))),e.init=(t,o)=>{e.r[t]=[new Promise(((e,t)=>o=e)),o]},e.set=(t,o,s)=>{(s=e.r[t])&&s[1](o),e.r[t]=[o]},e.unset=t=>{delete e.r[t]},e.load=
|
|
584
|
+
return `<script${nonce ? ` nonce="${nonce}"` : ""}>var e,t;e=window._$HY||(_$HY={events:[],completed:new WeakSet,r:{}}),t=e=>e&&e.hasAttribute&&(e.hasAttribute("data-hk")?e:t(e.host&&e.host instanceof Node?e.host:e.parentNode)),["${eventNames.join('","')}"].forEach((o=>document.addEventListener(o,(o=>{let s=o.composedPath&&o.composedPath()[0]||o.target,a=t(s);a&&!e.completed.has(a)&&e.events.push([a,o])})))),e.init=(t,o)=>{e.r[t]=[new Promise(((e,t)=>o=e)),o]},e.set=(t,o,s)=>{(s=e.r[t])&&s[1](o),e.r[t]=[o]},e.unset=t=>{delete e.r[t]},e.load=t=>e.r[t];</script><!--xs-->`;
|
|
618
585
|
}
|
|
619
586
|
function injectAssets(assets, html) {
|
|
620
587
|
for (let i = 0; i < assets.length; i++) {
|
|
@@ -718,8 +685,7 @@ function Dynamic(props) {
|
|
|
718
685
|
t = typeof comp;
|
|
719
686
|
if (comp) {
|
|
720
687
|
if (t === "function") return comp(others);else if (t === "string") {
|
|
721
|
-
|
|
722
|
-
return ssr([`<${comp}`, ' ', ">", `</${comp}>`], ssrHydrationKey(), ssrSpread(sOthers), escape(local.children || ""));
|
|
688
|
+
return ssrElement(comp, others, undefined, true);
|
|
723
689
|
}
|
|
724
690
|
}
|
|
725
691
|
}
|
|
@@ -727,4 +693,4 @@ function Portal(props) {
|
|
|
727
693
|
return "";
|
|
728
694
|
}
|
|
729
695
|
|
|
730
|
-
export { Assets, Dynamic, HydrationScript, NoHydration, Portal, escape, generateHydrationScript, getHydrationKey, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList,
|
|
696
|
+
export { Assets, Dynamic, HydrationScript, NoHydration, Portal, escape, generateHydrationScript, getHydrationKey, isServer, pipeToNodeWritable, pipeToWritable, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrStyle };
|
package/web/dist/web.cjs
CHANGED
|
@@ -445,13 +445,12 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
445
445
|
let dynamic = false;
|
|
446
446
|
for (let i = 0, len = array.length; i < len; i++) {
|
|
447
447
|
let item = array[i],
|
|
448
|
-
prev = current && current[i]
|
|
449
|
-
t;
|
|
448
|
+
prev = current && current[i];
|
|
450
449
|
if (item instanceof Node) {
|
|
451
450
|
normalized.push(item);
|
|
452
451
|
} else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
|
|
453
452
|
dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
|
|
454
|
-
} else if ((
|
|
453
|
+
} else if ((typeof item) === "function") {
|
|
455
454
|
if (unwrap) {
|
|
456
455
|
while (typeof item === "function") item = item();
|
|
457
456
|
dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], prev) || dynamic;
|
|
@@ -460,7 +459,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
460
459
|
dynamic = true;
|
|
461
460
|
}
|
|
462
461
|
} else {
|
|
463
|
-
const value =
|
|
462
|
+
const value = String(item);
|
|
464
463
|
if (prev && prev.nodeType === 3 && prev.data === value) {
|
|
465
464
|
normalized.push(prev);
|
|
466
465
|
} else normalized.push(document.createTextNode(value));
|
|
@@ -519,12 +518,12 @@ function renderToStream(fn, options) {
|
|
|
519
518
|
throwInBrowser(renderToStream);
|
|
520
519
|
}
|
|
521
520
|
function ssr(template, ...nodes) {}
|
|
522
|
-
function
|
|
521
|
+
function ssrElement(name, props, children, needsId) {}
|
|
523
522
|
function ssrClassList(value) {}
|
|
524
523
|
function ssrStyle(value) {}
|
|
525
|
-
function ssrSpread(accessor) {}
|
|
526
524
|
function ssrAttribute(key, value) {}
|
|
527
525
|
function ssrHydrationKey() {}
|
|
526
|
+
function resolveSSRNode(node) {}
|
|
528
527
|
function escape(html) {}
|
|
529
528
|
function generateHydrationScript() {}
|
|
530
529
|
|
|
@@ -682,8 +681,8 @@ exports.spread = spread;
|
|
|
682
681
|
exports.ssr = ssr;
|
|
683
682
|
exports.ssrAttribute = ssrAttribute;
|
|
684
683
|
exports.ssrClassList = ssrClassList;
|
|
684
|
+
exports.ssrElement = ssrElement;
|
|
685
685
|
exports.ssrHydrationKey = ssrHydrationKey;
|
|
686
|
-
exports.ssrSpread = ssrSpread;
|
|
687
686
|
exports.ssrStyle = ssrStyle;
|
|
688
687
|
exports.style = style;
|
|
689
688
|
exports.template = template;
|
package/web/dist/web.js
CHANGED
|
@@ -442,13 +442,12 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
442
442
|
let dynamic = false;
|
|
443
443
|
for (let i = 0, len = array.length; i < len; i++) {
|
|
444
444
|
let item = array[i],
|
|
445
|
-
prev = current && current[i]
|
|
446
|
-
t;
|
|
445
|
+
prev = current && current[i];
|
|
447
446
|
if (item instanceof Node) {
|
|
448
447
|
normalized.push(item);
|
|
449
448
|
} else if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
|
|
450
449
|
dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;
|
|
451
|
-
} else if ((
|
|
450
|
+
} else if ((typeof item) === "function") {
|
|
452
451
|
if (unwrap) {
|
|
453
452
|
while (typeof item === "function") item = item();
|
|
454
453
|
dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], prev) || dynamic;
|
|
@@ -457,7 +456,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
457
456
|
dynamic = true;
|
|
458
457
|
}
|
|
459
458
|
} else {
|
|
460
|
-
const value =
|
|
459
|
+
const value = String(item);
|
|
461
460
|
if (prev && prev.nodeType === 3 && prev.data === value) {
|
|
462
461
|
normalized.push(prev);
|
|
463
462
|
} else normalized.push(document.createTextNode(value));
|
|
@@ -516,12 +515,12 @@ function renderToStream(fn, options) {
|
|
|
516
515
|
throwInBrowser(renderToStream);
|
|
517
516
|
}
|
|
518
517
|
function ssr(template, ...nodes) {}
|
|
519
|
-
function
|
|
518
|
+
function ssrElement(name, props, children, needsId) {}
|
|
520
519
|
function ssrClassList(value) {}
|
|
521
520
|
function ssrStyle(value) {}
|
|
522
|
-
function ssrSpread(accessor) {}
|
|
523
521
|
function ssrAttribute(key, value) {}
|
|
524
522
|
function ssrHydrationKey() {}
|
|
523
|
+
function resolveSSRNode(node) {}
|
|
525
524
|
function escape(html) {}
|
|
526
525
|
function generateHydrationScript() {}
|
|
527
526
|
|
|
@@ -588,4 +587,4 @@ function Dynamic(props) {
|
|
|
588
587
|
});
|
|
589
588
|
}
|
|
590
589
|
|
|
591
|
-
export { Aliases, Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Assets as HydrationScript, NoHydration, Portal, PropAliases, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, generateHydrationScript, getHydrationKey, getNextElement, getNextMarker, getNextMatch, hydrate, innerHTML, insert, isServer, memo, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList,
|
|
590
|
+
export { Aliases, Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Assets as HydrationScript, NoHydration, Portal, PropAliases, Properties, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, delegateEvents, dynamicProperty, escape, generateHydrationScript, getHydrationKey, getNextElement, getNextMarker, getNextMatch, hydrate, innerHTML, insert, isServer, memo, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrStyle, style, template };
|
package/web/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { hydrate as hydrateCore } from "./client";
|
|
2
|
-
import {
|
|
2
|
+
import { JSX, Accessor, ComponentProps, ValidComponent } from "../..";
|
|
3
3
|
export * from "./client";
|
|
4
4
|
export { For, Show, Suspense, SuspenseList, Switch, Match, Index, ErrorBoundary, mergeProps } from "../..";
|
|
5
5
|
export * from "./server-mock";
|
|
@@ -21,9 +21,8 @@ export declare function Portal<T extends boolean = false, S extends boolean = fa
|
|
|
21
21
|
} : {}) & (S extends true ? SVGGElement : HTMLDivElement)) => void);
|
|
22
22
|
children: JSX.Element;
|
|
23
23
|
}): Text;
|
|
24
|
-
declare type DynamicProps<T> = T & {
|
|
25
|
-
|
|
26
|
-
component?: Component<T> | string | keyof JSX.IntrinsicElements;
|
|
24
|
+
declare type DynamicProps<T extends ValidComponent> = ComponentProps<T> & {
|
|
25
|
+
component: T | undefined;
|
|
27
26
|
};
|
|
28
27
|
/**
|
|
29
28
|
* renders an arbitrary custom or native component and passes the other props
|
|
@@ -32,4 +31,4 @@ declare type DynamicProps<T> = T & {
|
|
|
32
31
|
* ```
|
|
33
32
|
* @description https://www.solidjs.com/docs/latest/api#%3Cdynamic%3E
|
|
34
33
|
*/
|
|
35
|
-
export declare function Dynamic<T>(props: DynamicProps<T>): Accessor<JSX.Element>;
|
|
34
|
+
export declare function Dynamic<T extends ValidComponent>(props: DynamicProps<T>): Accessor<JSX.Element>;
|
|
@@ -25,16 +25,18 @@ export declare function renderToStream<T>(fn: () => T, options?: {
|
|
|
25
25
|
export declare function ssr(template: string[] | string, ...nodes: any[]): {
|
|
26
26
|
t: string;
|
|
27
27
|
};
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function ssrElement(name: string, props: any, children: any, needsId: boolean): {
|
|
29
|
+
t: string;
|
|
30
|
+
};
|
|
29
31
|
export declare function ssrClassList(value: {
|
|
30
32
|
[k: string]: boolean;
|
|
31
33
|
}): string;
|
|
32
34
|
export declare function ssrStyle(value: {
|
|
33
35
|
[k: string]: string;
|
|
34
36
|
}): string;
|
|
35
|
-
export declare function ssrSpread(accessor: any): () => string;
|
|
36
37
|
export declare function ssrAttribute(key: string, value: boolean): string;
|
|
37
38
|
export declare function ssrHydrationKey(): string;
|
|
39
|
+
export declare function resolveSSRNode(node: any): string;
|
|
38
40
|
export declare function escape(html: string): string;
|
|
39
41
|
export declare function generateHydrationScript(): string;
|
|
40
42
|
export declare type LegacyResults = {
|