Skip to content

Commit

Permalink
chore: add todo comment
Browse files Browse the repository at this point in the history
  • Loading branch information
sxzz committed Nov 24, 2023
1 parent 1d5436f commit 90ccd4a
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 19 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ This repository is a fork of [vuejs/core](https://github.com/vuejs/core) and is

PR are welcome! Please create a issue before you start to work on it.

See the To-do list below or `// TODO` comments in code (`compiler-vapor` and `runtime-vapor` packages).

- [x] counter
- [x] simple bindings
- [x] simple events
Expand Down
1 change: 1 addition & 0 deletions packages/compiler-vapor/src/generate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ export function generate(
}

for (const [expr, effects] of Object.entries(ir.effect)) {
// TODO don't use watchEffect from vue/core, implement `effect` function in runtime-vapor package
let scope = `watchEffect(() => {\n`
helpers.add('watchEffect')
for (const effect of effects) {
Expand Down
44 changes: 25 additions & 19 deletions packages/compiler-vapor/src/transform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,14 @@ export function transform(
vaporHelpers: new Set([]),
}
const ctx = createRootContext(ir, root, options)
transformChildren(ctx, true)
transformChildren(ctx)
ctx.registerTemplate()
ir.children = ctx.children

return ir
}

function transformChildren(
ctx: TransformContext<RootNode | ElementNode>,
root?: boolean,
) {
function transformChildren(ctx: TransformContext<RootNode | ElementNode>) {
const {
node: { children },
} = ctx
Expand Down Expand Up @@ -177,7 +174,15 @@ function transformChildren(
)
break
}
case 12 satisfies NodeTypes.TEXT_CALL:
// never?
break
default: {
// TODO handle other types
// CompoundExpressionNode
// IfNode
// IfBranchNode
// ForNode
ctx.template += `[type: ${node.type}]`
}
}
Expand All @@ -202,9 +207,9 @@ function transformElement(ctx: TransformContext<ElementNode>) {
props.forEach((prop) => transformProp(prop, ctx))
ctx.template += node.isSelfClosing ? '/>' : `>`

if (children.length > 0) {
transformChildren(ctx)
}
if (children.length) transformChildren(ctx)

// TODO remove unnecessary close tag
if (!node.isSelfClosing) ctx.template += `</${tag}>`
}

Expand Down Expand Up @@ -265,10 +270,10 @@ function transformInterpolation(
element: id,
})
}
} else {
// TODO
return
}
// TODO

// TODO: CompoundExpressionNode: {{ count + 1 }}
}

function transformProp(
Expand All @@ -287,16 +292,17 @@ function transformProp(
}

if (!node.exp) {
// TODO
// TODO: Vue 3.4 supported shorthand syntax
// https://github.com/vuejs/core/pull/9451
return
} else if (node.exp.type === (8 satisfies NodeTypes.COMPOUND_EXPRESSION)) {
// TODO
// TODO: CompoundExpressionNode: :foo="count + 1"
return
} else if (!node.arg) {
// TODO support v-bind="{}"
return
} else if (
!node.arg ||
node.arg.type === (8 satisfies NodeTypes.COMPOUND_EXPRESSION)
) {
// TODO
} else if (node.arg.type === (8 satisfies NodeTypes.COMPOUND_EXPRESSION)) {
// TODO support :[foo]="bar"
return
}

Expand All @@ -319,7 +325,7 @@ function transformProp(
}
}

// TODO: reference packages/compiler-core/src/transforms/transformExpression.ts
// TODO: reuse packages/compiler-core/src/transforms/transformExpression.ts
function processExpression(ctx: TransformContext, expr: string) {
if (ctx.options.bindingMetadata?.[expr] === 'setup-ref') {
expr += '.value'
Expand Down

0 comments on commit 90ccd4a

Please sign in to comment.