Socket
Socket
Sign inDemoInstall

@vue/server-renderer

Package Overview
Dependencies
Maintainers
1
Versions
231
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vue/server-renderer - npm Package Compare versions

Comparing version 3.0.0-alpha.10 to 3.0.0-alpha.11

69

dist/server-renderer.cjs.js

@@ -81,2 +81,26 @@ 'use strict';

function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) {
parentPush('<!--teleport start-->');
let teleportContent;
if (disabled) {
contentRenderFn(parentPush);
teleportContent = `<!---->`;
}
else {
const { getBuffer, push } = createBuffer();
contentRenderFn(push);
push(`<!---->`); // teleport end anchor
teleportContent = getBuffer();
}
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {});
if (teleportBuffers[target]) {
teleportBuffers[target].push(teleportContent);
}
else {
teleportBuffers[target] = [teleportContent];
}
parentPush('<!--teleport end-->');
}
const { isVNode, createComponentInstance, setCurrentRenderingInstance, setupComponent, renderComponentRoot, normalizeVNode, normalizeSuspenseChildren } = vue.ssrUtils;

@@ -134,3 +158,3 @@ function createBuffer() {

const buffer = await renderComponentVNode(vnode);
await resolvePortals(context);
await resolveTeleports(context);
return unrollBuffer(buffer);

@@ -142,3 +166,3 @@ }

