@vue/server-renderer 3.6.0-rc.11 → 3.6.0-rc.12
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/server-renderer.cjs.js +62 -27
- package/dist/server-renderer.cjs.prod.js +66 -29
- package/dist/server-renderer.d.ts +3 -2
- package/dist/server-renderer.esm-browser.js +215 -85
- package/dist/server-renderer.esm-browser.prod.js +2 -2
- package/dist/server-renderer.esm-bundler.js +63 -30
- package/package.json +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/server-renderer v3.6.0-rc.
|
|
2
|
+
* @vue/server-renderer v3.6.0-rc.12
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -284,6 +284,7 @@ var internal_exports = /* @__PURE__ */ __exportAll({
|
|
|
284
284
|
ssrRenderClass: () => ssrRenderClass,
|
|
285
285
|
ssrRenderComponent: () => ssrRenderComponent,
|
|
286
286
|
ssrRenderDynamicAttr: () => ssrRenderDynamicAttr,
|
|
287
|
+
ssrRenderDynamicComponent: () => renderDynamicComponent,
|
|
287
288
|
ssrRenderDynamicModel: () => ssrRenderDynamicModel,
|
|
288
289
|
ssrRenderList: () => ssrRenderList,
|
|
289
290
|
ssrRenderSlot: () => ssrRenderSlot,
|
|
@@ -422,15 +423,20 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
|
|
|
422
423
|
popWarningContext();
|
|
423
424
|
const hasAsyncSetup = (0, _vue_shared.isPromise)(res);
|
|
424
425
|
let prefetches = instance.sp;
|
|
425
|
-
|
|
426
|
+
let p;
|
|
427
|
+
if (hasAsyncSetup || prefetches) p = Promise.resolve(res).then(() => {
|
|
426
428
|
if (hasAsyncSetup) prefetches = instance.sp;
|
|
427
|
-
if (prefetches)
|
|
428
|
-
|
|
429
|
+
if (prefetches) try {
|
|
430
|
+
return Promise.all(prefetches.map((prefetch) => prefetch.call(instance.proxy))).catch(_vue_shared.NOOP);
|
|
431
|
+
} catch {}
|
|
432
|
+
}).then(() => renderComponentSubTree(instance, slotScopeId));
|
|
429
433
|
else try {
|
|
430
434
|
return renderComponentSubTree(instance, slotScopeId);
|
|
431
435
|
} catch (err) {
|
|
432
|
-
|
|
436
|
+
p = Promise.reject(err);
|
|
433
437
|
}
|
|
438
|
+
p.catch(_vue_shared.NOOP);
|
|
439
|
+
return p;
|
|
434
440
|
}
|
|
435
441
|
function renderComponentSubTree(instance, slotScopeId) {
|
|
436
442
|
pushWarningContext(instance.vnode);
|
|
@@ -513,8 +519,8 @@ function renderVNode(push, vnode, parentComponent, slotScopeId) {
|
|
|
513
519
|
}
|
|
514
520
|
case VaporSlot: {
|
|
515
521
|
if (vnode.slotScopeIds) slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" ");
|
|
516
|
-
const { slot, outlets } = vnode.vs;
|
|
517
|
-
renderVaporOutlet(push, slot, vnode.props, outlets && outlets[0], parentComponent, slotScopeId);
|
|
522
|
+
const { slot, outlets, props } = vnode.vs;
|
|
523
|
+
renderVaporOutlet(push, slot, props || vnode.props, outlets && outlets[0], parentComponent, slotScopeId);
|
|
518
524
|
break;
|
|
519
525
|
}
|
|
520
526
|
default: if (shapeFlag & 1) renderElementVNode(push, vnode, parentComponent, slotScopeId);
|
|
@@ -532,7 +538,13 @@ function renderVaporOutlet(push, slot, props, outlet, parentComponent, slotScope
|
|
|
532
538
|
function renderVNodeChildren(push, children, parentComponent, slotScopeId) {
|
|
533
539
|
for (let i = 0; i < children.length; i++) renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId);
|
|
534
540
|
}
|
|
535
|
-
function
|
|
541
|
+
function renderDynamicComponent(push, type, props, slots, parentComponent, slotScopeId) {
|
|
542
|
+
if ((0, _vue_shared.isString)(type) && type) {
|
|
543
|
+
const slot = slots && slots.default;
|
|
544
|
+
renderElementVNode(push, (0, _vue_runtime_dom.createVNode)(type, props), parentComponent, slotScopeId, slot && (() => slot(void 0, push, parentComponent, slotScopeId || "")));
|
|
545
|
+
} else renderVNode(push, (0, _vue_runtime_dom.createVNode)(type, props, slots), parentComponent, slotScopeId);
|
|
546
|
+
}
|
|
547
|
+
function renderElementVNode(push, vnode, parentComponent, slotScopeId, renderChildren) {
|
|
536
548
|
const tag = vnode.type;
|
|
537
549
|
let { props, children, shapeFlag, scopeId } = vnode;
|
|
538
550
|
let openTag = `<${tag}`;
|
|
@@ -560,19 +572,20 @@ function renderElementVNode(push, vnode, parentComponent, slotScopeId) {
|
|
|
560
572
|
if (!(0, _vue_shared.isVoidTag)(tag)) {
|
|
561
573
|
let hasChildrenOverride = false;
|
|
562
574
|
if (props) {
|
|
563
|
-
if (props.innerHTML) {
|
|
575
|
+
if (props.innerHTML != null) {
|
|
564
576
|
hasChildrenOverride = true;
|
|
565
|
-
push(props.innerHTML);
|
|
566
|
-
} else if (props.textContent) {
|
|
577
|
+
push(String(props.innerHTML));
|
|
578
|
+
} else if (props.textContent != null) {
|
|
567
579
|
hasChildrenOverride = true;
|
|
568
580
|
push((0, _vue_shared.escapeHtml)(props.textContent));
|
|
569
|
-
} else if (tag === "textarea" && props.value) {
|
|
581
|
+
} else if (tag === "textarea" && props.value != null) {
|
|
570
582
|
hasChildrenOverride = true;
|
|
571
583
|
push((0, _vue_shared.escapeHtml)(props.value));
|
|
572
584
|
}
|
|
573
585
|
}
|
|
574
586
|
if (!hasChildrenOverride) {
|
|
575
|
-
if (
|
|
587
|
+
if (renderChildren) renderChildren();
|
|
588
|
+
else if (shapeFlag & 8) push((0, _vue_shared.escapeHtml)(children));
|
|
576
589
|
else if (shapeFlag & 16) renderVNodeChildren(push, children, parentComponent, slotScopeId);
|
|
577
590
|
}
|
|
578
591
|
push(`</${tag}>`);
|
|
@@ -647,13 +660,41 @@ async function renderToString(input, context = {}) {
|
|
|
647
660
|
const vnode = (0, _vue_runtime_dom.createVNode)(input._component, input._props);
|
|
648
661
|
vnode.appContext = input._context;
|
|
649
662
|
input.provide(_vue_runtime_dom.ssrContextKey, context);
|
|
663
|
+
let buffer;
|
|
664
|
+
let result;
|
|
650
665
|
try {
|
|
651
|
-
|
|
666
|
+
buffer = await renderComponentVNode(vnode);
|
|
667
|
+
result = await unrollBuffer$1(buffer);
|
|
652
668
|
await resolveTeleports(context);
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
669
|
+
} catch (err) {
|
|
670
|
+
cleanupFailedRender(buffer, context);
|
|
671
|
+
throw err;
|
|
656
672
|
}
|
|
673
|
+
cleanupContext(context);
|
|
674
|
+
return result;
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Stops watchers without masking the render error. Components after the
|
|
678
|
+
* failure point are still in flight and can register watchers once the render
|
|
679
|
+
* has settled, so those are stopped when they finish.
|
|
680
|
+
* Cleanup errors here have already been reported by the watcher.
|
|
681
|
+
*/
|
|
682
|
+
function cleanupFailedRender(buffer, context) {
|
|
683
|
+
try {
|
|
684
|
+
cleanupContext(context);
|
|
685
|
+
} catch {}
|
|
686
|
+
(async () => {
|
|
687
|
+
if (buffer) await settleBuffer(buffer);
|
|
688
|
+
for (const key in context.__teleportBuffers) await settleBuffer(context.__teleportBuffers[key]);
|
|
689
|
+
cleanupContext(context);
|
|
690
|
+
})().catch(_vue_shared.NOOP);
|
|
691
|
+
}
|
|
692
|
+
async function settleBuffer(buffer) {
|
|
693
|
+
if (!buffer.hasAsync) return;
|
|
694
|
+
for (let item of buffer) try {
|
|
695
|
+
if ((0, _vue_shared.isPromise)(item)) item = await item;
|
|
696
|
+
if (!(0, _vue_shared.isString)(item)) await settleBuffer(item);
|
|
697
|
+
} catch {}
|
|
657
698
|
}
|
|
658
699
|
async function resolveTeleports(context) {
|
|
659
700
|
if (context.__teleportBuffers) {
|
|
@@ -685,19 +726,12 @@ function renderToSimpleStream(input, context, stream) {
|
|
|
685
726
|
const vnode = (0, _vue_runtime_dom.createVNode)(input._component, input._props);
|
|
686
727
|
vnode.appContext = input._context;
|
|
687
728
|
input.provide(_vue_runtime_dom.ssrContextKey, context);
|
|
688
|
-
let
|
|
689
|
-
|
|
690
|
-
if (cleaned) return;
|
|
691
|
-
cleaned = true;
|
|
729
|
+
let buffer;
|
|
730
|
+
Promise.resolve().then(() => renderComponentVNode(vnode)).then((b) => unrollBuffer(buffer = b, stream)).then(() => resolveTeleports(context)).then(() => {
|
|
692
731
|
cleanupContext(context);
|
|
693
|
-
};
|
|
694
|
-
Promise.resolve().then(() => renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => {
|
|
695
|
-
finalize();
|
|
696
732
|
return stream.push(null);
|
|
697
733
|
}).catch((error) => {
|
|
698
|
-
|
|
699
|
-
finalize();
|
|
700
|
-
} catch {}
|
|
734
|
+
cleanupFailedRender(buffer, context);
|
|
701
735
|
stream.destroy(error);
|
|
702
736
|
});
|
|
703
737
|
return stream;
|
|
@@ -788,6 +822,7 @@ exports.ssrRenderAttrs = ssrRenderAttrs;
|
|
|
788
822
|
exports.ssrRenderClass = ssrRenderClass;
|
|
789
823
|
exports.ssrRenderComponent = ssrRenderComponent;
|
|
790
824
|
exports.ssrRenderDynamicAttr = ssrRenderDynamicAttr;
|
|
825
|
+
exports.ssrRenderDynamicComponent = renderDynamicComponent;
|
|
791
826
|
exports.ssrRenderDynamicModel = ssrRenderDynamicModel;
|
|
792
827
|
exports.ssrRenderList = ssrRenderList;
|
|
793
828
|
exports.ssrRenderSlot = ssrRenderSlot;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vue/server-renderer v3.6.0-rc.
|
|
2
|
+
* @vue/server-renderer v3.6.0-rc.12
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
5
|
**/
|
|
@@ -211,8 +211,10 @@ function ssrInterpolate(value) {
|
|
|
211
211
|
//#region packages/server-renderer/src/helpers/ssrRenderList.ts
|
|
212
212
|
function ssrRenderList(source, renderItem) {
|
|
213
213
|
if ((0, _vue_shared.isArray)(source) || (0, _vue_shared.isString)(source)) for (let i = 0, l = source.length; i < l; i++) renderItem(source[i], i);
|
|
214
|
-
else if (typeof source === "number")
|
|
215
|
-
|
|
214
|
+
else if (typeof source === "number") {
|
|
215
|
+
if (!Number.isInteger(source) || source < 0) return;
|
|
216
|
+
for (let i = 0; i < source; i++) renderItem(i + 1, i);
|
|
217
|
+
} else if ((0, _vue_shared.isObject)(source)) {
|
|
216
218
|
if (source[Symbol.iterator]) {
|
|
217
219
|
let i = 0;
|
|
218
220
|
for (const item of source) renderItem(item, i++);
|
|
@@ -279,6 +281,7 @@ var internal_exports = /* @__PURE__ */ __exportAll({
|
|
|
279
281
|
ssrRenderClass: () => ssrRenderClass,
|
|
280
282
|
ssrRenderComponent: () => ssrRenderComponent,
|
|
281
283
|
ssrRenderDynamicAttr: () => ssrRenderDynamicAttr,
|
|
284
|
+
ssrRenderDynamicComponent: () => renderDynamicComponent,
|
|
282
285
|
ssrRenderDynamicModel: () => ssrRenderDynamicModel,
|
|
283
286
|
ssrRenderList: () => ssrRenderList,
|
|
284
287
|
ssrRenderSlot: () => ssrRenderSlot,
|
|
@@ -411,15 +414,20 @@ function renderComponentVNode(vnode, parentComponent = null, slotScopeId) {
|
|
|
411
414
|
const res = setupComponent(instance, true);
|
|
412
415
|
const hasAsyncSetup = (0, _vue_shared.isPromise)(res);
|
|
413
416
|
let prefetches = instance.sp;
|
|
414
|
-
|
|
417
|
+
let p;
|
|
418
|
+
if (hasAsyncSetup || prefetches) p = Promise.resolve(res).then(() => {
|
|
415
419
|
if (hasAsyncSetup) prefetches = instance.sp;
|
|
416
|
-
if (prefetches)
|
|
417
|
-
|
|
420
|
+
if (prefetches) try {
|
|
421
|
+
return Promise.all(prefetches.map((prefetch) => prefetch.call(instance.proxy))).catch(_vue_shared.NOOP);
|
|
422
|
+
} catch {}
|
|
423
|
+
}).then(() => renderComponentSubTree(instance, slotScopeId));
|
|
418
424
|
else try {
|
|
419
425
|
return renderComponentSubTree(instance, slotScopeId);
|
|
420
426
|
} catch (err) {
|
|
421
|
-
|
|
427
|
+
p = Promise.reject(err);
|
|
422
428
|
}
|
|
429
|
+
p.catch(_vue_shared.NOOP);
|
|
430
|
+
return p;
|
|
423
431
|
}
|
|
424
432
|
function renderComponentSubTree(instance, slotScopeId) {
|
|
425
433
|
const comp = instance.type;
|
|
@@ -500,8 +508,8 @@ function renderVNode(push, vnode, parentComponent, slotScopeId) {
|
|
|
500
508
|
}
|
|
501
509
|
case VaporSlot: {
|
|
502
510
|
if (vnode.slotScopeIds) slotScopeId = (slotScopeId ? slotScopeId + " " : "") + vnode.slotScopeIds.join(" ");
|
|
503
|
-
const { slot, outlets } = vnode.vs;
|
|
504
|
-
renderVaporOutlet(push, slot, vnode.props, outlets && outlets[0], parentComponent, slotScopeId);
|
|
511
|
+
const { slot, outlets, props } = vnode.vs;
|
|
512
|
+
renderVaporOutlet(push, slot, props || vnode.props, outlets && outlets[0], parentComponent, slotScopeId);
|
|
505
513
|
break;
|
|
506
514
|
}
|
|
507
515
|
default: if (shapeFlag & 1) renderElementVNode(push, vnode, parentComponent, slotScopeId);
|
|
@@ -519,7 +527,13 @@ function renderVaporOutlet(push, slot, props, outlet, parentComponent, slotScope
|
|
|
519
527
|
function renderVNodeChildren(push, children, parentComponent, slotScopeId) {
|
|
520
528
|
for (let i = 0; i < children.length; i++) renderVNode(push, normalizeVNode(children[i]), parentComponent, slotScopeId);
|
|
521
529
|
}
|
|
522
|
-
function
|
|
530
|
+
function renderDynamicComponent(push, type, props, slots, parentComponent, slotScopeId) {
|
|
531
|
+
if ((0, _vue_shared.isString)(type) && type) {
|
|
532
|
+
const slot = slots && slots.default;
|
|
533
|
+
renderElementVNode(push, (0, _vue_runtime_dom.createVNode)(type, props), parentComponent, slotScopeId, slot && (() => slot(void 0, push, parentComponent, slotScopeId || "")));
|
|
534
|
+
} else renderVNode(push, (0, _vue_runtime_dom.createVNode)(type, props, slots), parentComponent, slotScopeId);
|
|
535
|
+
}
|
|
536
|
+
function renderElementVNode(push, vnode, parentComponent, slotScopeId, renderChildren) {
|
|
523
537
|
const tag = vnode.type;
|
|
524
538
|
let { props, children, shapeFlag, scopeId } = vnode;
|
|
525
539
|
let openTag = `<${tag}`;
|
|
@@ -547,19 +561,20 @@ function renderElementVNode(push, vnode, parentComponent, slotScopeId) {
|
|
|
547
561
|
if (!(0, _vue_shared.isVoidTag)(tag)) {
|
|
548
562
|
let hasChildrenOverride = false;
|
|
549
563
|
if (props) {
|
|
550
|
-
if (props.innerHTML) {
|
|
564
|
+
if (props.innerHTML != null) {
|
|
551
565
|
hasChildrenOverride = true;
|
|
552
|
-
push(props.innerHTML);
|
|
553
|
-
} else if (props.textContent) {
|
|
566
|
+
push(String(props.innerHTML));
|
|
567
|
+
} else if (props.textContent != null) {
|
|
554
568
|
hasChildrenOverride = true;
|
|
555
569
|
push((0, _vue_shared.escapeHtml)(props.textContent));
|
|
556
|
-
} else if (tag === "textarea" && props.value) {
|
|
570
|
+
} else if (tag === "textarea" && props.value != null) {
|
|
557
571
|
hasChildrenOverride = true;
|
|
558
572
|
push((0, _vue_shared.escapeHtml)(props.value));
|
|
559
573
|
}
|
|
560
574
|
}
|
|
561
575
|
if (!hasChildrenOverride) {
|
|
562
|
-
if (
|
|
576
|
+
if (renderChildren) renderChildren();
|
|
577
|
+
else if (shapeFlag & 8) push((0, _vue_shared.escapeHtml)(children));
|
|
563
578
|
else if (shapeFlag & 16) renderVNodeChildren(push, children, parentComponent, slotScopeId);
|
|
564
579
|
}
|
|
565
580
|
push(`</${tag}>`);
|
|
@@ -634,13 +649,41 @@ async function renderToString(input, context = {}) {
|
|
|
634
649
|
const vnode = (0, _vue_runtime_dom.createVNode)(input._component, input._props);
|
|
635
650
|
vnode.appContext = input._context;
|
|
636
651
|
input.provide(_vue_runtime_dom.ssrContextKey, context);
|
|
652
|
+
let buffer;
|
|
653
|
+
let result;
|
|
637
654
|
try {
|
|
638
|
-
|
|
655
|
+
buffer = await renderComponentVNode(vnode);
|
|
656
|
+
result = await unrollBuffer$1(buffer);
|
|
639
657
|
await resolveTeleports(context);
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
658
|
+
} catch (err) {
|
|
659
|
+
cleanupFailedRender(buffer, context);
|
|
660
|
+
throw err;
|
|
643
661
|
}
|
|
662
|
+
cleanupContext(context);
|
|
663
|
+
return result;
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Stops watchers without masking the render error. Components after the
|
|
667
|
+
* failure point are still in flight and can register watchers once the render
|
|
668
|
+
* has settled, so those are stopped when they finish.
|
|
669
|
+
* Cleanup errors here have already been reported by the watcher.
|
|
670
|
+
*/
|
|
671
|
+
function cleanupFailedRender(buffer, context) {
|
|
672
|
+
try {
|
|
673
|
+
cleanupContext(context);
|
|
674
|
+
} catch {}
|
|
675
|
+
(async () => {
|
|
676
|
+
if (buffer) await settleBuffer(buffer);
|
|
677
|
+
for (const key in context.__teleportBuffers) await settleBuffer(context.__teleportBuffers[key]);
|
|
678
|
+
cleanupContext(context);
|
|
679
|
+
})().catch(_vue_shared.NOOP);
|
|
680
|
+
}
|
|
681
|
+
async function settleBuffer(buffer) {
|
|
682
|
+
if (!buffer.hasAsync) return;
|
|
683
|
+
for (let item of buffer) try {
|
|
684
|
+
if ((0, _vue_shared.isPromise)(item)) item = await item;
|
|
685
|
+
if (!(0, _vue_shared.isString)(item)) await settleBuffer(item);
|
|
686
|
+
} catch {}
|
|
644
687
|
}
|
|
645
688
|
async function resolveTeleports(context) {
|
|
646
689
|
if (context.__teleportBuffers) {
|
|
@@ -672,19 +715,12 @@ function renderToSimpleStream(input, context, stream) {
|
|
|
672
715
|
const vnode = (0, _vue_runtime_dom.createVNode)(input._component, input._props);
|
|
673
716
|
vnode.appContext = input._context;
|
|
674
717
|
input.provide(_vue_runtime_dom.ssrContextKey, context);
|
|
675
|
-
let
|
|
676
|
-
|
|
677
|
-
if (cleaned) return;
|
|
678
|
-
cleaned = true;
|
|
718
|
+
let buffer;
|
|
719
|
+
Promise.resolve().then(() => renderComponentVNode(vnode)).then((b) => unrollBuffer(buffer = b, stream)).then(() => resolveTeleports(context)).then(() => {
|
|
679
720
|
cleanupContext(context);
|
|
680
|
-
};
|
|
681
|
-
Promise.resolve().then(() => renderComponentVNode(vnode)).then((buffer) => unrollBuffer(buffer, stream)).then(() => resolveTeleports(context)).then(() => {
|
|
682
|
-
finalize();
|
|
683
721
|
return stream.push(null);
|
|
684
722
|
}).catch((error) => {
|
|
685
|
-
|
|
686
|
-
finalize();
|
|
687
|
-
} catch {}
|
|
723
|
+
cleanupFailedRender(buffer, context);
|
|
688
724
|
stream.destroy(error);
|
|
689
725
|
});
|
|
690
726
|
return stream;
|
|
@@ -775,6 +811,7 @@ exports.ssrRenderAttrs = ssrRenderAttrs;
|
|
|
775
811
|
exports.ssrRenderClass = ssrRenderClass;
|
|
776
812
|
exports.ssrRenderComponent = ssrRenderComponent;
|
|
777
813
|
exports.ssrRenderDynamicAttr = ssrRenderDynamicAttr;
|
|
814
|
+
exports.ssrRenderDynamicComponent = renderDynamicComponent;
|
|
778
815
|
exports.ssrRenderDynamicModel = ssrRenderDynamicModel;
|
|
779
816
|
exports.ssrRenderList = ssrRenderList;
|
|
780
817
|
exports.ssrRenderSlot = ssrRenderSlot;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { App, Component, ComponentInternalInstance, ComponentPublicInstance, Directive, Slots, VNode } from "@vue/runtime-dom";
|
|
1
|
+
import { App, Component, ComponentInternalInstance, ComponentPublicInstance, Directive, Slots, VNode, VNodeTypes } from "@vue/runtime-dom";
|
|
2
2
|
import { Readable, Writable } from "node:stream";
|
|
3
3
|
import { includeBooleanAttr as ssrIncludeBooleanAttr } from "@vue/shared";
|
|
4
4
|
//#region temp/packages/server-renderer/src/render.d.ts
|
|
@@ -13,6 +13,7 @@ export type SSRContext = {
|
|
|
13
13
|
teleports?: Record<string, string>;
|
|
14
14
|
};
|
|
15
15
|
export declare function renderVNode(push: PushFn, vnode: VNode, parentComponent: ComponentInternalInstance, slotScopeId?: string): void;
|
|
16
|
+
export declare function renderDynamicComponent(push: PushFn, type: VNodeTypes, props: Props | null, slots: Record<string, any> | null, parentComponent: ComponentInternalInstance, slotScopeId?: string): void;
|
|
16
17
|
//#endregion
|
|
17
18
|
//#region temp/packages/server-renderer/src/renderToString.d.ts
|
|
18
19
|
export declare function renderToString(input: App | VNode, context?: SSRContext): Promise<string>;
|
|
@@ -73,4 +74,4 @@ export declare function ssrGetDynamicModelProps(existingProps: any | undefined,
|
|
|
73
74
|
value: any;
|
|
74
75
|
} | null;
|
|
75
76
|
//#endregion
|
|
76
|
-
export { ssrIncludeBooleanAttr, renderVNode as ssrRenderVNode };
|
|
77
|
+
export { ssrIncludeBooleanAttr, renderDynamicComponent as ssrRenderDynamicComponent, renderVNode as ssrRenderVNode };
|