From 6ce998f25f70ba7a848197310b83d76fd4b62db4 Mon Sep 17 00:00:00 2001 From: fupengfei001 Date: Mon, 3 Apr 2023 11:33:19 +0800 Subject: [PATCH 1/5] fupengfei6@huawei.com Signed-off-by: fupengfei001 --- .../src/generate/generateCommonUtil.ts | 20 +++++++++++++++++ .../generatePropertySignatureDeclaration.ts | 22 ++++++++++++------- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/mock-generate/src/generate/generateCommonUtil.ts b/mock-generate/src/generate/generateCommonUtil.ts index 8d933828..a28275d0 100644 --- a/mock-generate/src/generate/generateCommonUtil.ts +++ b/mock-generate/src/generate/generateCommonUtil.ts @@ -346,3 +346,23 @@ export function generateSymbolIterator(methodEntity: MethodEntity): string { return iteratorMethod; } + +/** + * generate callback property + * @param kindName + * @returns + */ +export function getCallbackPropertyReturn(kindName: string): any { + const genericTypeName = kindName.split('<')[1].split('>')[0]; + if (genericTypeName === 'string') { + return `return ''`; + } else if (genericTypeName === 'number') { + return `return 0`; + } else if (genericTypeName === 'boolean') { + return `return true`; + } else if (genericTypeName === 'void') { + return ''; + } else { + return `genericTypeName === 'undefined' ? {} : genericTypeName`; + } +} \ No newline at end of file diff --git a/mock-generate/src/generate/generatePropertySignatureDeclaration.ts b/mock-generate/src/generate/generatePropertySignatureDeclaration.ts index c69fefba..85ce8bbf 100644 --- a/mock-generate/src/generate/generatePropertySignatureDeclaration.ts +++ b/mock-generate/src/generate/generatePropertySignatureDeclaration.ts @@ -17,7 +17,7 @@ import { SourceFile, SyntaxKind } from 'typescript'; import { PropertySignatureEntity } from '../declaration-node/propertySignatureDeclaration'; import { checkIsGenericSymbol, getCallbackStatement, getTheRealReferenceFromImport, - getWarnConsole, propertyTypeWhiteList + getWarnConsole, propertyTypeWhiteList, getCallbackPropertyReturn } from './generateCommonUtil'; /** @@ -46,15 +46,21 @@ export function generatePropertySignatureDeclaration(rootName: string, propertyS propertySignature.propertyTypeName === 'bool' || propertySignature.propertyTypeName === 'Data') { propertySignatureBody = `${propertySignature.propertyName}: '[PC Preview] unkonwn ${propertySignature.propertyName}',`; } else { - if (propertySignature.propertyTypeName.includes('<')) { - const preSplit = propertySignature.propertyTypeName.split('<'); - const genericArg = preSplit[preSplit.length - 1].split('>')[0]; - propertySignatureBody = `${propertySignature.propertyName}: ${genericArg},`; + if (propertySignature.propertyTypeName.includes('Callback') && propertySignature.propertyTypeName.includes('<') + && propertySignature.propertyTypeName.includes('>')) { + const retVal = getCallbackPropertyReturn(propertySignature.propertyTypeName); + propertySignatureBody = `${propertySignature.propertyName}: ()=>{ ${retVal} }`; } else { - if (propertyTypeWhiteList(propertySignature.propertyTypeName) === propertySignature.propertyTypeName) { - propertySignatureBody = `${propertySignature.propertyName}: ${getTheRealReferenceFromImport(sourceFile, propertySignature.propertyTypeName)},`; + if (propertySignature.propertyTypeName.includes('<')) { + const preSplit = propertySignature.propertyTypeName.split('<'); + const genericArg = preSplit[preSplit.length - 1].split('>')[0]; + propertySignatureBody = `${propertySignature.propertyName}: ${genericArg},`; } else { - propertySignatureBody = `${propertySignature.propertyName}: ${propertyTypeWhiteList(propertySignature.propertyTypeName)},`; + if (propertyTypeWhiteList(propertySignature.propertyTypeName) === propertySignature.propertyTypeName) { + propertySignatureBody = `${propertySignature.propertyName}: ${getTheRealReferenceFromImport(sourceFile, propertySignature.propertyTypeName)},`; + } else { + propertySignatureBody = `${propertySignature.propertyName}: ${propertyTypeWhiteList(propertySignature.propertyTypeName)},`; + } } } } -- Gitee From 6a19d30de8b14a7e45dca347cf96782efda3e08f Mon Sep 17 00:00:00 2001 From: fupengfei001 Date: Mon, 3 Apr 2023 11:42:00 +0800 Subject: [PATCH 2/5] fupengfei6@huawei.com Signed-off-by: fupengfei001 --- mock-generate/src/generate/generateCommonUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mock-generate/src/generate/generateCommonUtil.ts b/mock-generate/src/generate/generateCommonUtil.ts index a28275d0..ce8d8c2e 100644 --- a/mock-generate/src/generate/generateCommonUtil.ts +++ b/mock-generate/src/generate/generateCommonUtil.ts @@ -363,6 +363,6 @@ export function getCallbackPropertyReturn(kindName: string): any { } else if (genericTypeName === 'void') { return ''; } else { - return `genericTypeName === 'undefined' ? {} : genericTypeName`; + return `${genericTypeName} === 'undefined' ? {} : genericTypeName`; } } \ No newline at end of file -- Gitee From 5192eb3b2afc881cc69365819928d370caf4ce8c Mon Sep 17 00:00:00 2001 From: fupengfei001 Date: Mon, 3 Apr 2023 11:45:45 +0800 Subject: [PATCH 3/5] fupengfei6@huawei.com Signed-off-by: fupengfei001 --- mock-generate/src/generate/generateCommonUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mock-generate/src/generate/generateCommonUtil.ts b/mock-generate/src/generate/generateCommonUtil.ts index ce8d8c2e..b8f7c8f4 100644 --- a/mock-generate/src/generate/generateCommonUtil.ts +++ b/mock-generate/src/generate/generateCommonUtil.ts @@ -363,6 +363,6 @@ export function getCallbackPropertyReturn(kindName: string): any { } else if (genericTypeName === 'void') { return ''; } else { - return `${genericTypeName} === 'undefined' ? {} : genericTypeName`; + return `${genericTypeName} === 'undefined' ? {} : ${genericTypeName}`; } } \ No newline at end of file -- Gitee From e919fd4620ae0daec5384544be2841b4e58e2bc1 Mon Sep 17 00:00:00 2001 From: fupengfei001 Date: Mon, 3 Apr 2023 11:49:20 +0800 Subject: [PATCH 4/5] fupengfei6@huawei.com Signed-off-by: fupengfei001 --- mock-generate/src/generate/generateCommonUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mock-generate/src/generate/generateCommonUtil.ts b/mock-generate/src/generate/generateCommonUtil.ts index b8f7c8f4..963d3aa6 100644 --- a/mock-generate/src/generate/generateCommonUtil.ts +++ b/mock-generate/src/generate/generateCommonUtil.ts @@ -363,6 +363,6 @@ export function getCallbackPropertyReturn(kindName: string): any { } else if (genericTypeName === 'void') { return ''; } else { - return `${genericTypeName} === 'undefined' ? {} : ${genericTypeName}`; + return `return ${genericTypeName} === 'undefined' ? {} : ${genericTypeName}`; } } \ No newline at end of file -- Gitee From 85c7c9287d7565922bc9fe929fc95e0c37e039c2 Mon Sep 17 00:00:00 2001 From: fupengfei001 Date: Mon, 3 Apr 2023 12:04:02 +0800 Subject: [PATCH 5/5] fupengfei6@huawei.com Signed-off-by: fupengfei001 --- mock-generate/src/generate/generateCommonUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mock-generate/src/generate/generateCommonUtil.ts b/mock-generate/src/generate/generateCommonUtil.ts index 963d3aa6..bdc2431c 100644 --- a/mock-generate/src/generate/generateCommonUtil.ts +++ b/mock-generate/src/generate/generateCommonUtil.ts @@ -363,6 +363,6 @@ export function getCallbackPropertyReturn(kindName: string): any { } else if (genericTypeName === 'void') { return ''; } else { - return `return ${genericTypeName} === 'undefined' ? {} : ${genericTypeName}`; + return `return ${genericTypeName}`; } } \ No newline at end of file -- Gitee