fix circurlar import

Signed-off-by: houhaoyu <houhaoyu@huawei.com>
Change-Id: I54bc26f3ec9f160e4be7d5be2310ab82ad91196c
This commit is contained in:
houhaoyu
2022-08-18 22:57:26 +08:00
parent c20f060293
commit 952a49f6d1
3 changed files with 19 additions and 22 deletions
+1 -15
View File
@@ -45,7 +45,7 @@ import {
cache
} from './compile_info';
import { hasDecorator } from './utils';
import { isExtendFunction } from './process_ui_syntax';
import { isExtendFunction, isOriginalExtend } from './process_ui_syntax';
function readDeaclareFiles(): string[] {
const declarationsFileNames: string[] = [];
@@ -327,20 +327,6 @@ function parseAllNode(node: ts.Node, sourceFileNode: ts.SourceFile, extendFuncti
node.getChildren().forEach((item: ts.Node) => parseAllNode(item, sourceFileNode, extendFunctionInfo));
}
export function isOriginalExtend(node: ts.Block): boolean {
let innerNode: ts.Node = node.statements[0];
if (node.statements.length === 1 && ts.isExpressionStatement(innerNode)) {
while (innerNode.expression) {
innerNode = innerNode.expression;
}
if (ts.isIdentifier(innerNode) && innerNode.pos && innerNode.end && innerNode.pos === innerNode.end &&
innerNode.escapedText.toString().match(/Instance$/)) {
return true;
}
}
return false;
}
function traverseBuild(node: ts.Node, index: number): void {
if (ts.isExpressionStatement(node)) {
let parentComponentName: string = getName(node);
+4 -4
View File
@@ -114,10 +114,10 @@ export function processComponentBuild(node: ts.MethodDeclaration,
}
export function processComponentBlock(node: ts.Block, isLazy: boolean, log: LogInfo[],
isTransition: boolean = false, isInnerBuilder: boolean = false): ts.Block {
isTransition: boolean = false, isInnerBuilder: boolean = false, parent: string = undefined): ts.Block {
const newStatements: ts.Statement[] = [];
processComponentChild(node, newStatements, log,
{isAcceleratePreview: false, line: 0, column: 0, fileName: ''}, isInnerBuilder);
{isAcceleratePreview: false, line: 0, column: 0, fileName: ''}, isInnerBuilder, parent);
if (isLazy) {
newStatements.unshift(createRenderingInProgress(true));
}
@@ -1333,8 +1333,8 @@ function getComponentType(node: ts.ExpressionStatement, log: LogInfo[],
} else if (builderParamObjectCollection.get(componentCollection.currentClassName) &&
builderParamObjectCollection.get(componentCollection.currentClassName).has(name)) {
return ComponentType.builderParamMethod;
} else if (parent === 'Column' || parent === 'XComponent' && ts.isCallExpression(node.expression) &&
ts.isIdentifier(node.expression.expression)) {
} else if ((parent === 'Column' || parent === 'XComponent' || CUSTOM_BUILDER_METHOD.has(parent)) &&
ts.isCallExpression(node.expression) && ts.isIdentifier(node.expression.expression)) {
return ComponentType.function;
} else if (!isAttributeNode(node)) {
log.push({
+14 -3
View File
@@ -80,7 +80,6 @@ import {
projectConfig
} from '../main';
import { createCustomComponentNewExpression, createViewCreate } from './process_component_member';
import { isOriginalExtend } from './ets_checker'
export const transformLog: FileLog = new FileLog();
export let contextGlobal: ts.TransformationContext;
@@ -142,7 +141,7 @@ export function processUISyntax(program: ts.Program, ut = false): Function {
CUSTOM_BUILDER_METHOD.add(node.name.getText());
node = ts.factory.updateFunctionDeclaration(node, undefined, node.modifiers,
node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type,
processComponentBlock(node.body, false, transformLog.errors));
processComponentBlock(node.body, false, transformLog.errors, false, false, node.name.getText()));
} else if (hasDecorator(node, COMPONENT_STYLES_DECORATOR)) {
if (node.parameters.length === 0) {
node = undefined;
@@ -462,7 +461,19 @@ function processExtend(node: ts.FunctionDeclaration, log: LogInfo[]): ts.Functio
}
}
export function isOriginalExtend(node: ts.Block): boolean {
let innerNode: ts.Node = node.statements[0];
if (node.statements.length === 1 && ts.isExpressionStatement(innerNode)) {
while (innerNode.expression) {
innerNode = innerNode.expression;
}
if (ts.isIdentifier(innerNode) && innerNode.pos && innerNode.end && innerNode.pos === innerNode.end &&
innerNode.escapedText.toString().match(/Instance$/)) {
return true;
}
}
return false;
}
function isThisNode(node: ts.ExpressionStatement): boolean {
let innerNode: ts.Node = node;