vue3-core/packages/compiler-ssr/src/transforms/ssrVShow.ts

36 lines
873 B
TypeScript
Raw Normal View History

2020-02-05 10:03:16 +08:00
import {
DirectiveTransform,
DOMErrorCodes,
createObjectProperty,
createSimpleExpression,
createConditionalExpression,
createObjectExpression,
createDOMCompilerError
2020-02-05 10:03:16 +08:00
} from '@vue/compiler-dom'
2020-02-05 01:20:51 +08:00
export const ssrTransformShow: DirectiveTransform = (dir, node, context) => {
2020-02-05 10:03:16 +08:00
if (!dir.exp) {
context.onError(
createDOMCompilerError(DOMErrorCodes.X_V_SHOW_NO_EXPRESSION)
)
2020-02-05 10:03:16 +08:00
}
2020-02-05 01:20:51 +08:00
return {
2020-02-05 10:03:16 +08:00
props: [
createObjectProperty(
createSimpleExpression(`style`, true),
createConditionalExpression(
dir.exp!,
createSimpleExpression(`null`, false),
createObjectExpression([
createObjectProperty(
createSimpleExpression(`display`, true),
createSimpleExpression(`none`, true)
)
]),
false /* no newline */
)
)
]
2020-02-05 01:20:51 +08:00
}
}