feat(watch): switch to label watch
This commit is contained in:
parent
7b4c3a35d0
commit
f447bb8989
|
@ -3,6 +3,10 @@ import * as babel from '@babel/core';
|
||||||
import { Option } from './types';
|
import { Option } from './types';
|
||||||
import type { Scope } from '@babel/traverse';
|
import type { Scope } from '@babel/traverse';
|
||||||
|
|
||||||
|
const DECORATOR_PROPS = 'Prop';
|
||||||
|
const DECORATOR_CHILDREN = 'Children';
|
||||||
|
const DECORATOR_WATCH = 'Watch';
|
||||||
|
|
||||||
function replaceFnWithClass(path: NodePath<t.FunctionDeclaration>, classTransformer: ClassComponentTransformer) {
|
function replaceFnWithClass(path: NodePath<t.FunctionDeclaration>, classTransformer: ClassComponentTransformer) {
|
||||||
const originalName = path.node.id.name;
|
const originalName = path.node.id.name;
|
||||||
const tempName = path.node.id.name + 'Temp';
|
const tempName = path.node.id.name + 'Temp';
|
||||||
|
@ -214,7 +218,7 @@ class ClassComponentTransformer {
|
||||||
*/
|
*/
|
||||||
transformWatch(node: t.LabeledStatement) {
|
transformWatch(node: t.LabeledStatement) {
|
||||||
const id = this.functionScope.generateUidIdentifier(DECORATOR_WATCH.toLowerCase());
|
const id = this.functionScope.generateUidIdentifier(DECORATOR_WATCH.toLowerCase());
|
||||||
const method = this.t.classMethod('method', id, [], this.t.blockStatement([node.body]), false, false);
|
const method = this.t.classMethod('method', id, [], this.t.blockStatement([node]), false, false);
|
||||||
method.decorators = [this.t.decorator(this.t.identifier(DECORATOR_WATCH))];
|
method.decorators = [this.t.decorator(this.t.identifier(DECORATOR_WATCH))];
|
||||||
this.addProperty(method);
|
this.addProperty(method);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue