1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15import { Comment } from '../../../typedef/parser/Comment'; 16import { tagsArrayOfOrder, officialTagArr, CommonFunctions } from '../../../utils/checkUtils'; 17import { ErrorMessage, ErrorTagFormat } from '../../../typedef/checker/result_type'; 18 19export class TagNameCheck { 20 /** 21 * check jsdoc tag name. 22 * @param { Comment.JsDocInfo } apiJsdoc 23 * @returns { ErrorTagFormat } 24 */ 25 static tagNameCheck(apiJsdoc: Comment.JsDocInfo): ErrorTagFormat { 26 const tagNameCheckResult: ErrorTagFormat = { 27 state: true, 28 errorInfo: '', 29 }; 30 const legalTagArr: string[] = tagsArrayOfOrder.concat(officialTagArr); 31 const tagsName: Comment.CommentTag[] | undefined = apiJsdoc.tags; 32 if (tagsName === undefined) { 33 return tagNameCheckResult; 34 } 35 tagsName.forEach((tag) => { 36 if (!legalTagArr.includes(tag.tag)) { 37 tagNameCheckResult.state = false; 38 tagNameCheckResult.errorInfo = CommonFunctions.createErrorInfo(ErrorMessage.ERROR_LABELNAME, [tag.tag]); 39 } 40 }); 41 return tagNameCheckResult; 42 } 43} 44