chore: add todo comment
This commit is contained in:
parent
1d5436fbf8
commit
567feccb39
13
README.md
13
README.md
|
@ -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
|
||||
|
@ -23,8 +25,17 @@ PR are welcome! Please create a issue before you start to work on it.
|
|||
- [ ] `v-pre`
|
||||
- [ ] `v-cloak`
|
||||
- [ ] `v-memo`
|
||||
- [ ] Fragment
|
||||
- [ ] Remove DOM API in codegen
|
||||
- [ ] Fragment
|
||||
- [ ] Built-in Components
|
||||
- [ ] Transition
|
||||
- [ ] TransitionGroup
|
||||
- [ ] KeepAlive
|
||||
- [ ] Teleport
|
||||
- [ ] Suspense
|
||||
- [ ] Component
|
||||
- [ ] runtime
|
||||
- [ ] compiler
|
||||
- ...
|
||||
- [ ] SSR
|
||||
- [ ] Performance & Optimization
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
@ -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}]`
|
||||
}
|
||||
}
|
||||
|
@ -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}>`
|
||||
}
|
||||
|
||||
|
@ -265,10 +270,10 @@ function transformInterpolation(
|
|||
element: id,
|
||||
})
|
||||
}
|
||||
} else {
|
||||
// TODO
|
||||
return
|
||||
}
|
||||
// TODO
|
||||
|
||||
// TODO: CompoundExpressionNode: {{ count + 1 }}
|
||||
}
|
||||
|
||||
function transformProp(
|
||||
|
@ -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 ||
|
||||
node.arg.type === (8 satisfies NodeTypes.COMPOUND_EXPRESSION)
|
||||
) {
|
||||
// TODO
|
||||
} else if (!node.arg) {
|
||||
// TODO support v-bind="{}"
|
||||
return
|
||||
} else if (node.arg.type === (8 satisfies NodeTypes.COMPOUND_EXPRESSION)) {
|
||||
// TODO support :[foo]="bar"
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -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'
|
||||
|
|
Loading…
Reference in New Issue