function renderComponentVNode(vnode, parentComponent = null) {
const instance = createComponentInstance(vnode, parentComponent);
const instance = createComponentInstance(vnode, parentComponent, null);
const res = setupComponent(instance, null /* parentSuspense (no need to track for SSR) */, true /* isSSR */);

@@ -224,4 +248,4 @@ if (shared.isPromise(res)) {

}
else if (shapeFlag & 64 /* PORTAL */) {
renderPortalVNode(vnode, parentComponent);
else if (shapeFlag & 64 /* TELEPORT */) {
renderTeleportVNode(push, vnode, parentComponent);
}

@@ -301,25 +325,24 @@ else if (shapeFlag & 128 /* SUSPENSE */) {

}
function renderPortalVNode(vnode, parentComponent) {
const target = vnode.props && vnode.props.target;
function renderTeleportVNode(push, vnode, parentComponent) {
const target = vnode.props && vnode.props.to;
const disabled = vnode.props && vnode.props.disabled;
if (!target) {
vue.warn(`[@vue/server-renderer] Portal is missing target prop.`);
vue.warn(`[@vue/server-renderer] Teleport is missing target prop.`);
return [];
}
if (!shared.isString(target)) {
vue.warn(`[@vue/server-renderer] Portal target must be a query selector string.`);
vue.warn(`[@vue/server-renderer] Teleport target must be a query selector string.`);
return [];
}
const { getBuffer, push } = createBuffer();
renderVNodeChildren(push, vnode.children, parentComponent);
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const portalBuffers = context.__portalBuffers || (context.__portalBuffers = {});
portalBuffers[target] = getBuffer();
ssrRenderTeleport(push, push => {
renderVNodeChildren(push, vnode.children, parentComponent);
}, target, disabled || disabled === '', parentComponent);
}
async function resolvePortals(context) {
if (context.__portalBuffers) {
context.portals = context.portals || {};
for (const key in context.__portalBuffers) {
async function resolveTeleports(context) {
if (context.__teleportBuffers) {
context.teleports = context.teleports || {};
for (const key in context.__teleportBuffers) {
// note: it's OK to await sequentially here because the Promises were
// created eagerly in parallel.
context.portals[key] = unrollBuffer(await context.__portalBuffers[key]);
context.teleports[key] = unrollBuffer(await Promise.all(context.__teleportBuffers[key]));
}

@@ -382,10 +405,2 @@ }

function ssrRenderPortal(contentRenderFn, target, parentComponent) {
const { getBuffer, push } = createBuffer();
contentRenderFn(push);
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const portalBuffers = context.__portalBuffers || (context.__portalBuffers = {});
portalBuffers[target] = getBuffer();
}
async function ssrRenderSuspense(push, { default: renderContent }) {

@@ -452,5 +467,5 @@ if (renderContent) {

exports.ssrRenderList = ssrRenderList;
exports.ssrRenderPortal = ssrRenderPortal;
exports.ssrRenderSlot = ssrRenderSlot;
exports.ssrRenderStyle = ssrRenderStyle;
exports.ssrRenderSuspense = ssrRenderSuspense;
exports.ssrRenderTeleport = ssrRenderTeleport;

@@ -81,2 +81,26 @@ 'use strict';

function ssrRenderTeleport(parentPush, contentRenderFn, target, disabled, parentComponent) {
parentPush('<!--teleport start-->');
let teleportContent;
if (disabled) {
contentRenderFn(parentPush);
teleportContent = `<!---->`;
}
else {
const { getBuffer, push } = createBuffer();
contentRenderFn(push);
push(`<!---->`); // teleport end anchor
teleportContent = getBuffer();
}
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const teleportBuffers = context.__teleportBuffers || (context.__teleportBuffers = {});
if (teleportBuffers[target]) {
teleportBuffers[target].push(teleportContent);
}
else {
teleportBuffers[target] = [teleportContent];
}
parentPush('<!--teleport end-->');
}
const { isVNode, createComponentInstance, setCurrentRenderingInstance, setupComponent, renderComponentRoot, normalizeVNode, normalizeSuspenseChildren } = vue.ssrUtils;

@@ -134,3 +158,3 @@ function createBuffer() {

const buffer = await renderComponentVNode(vnode);
await resolvePortals(context);
await resolveTeleports(context);
return unrollBuffer(buffer);

@@ -142,3 +166,3 @@ }

function renderComponentVNode(vnode, parentComponent = null) {
const instance = createComponentInstance(vnode, parentComponent);
const instance = createComponentInstance(vnode, parentComponent, null);
const res = setupComponent(instance, null /* parentSuspense (no need to track for SSR) */, true /* isSSR */);

@@ -221,4 +245,4 @@ if (shared.isPromise(res)) {

}
else if (shapeFlag & 64 /* PORTAL */) {
renderPortalVNode(vnode, parentComponent);
else if (shapeFlag & 64 /* TELEPORT */) {
renderTeleportVNode(push, vnode, parentComponent);
}

@@ -298,25 +322,24 @@ else if (shapeFlag & 128 /* SUSPENSE */) {

}
function renderPortalVNode(vnode, parentComponent) {
const target = vnode.props && vnode.props.target;
function renderTeleportVNode(push, vnode, parentComponent) {
const target = vnode.props && vnode.props.to;
const disabled = vnode.props && vnode.props.disabled;
if (!target) {
vue.warn(`[@vue/server-renderer] Portal is missing target prop.`);
vue.warn(`[@vue/server-renderer] Teleport is missing target prop.`);
return [];
}
if (!shared.isString(target)) {
vue.warn(`[@vue/server-renderer] Portal target must be a query selector string.`);
vue.warn(`[@vue/server-renderer] Teleport target must be a query selector string.`);
return [];
}
const { getBuffer, push } = createBuffer();
renderVNodeChildren(push, vnode.children, parentComponent);
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const portalBuffers = context.__portalBuffers || (context.__portalBuffers = {});
portalBuffers[target] = getBuffer();
ssrRenderTeleport(push, push => {
renderVNodeChildren(push, vnode.children, parentComponent);
}, target, disabled || disabled === '', parentComponent);
}
async function resolvePortals(context) {
if (context.__portalBuffers) {
context.portals = context.portals || {};
for (const key in context.__portalBuffers) {
async function resolveTeleports(context) {
if (context.__teleportBuffers) {
context.teleports = context.teleports || {};
for (const key in context.__teleportBuffers) {
// note: it's OK to await sequentially here because the Promises were
// created eagerly in parallel.
context.portals[key] = unrollBuffer(await context.__portalBuffers[key]);
context.teleports[key] = unrollBuffer(await Promise.all(context.__teleportBuffers[key]));
}

@@ -379,10 +402,2 @@ }

function ssrRenderPortal(contentRenderFn, target, parentComponent) {
const { getBuffer, push } = createBuffer();
contentRenderFn(push);
const context = parentComponent.appContext.provides[vue.ssrContextKey];
const portalBuffers = context.__portalBuffers || (context.__portalBuffers = {});
portalBuffers[target] = getBuffer();
}
async function ssrRenderSuspense(push, { default: renderContent }) {

@@ -449,5 +464,5 @@ if (renderContent) {

exports.ssrRenderList = ssrRenderList;
exports.ssrRenderPortal = ssrRenderPortal;
exports.ssrRenderSlot = ssrRenderSlot;
exports.ssrRenderStyle = ssrRenderStyle;
exports.ssrRenderSuspense = ssrRenderSuspense;
exports.ssrRenderTeleport = ssrRenderTeleport;

@@ -15,2 +15,4 @@ import { App } from 'vue';

declare type SSRBuffer = SSRBufferItem[];
declare type SSRBufferItem = string | ResolvedSSRBuffer | Promise<ResolvedSSRBuffer>;

@@ -20,4 +22,4 @@

[key: string]: any;
portals?: Record<string, string>;
__portalBuffers?: Record<string, ResolvedSSRBuffer | Promise<ResolvedSSRBuffer>>;
teleports?: Record<string, string>;
__teleportBuffers?: Record<string, SSRBuffer>;
};

@@ -53,4 +55,2 @@

export declare function ssrRenderPortal(contentRenderFn: (push: PushFn) => void, target: string, parentComponent: ComponentInternalInstance): void;
export declare function ssrRenderSlot(slots: Slots | SSRSlots, slotName: string, slotProps: Props, fallbackRenderFn: (() => void) | null, push: PushFn, parentComponent: ComponentInternalInstance): void;

@@ -62,2 +62,4 @@

export declare function ssrRenderTeleport(parentPush: PushFn, contentRenderFn: (push: PushFn) => void, target: string, disabled: boolean, parentComponent: ComponentInternalInstance): void;
declare type SSRSlot = (props: Props, push: PushFn, parentComponent: ComponentInternalInstance | null, scopeId: string | null) => void;

@@ -64,0 +66,0 @@

{
"name": "@vue/server-renderer",
"version": "3.0.0-alpha.10",
"version": "3.0.0-alpha.11",
"description": "@vue/server-renderer",

@@ -30,8 +30,8 @@ "main": "index.js",

"peerDependencies": {
"vue": "3.0.0-alpha.10"
"vue": "3.0.0-alpha.11"
},
"dependencies": {
"@vue/shared": "3.0.0-alpha.10",
"@vue/compiler-ssr": "3.0.0-alpha.10"
"@vue/shared": "3.0.0-alpha.11",
"@vue/compiler-ssr": "3.0.0-alpha.11"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc