From b696097a01fd745f5b0b37d9b42c2e41a341a37d Mon Sep 17 00:00:00 2001 From: gou-jingjing Date: Mon, 10 Feb 2025 20:05:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99function=E5=A2=9E=E5=8A=A0export?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: gou-jingjing --- src/vscode_plugin/src/gen/gencpp.ts | 20 +++++++++--------- src/vscode_plugin/src/gen/gendts.ts | 28 +++++++++++++------------- src/vscode_plugin/src/gen/gendtscpp.ts | 20 +++++++++--------- src/vscode_plugin/src/gen/genhdf.ts | 2 +- src/vscode_plugin/src/gen/gensa.ts | 2 +- src/vscode_plugin/src/gen/gentest.ts | 12 +++++------ 6 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/vscode_plugin/src/gen/gencpp.ts b/src/vscode_plugin/src/gen/gencpp.ts index f923b2ce..1572f739 100644 --- a/src/vscode_plugin/src/gen/gencpp.ts +++ b/src/vscode_plugin/src/gen/gencpp.ts @@ -60,7 +60,7 @@ export function generateDirectFunction(funcInfo: FuncInfo, rawFileName: string, return bodyReplace; } -function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { +export function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { let funcInfoParams = genFuncInfoParams(funcInfo); let bodyReplace = replaceAll(napiFuncCppTemplate, '[func_name_replace]', funcInfo.genName); bodyReplace = replaceAll(bodyReplace, '[get_error_msg_tag]', funcInfo.genName); @@ -71,7 +71,7 @@ function getReplaceInfo(funcInfo: FuncInfo, hFileName: string) { return bodyReplace; } -function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplace: string) { +export function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplace: string) { if (funcInfo.params.length !== 0) { bodyReplace = replaceAll(bodyReplace, '[func_getParam_replace]', genParamReplace); } else { @@ -80,14 +80,14 @@ function getBodyReplace2(funcInfo: FuncInfo, bodyReplace: string, genParamReplac return bodyReplace; } -function getGenParamReplace(funcInfo: FuncInfo, paramGenResult: string) { +export function getGenParamReplace(funcInfo: FuncInfo, paramGenResult: string) { let genParamReplace = replaceAll(funcGetParamTemplate, '[param_length]', 'PARAMS' + funcInfo.params.length); genParamReplace = replaceAll(genParamReplace, '[func_name_replace]', funcInfo.genName); genParamReplace = replaceAll(genParamReplace, '[getAllParam_replace]', paramGenResult); return genParamReplace; } -function genFuncInfoParams(funcInfo: FuncInfo) { +export function genFuncInfoParams(funcInfo: FuncInfo) { let funcInfoParams = ''; let funcInfoParamTemp = '[paramName]: [paramType]; '; for (let i = 0; i < funcInfo.params.length; i++) { @@ -99,7 +99,7 @@ function genFuncInfoParams(funcInfo: FuncInfo) { } -function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { +export function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { let paramGenResult = ''; // napi 获取参数 for (let i = 0; i < funcInfo.params.length; i++) { @@ -109,7 +109,7 @@ function genParamInfo(funcInfo: FuncInfo, typeList: TypeList[]) { } -function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typeList: TypeList[]) { +export function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typeList: TypeList[]) { let paramType = funcInfo.params[i].type === 'size_t' ? 'int64_t' : funcInfo.params[i].type; // 去除const 和 * paramType = paramType.replace('const', '').replace('*', '').trim(); @@ -143,14 +143,14 @@ function getParamJs2C(funcInfo: FuncInfo, i: number, paramGenResult: string, typ return paramGenResult; } -function getParamGenCon(getParamContent: string, i: number, paramName: string, paramGen: string) { +export function getParamGenCon(getParamContent: string, i: number, paramName: string, paramGen: string) { let getParam = replaceAll(getParamContent, '[param_index_replace]', 'PARAMS' + i); getParam = replaceAll(getParam, '[param_name_replace]', paramName); paramGen = replaceAll(paramGen, '[getParam_replace]', getParam); return paramGen; } -function returnTypeC2Js(returnName: string, retType: string, retGenResult: string, retObjInfo: RetObjInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { +export function returnTypeC2Js(returnName: string, retType: string, retGenResult: string, retObjInfo: RetObjInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { if (!retObjInfo.flag) { retObjInfo.objName = returnName; } @@ -191,7 +191,7 @@ function returnTypeC2Js(returnName: string, retType: string, retGenResult: strin return retGenResult; } -function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, returnName: string) { +export function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, returnName: string) { if (retObjInfo.objName !== '') { retGenResult += replaceAll(objectRet, '[return_name_replace]', returnName); let setRetPropertyObj = replaceAll(objectTosetRet, '[set_objname_replace]', retObjInfo.objName); @@ -202,7 +202,7 @@ function getObjRetGenResult(retObjInfo: RetObjInfo, retGenResult: string, return return retGenResult; } -function getRetTypeContent(retTypeTemplate: string, returnName: string, retGenResult: string, +export function getRetTypeContent(retTypeTemplate: string, returnName: string, retGenResult: string, retObjInfo: RetObjInfo, setRetProperty: string) { let funcReturnType = replaceAll(retTypeTemplate, '[return_name_replace]', returnName); retGenResult += funcReturnType; diff --git a/src/vscode_plugin/src/gen/gendts.ts b/src/vscode_plugin/src/gen/gendts.ts index 4c8893be..cb27d9d5 100644 --- a/src/vscode_plugin/src/gen/gendts.ts +++ b/src/vscode_plugin/src/gen/gendts.ts @@ -86,7 +86,7 @@ export function isNumberType(cType: string) { } } -function basicC2js(cType: string) { +export function basicC2js(cType: string) { let jsType = ''; if (isStringType(cType)) { jsType = 'string'; @@ -100,13 +100,13 @@ function basicC2js(cType: string) { return jsType; } -function getInterFuncRetType(str: string) { +export function getInterFuncRetType(str: string) { let strArr = str.split(' '); // let retType = getJsTypeFromC(replaceAll(strArr[0], '*', '')); return replaceAll(strArr[0], '*', ''); } -function getInterFuncName(str: string) { +export function getInterFuncName(str: string) { let strArr = str.split(' '); return replaceAll(strArr[1], '*', ''); } @@ -148,7 +148,7 @@ export function getJsTypeFromC(cType: string) { return jsType; } -function getInterFuncParams(str: string, paramObj: ParamObj[]) { +export function getInterFuncParams(str: string, paramObj: ParamObj[]) { let paramsStr = ''; let paramObject: ParamObj = { name: '', @@ -172,7 +172,7 @@ function getInterFuncParams(str: string, paramObj: ParamObj[]) { return paramsStr; } -function isJsBasicType(type: string) { +export function isJsBasicType(type: string) { if (type === 'number' || type === 'string' || type === 'boolean') { return true; } else { @@ -180,7 +180,7 @@ function isJsBasicType(type: string) { } } -function removeMarco(type: string) { +export function removeMarco(type: string) { // 去掉宏定义 if (type) { let leftCraftIndex = type.indexOf('('); @@ -193,7 +193,7 @@ function removeMarco(type: string) { return type; } -function createParam(parseParamInfo: ParamObj) { +export function createParam(parseParamInfo: ParamObj) { let tsParam: ParamObj = { name: '', type: '', @@ -213,7 +213,7 @@ function createParam(parseParamInfo: ParamObj) { return [tsParam, cppParam]; } -function createFuncInfo(parseFuncInfo: FuncObj) { +export function createFuncInfo(parseFuncInfo: FuncObj) { let funcInfo: FuncInfo = { name: '', params: [], @@ -406,7 +406,7 @@ export function getInterfaceBody(testType: string, interfaceList: InterfaceList[ } //---------------------------- -function transTskey2Ckey(key: string) { +export function transTskey2Ckey(key: string) { for(const keyItem of dts2cpp_key) { for(const str of keyItem.keys) { if (key.includes(str)) { @@ -421,7 +421,7 @@ function transTskey2Ckey(key: string) { return key; } -function getDtsEnum(rootInfo: GenInfo) { +export function getDtsEnum(rootInfo: GenInfo) { let enumList = rootInfo.parseObj.enums; let out = ''; for(const enumItem of enumList) { @@ -438,7 +438,7 @@ function getDtsEnum(rootInfo: GenInfo) { return out; } -function getDtsFunction(rootInfo: GenInfo) { +export function getDtsFunction(rootInfo: GenInfo) { let funcList = rootInfo.parseObj.funcs; let out = ''; for(const funcItem of funcList) { @@ -470,7 +470,7 @@ function getDtsFunction(rootInfo: GenInfo) { return out; } -function getDtsClasses(rootInfo: GenInfo) { +export function getDtsClasses(rootInfo: GenInfo) { let classList = rootInfo.parseObj.classes; let out = ''; for(const classItem of classList) { @@ -494,7 +494,7 @@ function getDtsClasses(rootInfo: GenInfo) { return out; } -function getDtsStructs(rootInfo: GenInfo) { +export function getDtsStructs(rootInfo: GenInfo) { let structList = rootInfo.parseObj.structs; let out = ''; for(const structItem of structList) { @@ -520,7 +520,7 @@ function getDtsStructs(rootInfo: GenInfo) { return out; } -function getDtsUnions(rootInfo: GenInfo) { +export function getDtsUnions(rootInfo: GenInfo) { let unionList = rootInfo.parseObj.unions; let out = ''; for(const unionItem of unionList) { diff --git a/src/vscode_plugin/src/gen/gendtscpp.ts b/src/vscode_plugin/src/gen/gendtscpp.ts index 49926b95..69ab93e4 100644 --- a/src/vscode_plugin/src/gen/gendtscpp.ts +++ b/src/vscode_plugin/src/gen/gendtscpp.ts @@ -36,7 +36,7 @@ interface GenResult { napiCppContent: string } -function genHFunction(func: FuncInfo, rawFileName: string) { +export function genHFunction(func: FuncInfo, rawFileName: string) { let funcParams = ''; for (let i = 0; i < func.params.length; ++i) { funcParams += i > 0 ? ', ' : ''; @@ -52,7 +52,7 @@ function genHFunction(func: FuncInfo, rawFileName: string) { return hContent; } -function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: DtscppRootInfo) { +export function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: DtscppRootInfo) { let upperFileName = rootInfo.fileName.toLocaleUpperCase(); fileContent = replaceAll(fileContent, '[fileName]', rootInfo.fileName); @@ -66,7 +66,7 @@ function replaceContent(fileContent: string, funcContent: GenResult, rootInfo: D return fileContent; } -function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootInfo, out: string) +export function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootInfo, out: string) { let dirPath = path.join(out, dirItem.name); let lowerFileName = rootInfo.fileName.toLocaleLowerCase(); @@ -95,7 +95,7 @@ function genDir(dirItem: DirTemp, funcContent: GenResult, rootInfo: DtscppRootIn }) } -function generateFuncCode(rootInfo: DtscppRootInfo) { +export function generateFuncCode(rootInfo: DtscppRootInfo) { let genResult: GenResult = { dtsContent: '', testContet: '', @@ -152,7 +152,7 @@ export function genCppFile(parseObj: ParseObj, tsFilePath: string, out: string) console.info('generate success!') } -function generateFunctions(parseObj: ParseObj, tsFilePath: string) { +export function generateFunctions(parseObj: ParseObj, tsFilePath: string) { let cppfunctions: FuncInfo[] = getFunctions(parseObj); let typeList: TypeList[] = getTypes(parseObj); let interfaceList: InterfaceList[] = getInterfaces(parseObj); @@ -180,7 +180,7 @@ function generateFunctions(parseObj: ParseObj, tsFilePath: string) { } // 将interface列表中的js type全部转换为c type -function getInterfaces(parseObj: ParseObj) { +export function getInterfaces(parseObj: ParseObj) { return parseObj.classes.map(cls => { const getParams = (variables: ParamObj[]) => variables.map(variable => ({ @@ -207,7 +207,7 @@ function getInterfaces(parseObj: ParseObj) { }); } -function getTypes(parseObj: ParseObj) { +export function getTypes(parseObj: ParseObj) { let typeList: TypeList[] = []; for (let i = 0; i < parseObj.types!.length; i++) { let typeObj: TypeList = { @@ -219,7 +219,7 @@ function getTypes(parseObj: ParseObj) { return typeList; } -function getFunctions(parseObj: ParseObj) { +export function getFunctions(parseObj: ParseObj) { let cppfunctions: FuncInfo[] = []; for (let i = 0; i < parseObj.funcs.length; i++) { let cppFuncInfo: FuncInfo = { @@ -241,7 +241,7 @@ function getFunctions(parseObj: ParseObj) { return cppfunctions; } -function getCTypeFromJS(type: string) { +export function getCTypeFromJS(type: string) { let cType = type; for (let index = 0; index < tsTransferType.length; index++) { if (type === tsTransferType[index].fromType) { @@ -251,7 +251,7 @@ function getCTypeFromJS(type: string) { return cType; } -function createFuncParam(params: ParamObj) { +export function createFuncParam(params: ParamObj) { let cppParam: ParamObj = { name: '', type: '', diff --git a/src/vscode_plugin/src/gen/genhdf.ts b/src/vscode_plugin/src/gen/genhdf.ts index 84f69bf5..9799ab5d 100644 --- a/src/vscode_plugin/src/gen/genhdf.ts +++ b/src/vscode_plugin/src/gen/genhdf.ts @@ -36,7 +36,7 @@ const fileHandlers: { [key: string]: Function } = { }; // 循环写入文件, 并将funcContent的内容写入模板 -function genDir(dirItem: DirTemp, rootInfo: HdfRootInfo, out: string) { +export function genDir(dirItem: DirTemp, rootInfo: HdfRootInfo, out: string) { let dirPath = path.join(out, dirItem.name.replace('[driverName]', rootInfo.driverName)); // 创建目录 if (!fs.existsSync(dirPath)) { diff --git a/src/vscode_plugin/src/gen/gensa.ts b/src/vscode_plugin/src/gen/gensa.ts index ba2a5e09..cd011fdd 100644 --- a/src/vscode_plugin/src/gen/gensa.ts +++ b/src/vscode_plugin/src/gen/gensa.ts @@ -46,7 +46,7 @@ const fileHandlers: { [key: string]: Function } = { }; // 遍历数据结构,拿到模板内容,并生成文件内容 -function genDir(dirItem: DirTemp, rootInfo: ServiceRootInfo, out: string) { +export function genDir(dirItem: DirTemp, rootInfo: ServiceRootInfo, out: string) { let dirPath = path.join(out, dirItem.name.replace('[serviceName]', rootInfo.serviceName)); // 创建目录 if (!fs.existsSync(dirPath)) { diff --git a/src/vscode_plugin/src/gen/gentest.ts b/src/vscode_plugin/src/gen/gentest.ts index 03dcebe7..fdcffb78 100644 --- a/src/vscode_plugin/src/gen/gentest.ts +++ b/src/vscode_plugin/src/gen/gentest.ts @@ -50,7 +50,7 @@ export function generateFuncTestCase(funcInfo: FuncInfo, rawFileName: string, t return funcTestContent; } -function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { +export function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList: InterfaceList[]) { let funcParamDefine = ''; let funcParamUse = ''; let funcInfoParams = ''; @@ -86,7 +86,7 @@ function genInitTestfunc(funcInfo: FuncInfo, typeList: TypeList[], interfaceList return { funcParamUse, funcParamDefine, funcInfoParams }; } -function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, typeList: TypeList[]) { +export function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, typeList: TypeList[]) { let cTypeDefine = getTypeBody(testType, typeList); let typeDefType = getJsTypeFromC(cTypeDefine as string); // genType @@ -103,7 +103,7 @@ function getTypeDefine(testType: string, funcParamDefine: string, funcInfo: Func return [funcParamDefine, funcParamUse]; } -function genInterFuncParamStr(param: ParamObj[]) { +export function genInterFuncParamStr(param: ParamObj[]) { let paramsStr = ''; for(let i = 0; i < param.length; i++) { let rawType = getJsTypeFromC(param[i].type); @@ -115,7 +115,7 @@ function genInterFuncParamStr(param: ParamObj[]) { return paramsStr; } -function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, interfaceList: InterfaceList[]) { +export function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: FuncInfo, i: number, funcParamUse: string, interfaceList: InterfaceList[]) { let objValue = getInterfaceBody(testType, interfaceList); let objTestData = 'let %s:testNapi.%s = { '; let interParams = objValue!.params; @@ -166,7 +166,7 @@ function getInterfaceDefine(testType: string, funcParamDefine: string, funcInfo: return [funcParamDefine, funcParamUse]; } -function getTestType(type: string) { +export function getTestType(type: string) { // 去掉const 和 * type = replaceAll(type,'const', ''); type = replaceAll(type, '*', '').trim(); @@ -183,7 +183,7 @@ function getTestType(type: string) { return type; } -function getJsType(type: string) { +export function getJsType(type: string) { type = replaceAll(type,'const', ''); type = replaceAll(type, '*', '').trim(); if (isNumberType(type) || isStringType(type) || isBoolType(type) || type === 'void') { -- Gitee