From 093db4757f46f225b6f2f2cf00380e843e76b5e6 Mon Sep 17 00:00:00 2001 From: houhaoyu Date: Sat, 19 Mar 2022 00:06:14 +0800 Subject: [PATCH] fixed f9b0648 from https://gitee.com/houhaoyu/developtools_ace-ets2bundle/pulls/429 houhaoyu@huawei.com fix @extend Signed-off-by: houhaoyu Change-Id: I6149aca8befdc3330b2513366e44917b97d2d53e --- compiler/src/ets_checker.ts | 1 + compiler/src/process_ui_syntax.ts | 4 ++-- compiler/src/validate_ui_syntax.ts | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/src/ets_checker.ts b/compiler/src/ets_checker.ts index d6dc1dabe..607f2ff75 100644 --- a/compiler/src/ets_checker.ts +++ b/compiler/src/ets_checker.ts @@ -51,6 +51,7 @@ export function createLanguageService(rootFileNames: string[]): ts.LanguageServi const compilerOptions: ts.CompilerOptions = ts.readConfigFile( path.resolve(__dirname, '../tsconfig.json'), ts.sys.readFile).config.compilerOptions; Object.assign(compilerOptions, { + 'allowJs': false, 'moduleResolution': ts.ModuleResolutionKind.NodeJs, 'target': ts.ScriptTarget.ES2017, 'baseUrl': path.resolve(projectConfig.projectPath), diff --git a/compiler/src/process_ui_syntax.ts b/compiler/src/process_ui_syntax.ts index 7a4825d35..7d4957951 100644 --- a/compiler/src/process_ui_syntax.ts +++ b/compiler/src/process_ui_syntax.ts @@ -290,8 +290,8 @@ export function collectExtend(collectionSet: Map>, component } } -function isExtendFunction(node: ts.FunctionDeclaration): string { - if (node.decorators && node.decorators[0].expression && +export function isExtendFunction(node: ts.FunctionDeclaration): string { + if (node.decorators && node.decorators[0].expression && node.decorators[0].expression.expression && node.decorators[0].expression.expression.escapedText.toString() === CHECK_COMPONENT_EXTEND_DECORATOR && node.decorators[0].expression.arguments) { return node.decorators[0].expression.arguments[0].escapedText.toString(); diff --git a/compiler/src/validate_ui_syntax.ts b/compiler/src/validate_ui_syntax.ts index 882859c5f..a5d545c3f 100644 --- a/compiler/src/validate_ui_syntax.ts +++ b/compiler/src/validate_ui_syntax.ts @@ -62,6 +62,7 @@ import { import { projectConfig } from '../main'; import { collectExtend } from './process_ui_syntax'; import { importModuleCollection } from "./ets_checker"; +import { isExtendFunction } from "./process_ui_syntax"; export interface ComponentCollection { entryComponent: string; @@ -300,6 +301,10 @@ function visitAllNode(node: ts.Node, sourceFileNode: ts.SourceFile, allComponent if (ts.isMethodDeclaration(node) && hasDecorator(node, COMPONENT_BUILDER_DECORATOR)) { CUSTOM_BUILDER_METHOD.add(node.name.getText()); } + if (ts.isFunctionDeclaration(node) && isExtendFunction(node)) { + let componentName: string = isExtendFunction(node); + collectExtend(EXTEND_ATTRIBUTE, componentName, node.name.getText()); + } node.getChildren().forEach((item: ts.Node) => visitAllNode(item, sourceFileNode, allComponentNames, log)); } -- Gitee