Skip to content

Commit 9b5d23c

Browse files
committed
refactor(compiler-vapor): register effect argument
1 parent cd58294 commit 9b5d23c

File tree

6 files changed

+34
-51
lines changed

6 files changed

+34
-51
lines changed

packages/compiler-vapor/src/transform.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export interface TransformContext<T extends AllNode = AllNode> {
8686
registerTemplate(customTemplate?: string): number
8787
registerEffect(
8888
expressions: SimpleExpressionNode[],
89-
operation: OperationNode[],
89+
...operation: OperationNode[]
9090
): void
9191
registerOperation(...operations: OperationNode[]): void
9292
}
@@ -159,7 +159,7 @@ function createRootContext(
159159
this.dynamic.flags |= DynamicFlag.REFERENCED
160160
return (this.dynamic.id = this.increaseId())
161161
},
162-
registerEffect(expressions, operations) {
162+
registerEffect(expressions, ...operations) {
163163
expressions = expressions.filter(exp => !isConstantExpression(exp))
164164
if (this.inVOnce || expressions.length === 0) {
165165
return this.registerOperation(...operations)

packages/compiler-vapor/src/transforms/transformElement.ts

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -135,27 +135,23 @@ function transformNativeElement(
135135

136136
if (propsResult[0] /* dynamic props */) {
137137
const [, dynamicArgs, expressions] = propsResult
138-
context.registerEffect(expressions, [
139-
{
140-
type: IRNodeTypes.SET_DYNAMIC_PROPS,
141-
element: context.reference(),
142-
props: dynamicArgs,
143-
},
144-
])
138+
context.registerEffect(expressions, {
139+
type: IRNodeTypes.SET_DYNAMIC_PROPS,
140+
element: context.reference(),
141+
props: dynamicArgs,
142+
})
145143
} else {
146144
for (const prop of propsResult[1]) {
147145
const { key, values } = prop
148146
if (key.isStatic && values.length === 1 && values[0].isStatic) {
149147
template += ` ${key.content}`
150148
if (values[0].content) template += `="${values[0].content}"`
151149
} else {
152-
context.registerEffect(values, [
153-
{
154-
type: IRNodeTypes.SET_PROP,
155-
element: context.reference(),
156-
prop,
157-
},
158-
])
150+
context.registerEffect(values, {
151+
type: IRNodeTypes.SET_PROP,
152+
element: context.reference(),
153+
prop,
154+
})
159155
}
160156
}
161157
}
@@ -226,13 +222,12 @@ function buildProps(
226222
} else {
227223
context.registerEffect(
228224
[prop.exp],
229-
[
230-
{
231-
type: IRNodeTypes.SET_DYNAMIC_EVENTS,
232-
element: context.reference(),
233-
event: prop.exp,
234-
},
235-
],
225+
226+
{
227+
type: IRNodeTypes.SET_DYNAMIC_EVENTS,
228+
element: context.reference(),
229+
event: prop.exp,
230+
},
236231
)
237232
}
238233
} else {

packages/compiler-vapor/src/transforms/transformText.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,11 @@ function processTextLikeContainer(
6565
context: TransformContext<ElementNode>,
6666
) {
6767
const values = children.map(child => createTextLikeExpression(child, context))
68-
context.registerEffect(values, [
69-
{
70-
type: IRNodeTypes.SET_TEXT,
71-
element: context.reference(),
72-
values,
73-
},
74-
])
68+
context.registerEffect(values, {
69+
type: IRNodeTypes.SET_TEXT,
70+
element: context.reference(),
71+
values,
72+
})
7573
}
7674

7775
function createTextLikeExpression(node: TextLike, context: TransformContext) {

packages/compiler-vapor/src/transforms/vHtml.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,9 @@ export const transformVHtml: DirectiveTransform = (dir, node, context) => {
1818
context.childrenTemplate.length = 0
1919
}
2020

21-
context.registerEffect(
22-
[exp],
23-
[
24-
{
25-
type: IRNodeTypes.SET_HTML,
26-
element: context.reference(),
27-
value: exp,
28-
},
29-
],
30-
)
21+
context.registerEffect([exp], {
22+
type: IRNodeTypes.SET_HTML,
23+
element: context.reference(),
24+
value: exp,
25+
})
3126
}

packages/compiler-vapor/src/transforms/vOn.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,5 @@ export const transformVOn: DirectiveTransform = (dir, node, context) => {
8484
effect: !arg.isStatic,
8585
}
8686

87-
context.registerEffect([arg], [operation])
87+
context.registerEffect([arg], operation)
8888
}

packages/compiler-vapor/src/transforms/vText.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,9 @@ export const transformVText: DirectiveTransform = (dir, node, context) => {
1818
context.childrenTemplate.length = 0
1919
}
2020

21-
context.registerEffect(
22-
[exp],
23-
[
24-
{
25-
type: IRNodeTypes.SET_TEXT,
26-
element: context.reference(),
27-
values: [exp],
28-
},
29-
],
30-
)
21+
context.registerEffect([exp], {
22+
type: IRNodeTypes.SET_TEXT,
23+
element: context.reference(),
24+
values: [exp],
25+
})
3126
}

0 commit comments

Comments
 (0)