Lines Matching refs:node
276 export function isObservedClass(node: ts.Node): boolean {
277 if (ts.isClassDeclaration(node) && hasDecorator(node, COMPONENT_OBSERVED_DECORATOR)) {
283 export function isCustomDialogClass(node: ts.Node): boolean {
284 if (ts.isStructDeclaration(node) && hasDecorator(node, COMPONENT_DECORATOR_CUSTOM_DIALOG)) {
296 …component: ts.Identifier, log: LogInfo[], sourceFile: ts.SourceFile, node: ts.StructDeclaration): …
308 checkEntryComponent(node, log, sourceFile);
311 componentCollection.entryComponentPos = node.getStart();
352 function checkConcurrentDecorator(node: ts.FunctionDeclaration | ts.MethodDeclaration, log: LogInfo…
356 addLog(LogType.ERROR, message, node.decorators!.pos, log, sourceFile);
358 if (ts.isMethodDeclaration(node)) {
360 addLog(LogType.ERROR, message, node.decorators!.pos, log, sourceFile);
362 if (node.asteriskToken) {
365 node.modifiers && (hasAsync = node.modifiers.some(checkAsyncModifier));
368 addLog(LogType.ERROR, message, node.decorators!.pos, log, sourceFile);
372 function collectLocalStorageName(node: ts.Decorator): void {
373 if (node && node.expression && ts.isCallExpression(node.expression)) {
374 if (node.expression.arguments && node.expression.arguments.length) {
375 node.expression.arguments.forEach((item: ts.Node, index: number) => {
403 function visitAllNode(node: ts.Node, sourceFileNode: ts.SourceFile, allComponentNames: Set<string>,
405 if (ts.isStructDeclaration(node) && node.name && ts.isIdentifier(node.name)) {
407 …collectComponentProps(node, propertyInitializeInEntry(fileQuery, node.name.escapedText.toString())…
409 if (ts.isMethodDeclaration(node) || ts.isFunctionDeclaration(node)) {
411 if (hasDecorator(node, COMPONENT_BUILDER_DECORATOR)) {
412 CUSTOM_BUILDER_METHOD.add(node.name.getText());
413 if (ts.isFunctionDeclaration(node)) {
414 GLOBAL_CUSTOM_BUILDER_METHOD.add(node.name.getText());
416 INNER_CUSTOM_BUILDER_METHOD.add(node.name.getText());
418 } else if (ts.isFunctionDeclaration(node) && isExtendFunction(node, extendResult)) {
420 collectExtend(EXTEND_ATTRIBUTE, extendResult.componentName, node.name.getText());
424 extendResult.componentName, node.name.getText());
426 } else if (hasDecorator(node, COMPONENT_STYLES_DECORATOR)) {
427 if (ts.isBlock(node.body) && node.body.statements) {
428 if (ts.isFunctionDeclaration(node)) {
429 GLOBAL_STYLE_FUNCTION.set(node.name.getText(), node.body);
431 INNER_STYLE_FUNCTION.set(node.name.getText(), node.body);
433 STYLES_ATTRIBUTE.add(node.name.getText());
434 BUILDIN_STYLE_NAMES.add(node.name.getText());
437 if (hasDecorator(node, COMPONENT_CONCURRENT_DECORATOR)) {
439 checkConcurrentDecorator(node, log, sourceFileNode);
442 if (ts.isIdentifier(node) && (ts.isDecorator(node.parent) ||
443 (ts.isCallExpression(node.parent) && ts.isDecorator(node.parent.parent)))) {
444 const decoratorName: string = node.escapedText.toString();
445 validateStructDecorator(sourceFileNode, node, log, structContext, decoratorName);
446 validateMethodDecorator(sourceFileNode, node, log, structContext, decoratorName);
448 …node.getChildren().forEach((item: ts.Node) => visitAllNode(item, sourceFileNode, allComponentNames,
453 function validateStructDecorator(sourceFileNode: ts.SourceFile, node: ts.Identifier, log: LogInfo[],
457 addLog(LogType.ERROR, message, node.pos, log, sourceFileNode);
461 function validateMethodDecorator(sourceFileNode: ts.SourceFile, node: ts.Identifier, log: LogInfo[],
464 if (ts.isMethodDeclaration(node.parent.parent) ||
465 (ts.isDecorator(node.parent.parent) && ts.isMethodDeclaration(node.parent.parent.parent))) {
473 addLog(LogType.ERROR, message, node.pos, log, sourceFileNode);
479 node: ts.EtsComponentExpression,
484 if (ts.isIdentifier(node.expression)) {
485 checkNoChildComponent(node, sourceFileNode, log);
486 checkOneChildComponent(node, allComponentNames, sourceFileNode, log);
487 checkSpecificChildComponent(node, allComponentNames, sourceFileNode, log);
496 function checkNoChildComponent(node: ts.EtsComponentExpression, sourceFileNode: ts.SourceFile, log:…
498 if (hasChild(node, isCheckType)) {
499 const componentName: string = (node.expression as ts.Identifier).escapedText.toString();
500 const pos: number = node.expression.getStart();
509 function hasChild(node: ts.EtsComponentExpression, isCheckType: ParamType): boolean {
510 const nodeName: ts.Identifier = node.expression as ts.Identifier;
511 …if ((AUTOMIC_COMPONENT.has(nodeName.escapedText.toString()) || judgeComponentType(nodeName, node, …
512 getNextNode(node)) {
542 function getNextNode(node: ts.EtsComponentExpression): ts.Block {
543 if (node.body && ts.isBlock(node.body)) {
544 const statementsArray: ts.Block = node.body;
549 function checkOneChildComponent(node: ts.EtsComponentExpression, allComponentNames: Set<string>,
552 if (hasNonSingleChild(node, allComponentNames, isCheckType)) {
553 const componentName: string = (node.expression as ts.Identifier).escapedText.toString();
554 const pos: number = node.expression.getStart();
563 function hasNonSingleChild(node: ts.EtsComponentExpression, allComponentNames: Set<string>,
565 const nodeName: ts.Identifier = node.expression as ts.Identifier;
566 const BlockNode: ts.Block = getNextNode(node);
567 …_COMPONENT.has(nodeName.escapedText.toString()) || !judgeComponentType(nodeName, node, isCheckType)
621 function isComponent(node: ts.EtsComponentExpression | ts.CallExpression, allComponentNames: Set<st…
622 if (ts.isIdentifier(node.expression) &&
623 allComponentNames.has(node.expression.escapedText.toString())) {
629 function isForEachComponent(node: ts.EtsComponentExpression | ts.CallExpression): boolean {
630 if (ts.isIdentifier(node.expression)) {
631 const componentName: string = node.expression.escapedText.toString();
644 function getStatementCount(node: ts.Node, allComponentNames: Set<string>): number {
646 if (!node) {
648 } else if (ts.isBlock(node)) {
649 maxCount = getBlockChildrenCount(node, allComponentNames);
650 } else if (ts.isIfStatement(node)) {
651 maxCount = getIfChildrenCount(node, allComponentNames);
652 } else if (ts.isExpressionStatement(node) && ts.isEtsComponentExpression(node.expression) &&
653 isForEachComponent(node.expression)) {
655 } else if (ts.isExpressionStatement(node) && ts.isEtsComponentExpression(node.expression) &&
656 !isForEachComponent(node.expression) && isComponent(node.expression, allComponentNames)) {
662 function checkSpecificChildComponent(node: ts.EtsComponentExpression, allComponentNames: Set<string…
664 if (hasNonspecificChild(node, allComponentNames)) {
665 const componentName: string = (node.expression as ts.Identifier).escapedText.toString();
666 const pos: number = node.expression.getStart();
675 function hasNonspecificChild(node: ts.EtsComponentExpression,
677 const nodeName: ts.Identifier = node.expression as ts.Identifier;
679 const blockNode: ts.Block = getNextNode(node);
730 function isNonspecificChildIf(node: ts.IfStatement, specificChildSet: Set<string>,
732 return isNonspecificChildIfStatement(node.thenStatement, specificChildSet, allComponentNames) ||
733 isNonspecificChildIfStatement(node.elseStatement, specificChildSet, allComponentNames);
736 function isNonspecificChildForEach(node: ts.EtsComponentExpression, specificChildSet: Set<string>,
738 if (ts.isCallExpression(node) && node.arguments &&
739 node.arguments.length > 1 && ts.isArrowFunction(node.arguments[1])) {
740 const arrowFunction: ts.ArrowFunction = node.arguments[1] as ts.ArrowFunction;
765 function isNonspecificChildNonForEach(node: ts.EtsComponentExpression,
767 if (ts.isIdentifier(node.expression) &&
768 !specificChildSet.has(node.expression.escapedText.toString())) {
774 function isNonspecificChildIfStatement(node: ts.Node, specificChildSet: Set<string>,
776 if (!node) {
779 if (ts.isBlock(node) && isNonspecificChildBlock(node, specificChildSet, allComponentNames)) {
782 if (ts.isIfStatement(node) && isNonspecificChildIf(node, specificChildSet, allComponentNames)) {
785 if (ts.isExpressionStatement(node) && ts.isEtsComponentExpression(node.expression) &&
786 isForEachComponent(node.expression) &&
787 isNonspecificChildForEach(node.expression, specificChildSet, allComponentNames)) {
790 if (ts.isExpressionStatement(node) && ts.isEtsComponentExpression(node.expression) &&
791 !isForEachComponent(node.expression) && isComponent(node.expression, allComponentNames) &&
792 isNonspecificChildNonForEach(node.expression, specificChildSet)) {
798 function collectComponentProps(node: ts.StructDeclaration, judgeInitializeInEntry: boolean): void {
799 const componentName: string = node.name.getText();
800 const ComponentSet: IComponentSet = getComponentSet(node, judgeInitializeInEntry);
818 export function getComponentSet(node: ts.StructDeclaration, judgeInitializeInEntry: boolean): IComp…
834 traversalComponentProps(node, judgeInitializeInEntry, properties, regulars, states, links, props,
843 function traversalComponentProps(node: ts.StructDeclaration, judgeInitializeInEntry: boolean,
850 if (node.members) {
852 node.members.forEach(item => {
877 classMethodCollection.set(node.name.getText(), currentMethodCollection);
879 isStaticViewCollection.set(node.name.getText(), isStatic);
882 function collectionStates(node: ts.Decorator, judgeInitializeInEntry: boolean, decorator: string, n…
923 pos: node.getStart()
929 collectionlocalStorageParam(node, name, localStorageLink);
932 collectionlocalStorageParam(node, name, localStorageProp);
937 function collectionlocalStorageParam(node: ts.Decorator, name: string,
940 if (node && ts.isCallExpression(node.expression) && node.expression.arguments &&
941 node.expression.arguments.length && ts.isStringLiteral(node.expression.arguments[0])) {
943 node.expression.arguments[0].getText().replace(/\"|'/g, '')));
1226 function checkEntryComponent(node: ts.StructDeclaration, log: LogInfo[], sourceFile: ts.SourceFile)…
1227 if (node.modifiers) {
1228 for (let i = 0; i < node.modifiers.length; i++) {
1229 if (node.modifiers[i].kind === ts.SyntaxKind.ExportKeyword) {
1232 addLog(LogType.WARN, message, node.getStart(), log, sourceFile);
1239 function validateStateVariable(node: ts.MethodDeclaration): void {
1240 if (node.decorators && node.decorators.length) {
1241 for (let i = 0; i < node.decorators.length; i++) {
1242 const decoratorName: string = node.decorators[i].getText().replace(/\(.*\)$/,'').trim();
1245 node.decorators[i].getStart(), decoratorName);
1250 message: `'${node.decorators[i].getText()}' can not decorate the method.`,
1251 pos: node.decorators[i].getStart()