refactor(ssr): prefix ssr helpers
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { escapeHtml, toDisplayString } from '@vue/shared'
|
||||
|
||||
export function interpolate(value: unknown): string {
|
||||
export function ssrInterpolate(value: unknown): string {
|
||||
return escapeHtml(toDisplayString(value))
|
||||
}
|
||||
@@ -14,7 +14,7 @@ import {
|
||||
|
||||
const shouldIgnoreProp = makeMap(`key,ref,innerHTML,textContent`)
|
||||
|
||||
export function renderAttrs(
|
||||
export function ssrRenderAttrs(
|
||||
props: Record<string, unknown>,
|
||||
tag?: string
|
||||
): string {
|
||||
@@ -29,18 +29,18 @@ export function renderAttrs(
|
||||
}
|
||||
const value = props[key]
|
||||
if (key === 'class') {
|
||||
ret += ` class="${renderClass(value)}"`
|
||||
ret += ` class="${ssrRenderClass(value)}"`
|
||||
} else if (key === 'style') {
|
||||
ret += ` style="${renderStyle(value)}"`
|
||||
ret += ` style="${ssrRenderStyle(value)}"`
|
||||
} else {
|
||||
ret += renderDynamicAttr(key, value, tag)
|
||||
ret += ssrRenderDynamicAttr(key, value, tag)
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
// render an attr with dynamic (unknown) key.
|
||||
export function renderDynamicAttr(
|
||||
export function ssrRenderDynamicAttr(
|
||||
key: string,
|
||||
value: unknown,
|
||||
tag?: string
|
||||
@@ -63,7 +63,7 @@ export function renderDynamicAttr(
|
||||
|
||||
// Render a v-bind attr with static key. The key is pre-processed at compile
|
||||
// time and we only need to check and escape value.
|
||||
export function renderAttr(key: string, value: unknown): string {
|
||||
export function ssrRenderAttr(key: string, value: unknown): string {
|
||||
if (!isRenderableValue(value)) {
|
||||
return ``
|
||||
}
|
||||
@@ -78,11 +78,11 @@ function isRenderableValue(value: unknown): boolean {
|
||||
return type === 'string' || type === 'number' || type === 'boolean'
|
||||
}
|
||||
|
||||
export function renderClass(raw: unknown): string {
|
||||
export function ssrRenderClass(raw: unknown): string {
|
||||
return escapeHtml(normalizeClass(raw))
|
||||
}
|
||||
|
||||
export function renderStyle(raw: unknown): string {
|
||||
export function ssrRenderStyle(raw: unknown): string {
|
||||
if (!raw) {
|
||||
return ''
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { isArray, isString, isObject } from '@vue/shared'
|
||||
|
||||
export function renderList(
|
||||
export function ssrRenderList(
|
||||
source: unknown,
|
||||
renderItem: (value: unknown, key: string | number, index?: number) => void
|
||||
) {
|
||||
@@ -9,7 +9,7 @@ export type SSRSlot = (
|
||||
parentComponent: ComponentInternalInstance | null
|
||||
) => void
|
||||
|
||||
export function renderSlot(
|
||||
export function ssrRenderSlot(
|
||||
slots: Slots | SSRSlots,
|
||||
slotName: string,
|
||||
slotProps: Props,
|
||||
@@ -1,42 +1,45 @@
|
||||
import { looseEqual as _looseEqual, looseIndexOf } from '@vue/shared'
|
||||
import { renderAttr } from './renderAttrs'
|
||||
import { looseEqual, looseIndexOf } from '@vue/shared'
|
||||
import { ssrRenderAttr } from './ssrRenderAttrs'
|
||||
|
||||
export const looseEqual = _looseEqual as (a: unknown, b: unknown) => boolean
|
||||
export const ssrLooseEqual = looseEqual as (a: unknown, b: unknown) => boolean
|
||||
|
||||
export function looseContain(arr: unknown[], value: unknown): boolean {
|
||||
export function ssrLooseContain(arr: unknown[], value: unknown): boolean {
|
||||
return looseIndexOf(arr, value) > -1
|
||||
}
|
||||
|
||||
// for <input :type="type" v-model="model" value="value">
|
||||
export function renderDynamicModel(
|
||||
export function ssrRenderDynamicModel(
|
||||
type: unknown,
|
||||
model: unknown,
|
||||
value: unknown
|
||||
) {
|
||||
switch (type) {
|
||||
case 'radio':
|
||||
return _looseEqual(model, value) ? ' checked' : ''
|
||||
return looseEqual(model, value) ? ' checked' : ''
|
||||
case 'checkbox':
|
||||
return (Array.isArray(model)
|
||||
? looseContain(model, value)
|
||||
? ssrLooseContain(model, value)
|
||||
: model)
|
||||
? ' checked'
|
||||
: ''
|
||||
default:
|
||||
// text types
|
||||
return renderAttr('value', model)
|
||||
return ssrRenderAttr('value', model)
|
||||
}
|
||||
}
|
||||
|
||||
// for <input v-bind="obj" v-model="model">
|
||||
export function getDynamicModelProps(existingProps: any = {}, model: unknown) {
|
||||
export function ssrGetDynamicModelProps(
|
||||
existingProps: any = {},
|
||||
model: unknown
|
||||
) {
|
||||
const { type, value } = existingProps
|
||||
switch (type) {
|
||||
case 'radio':
|
||||
return _looseEqual(model, value) ? { checked: true } : null
|
||||
return looseEqual(model, value) ? { checked: true } : null
|
||||
case 'checkbox':
|
||||
return (Array.isArray(model)
|
||||
? looseContain(model, value)
|
||||
? ssrLooseContain(model, value)
|
||||
: model)
|
||||
? { checked: true }
|
||||
: null
|
||||
@@ -2,22 +2,22 @@
|
||||
export { renderToString } from './renderToString'
|
||||
|
||||
// internal runtime helpers
|
||||
export { renderComponent as _renderComponent } from './renderToString'
|
||||
export { renderSlot as _renderSlot } from './helpers/renderSlot'
|
||||
export { renderComponent as _ssrRenderComponent } from './renderToString'
|
||||
export { ssrRenderSlot as _ssrRenderSlot } from './helpers/ssrRenderSlot'
|
||||
export {
|
||||
renderClass as _renderClass,
|
||||
renderStyle as _renderStyle,
|
||||
renderAttrs as _renderAttrs,
|
||||
renderAttr as _renderAttr,
|
||||
renderDynamicAttr as _renderDynamicAttr
|
||||
} from './helpers/renderAttrs'
|
||||
export { interpolate as _interpolate } from './helpers/interpolate'
|
||||
export { renderList as _renderList } from './helpers/renderList'
|
||||
ssrRenderClass as _ssrRenderClass,
|
||||
ssrRenderStyle as _ssrRenderStyle,
|
||||
ssrRenderAttrs as _ssrRenderAttrs,
|
||||
ssrRenderAttr as _ssrRenderAttr,
|
||||
ssrRenderDynamicAttr as _ssrRenderDynamicAttr
|
||||
} from './helpers/ssrRenderAttrs'
|
||||
export { ssrInterpolate as _ssrInterpolate } from './helpers/ssrInterpolate'
|
||||
export { ssrRenderList as _ssrRenderList } from './helpers/ssrRenderList'
|
||||
|
||||
// v-model helpers
|
||||
export {
|
||||
looseEqual as _looseEqual,
|
||||
looseContain as _looseContain,
|
||||
renderDynamicModel as _renderDynamicModel,
|
||||
getDynamicModelProps as _getDynamicModelProps
|
||||
} from './helpers/vModelHelpers'
|
||||
ssrLooseEqual as _ssrLooseEqual,
|
||||
ssrLooseContain as _ssrLooseContain,
|
||||
ssrRenderDynamicModel as _ssrRenderDynamicModel,
|
||||
ssrGetDynamicModelProps as _ssrGetDynamicModelProps
|
||||
} from './helpers/ssrVModelHelpers'
|
||||
|
||||
@@ -21,8 +21,8 @@ import {
|
||||
isVoidTag,
|
||||
escapeHtml
|
||||
} from '@vue/shared'
|
||||
import { renderAttrs } from './helpers/renderAttrs'
|
||||
import { SSRSlots } from './helpers/renderSlot'
|
||||
import { ssrRenderAttrs } from './helpers/ssrRenderAttrs'
|
||||
import { SSRSlots } from './helpers/ssrRenderSlot'
|
||||
|
||||
const {
|
||||
isVNode,
|
||||
@@ -217,7 +217,7 @@ function renderElement(
|
||||
// TODO directives
|
||||
|
||||
if (props !== null) {
|
||||
openTag += renderAttrs(props, tag)
|
||||
openTag += ssrRenderAttrs(props, tag)
|
||||
}
|
||||
|
||||
if (scopeId !== null) {
|
||||
|
||||
Reference in New Issue
Block a user