api-typescript-generator
Advanced tools
Comparing version 2.4.8 to 2.4.9
@@ -433,3 +433,9 @@ "use strict"; | ||
} | ||
const operationMethod = (0, types_1.classMethod)('method', (0, types_1.identifier)(operationName), argument.properties.length > 0 ? [argument] : [], (0, types_1.blockStatement)([ | ||
const operationMethod = (0, types_1.classMethod)('method', (0, types_1.identifier)(operationName), argument.properties.length > 0 | ||
? [ | ||
(0, type_utils_1.isAssignableToEmptyObject)(argument.typeAnnotation.typeAnnotation) | ||
? (0, types_1.assignmentPattern)(argument, (0, types_1.objectExpression)([])) | ||
: argument | ||
] | ||
: [], (0, types_1.blockStatement)([ | ||
(0, types_1.returnStatement)(operationReturn.wrapResultExpression((0, types_1.callExpression)((0, types_1.memberExpression)((0, types_1.callExpression)((0, types_1.memberExpression)((0, types_1.thisExpression)(), (0, types_1.identifier)('getClientInstance')), []), (0, types_1.identifier)('request')), [requestObject]))) | ||
@@ -436,0 +442,0 @@ ])); |
@@ -7,1 +7,2 @@ import { TSIntersectionType, TSType, TSUnionType } from '@babel/types'; | ||
export declare function simplifyIntersectionTypeIfPossible(intersection: TSIntersectionType): TSType; | ||
export declare function isAssignableToEmptyObject(type: TSType): boolean; |
@@ -26,3 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.simplifyIntersectionTypeIfPossible = exports.mergeTypes = exports.getUserFreiendlySchemaName = exports.simplifyUnionTypeIfPossible = void 0; | ||
exports.isAssignableToEmptyObject = exports.simplifyIntersectionTypeIfPossible = exports.mergeTypes = exports.getUserFreiendlySchemaName = exports.simplifyUnionTypeIfPossible = void 0; | ||
const types_1 = require("@babel/types"); | ||
@@ -262,1 +262,22 @@ const R = __importStar(require("ramda")); | ||
exports.simplifyIntersectionTypeIfPossible = simplifyIntersectionTypeIfPossible; | ||
function isAssignableToEmptyObject(type) { | ||
if ((0, types_1.isTSTypeLiteral)(type)) { | ||
for (const member of type.members) { | ||
if ((0, types_1.isTSCallSignatureDeclaration)(member) || (0, types_1.isTSConstructSignatureDeclaration)(member)) { | ||
return false; | ||
} | ||
else if (((0, types_1.isTSMethodSignature)(member) || (0, types_1.isTSPropertySignature)(member)) && !member.optional) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} | ||
else if ((0, types_1.isTSIntersectionType)(type)) { | ||
return type.types.every(isAssignableToEmptyObject); | ||
} | ||
else if ((0, types_1.isTSUnionType)(type)) { | ||
return type.types.some(isAssignableToEmptyObject); | ||
} | ||
return false; | ||
} | ||
exports.isAssignableToEmptyObject = isAssignableToEmptyObject; |
{ | ||
"name": "api-typescript-generator", | ||
"version": "2.4.8", | ||
"version": "2.4.9", | ||
"description": "Generates OpenAPI TypeScript client. Extremely fast and flexible.", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
@@ -47,3 +47,3 @@ import { | ||
import {applyEntityNameCase} from '../../utils/string-utils'; | ||
import {getUserFreiendlySchemaName, mergeTypes} from '../../utils/type-utils'; | ||
import {getUserFreiendlySchemaName, isAssignableToEmptyObject, mergeTypes} from '../../utils/type-utils'; | ||
import {objectPropertyKey, valueToAstExpression} from '../common'; | ||
@@ -624,3 +624,9 @@ import { | ||
identifier(operationName), | ||
argument.properties.length > 0 ? [argument] : [], | ||
argument.properties.length > 0 | ||
? [ | ||
isAssignableToEmptyObject(argument.typeAnnotation.typeAnnotation) | ||
? assignmentPattern(argument, objectExpression([])) | ||
: argument | ||
] | ||
: [], | ||
blockStatement([ | ||
@@ -627,0 +633,0 @@ returnStatement( |
@@ -6,4 +6,7 @@ import { | ||
isStringLiteral, | ||
isTSCallSignatureDeclaration, | ||
isTSConstructSignatureDeclaration, | ||
isTSIntersectionType, | ||
isTSLiteralType, | ||
isTSMethodSignature, | ||
isTSPropertySignature, | ||
@@ -277,1 +280,19 @@ isTSTypeLiteral, | ||
} | ||
export function isAssignableToEmptyObject(type: TSType): boolean { | ||
if (isTSTypeLiteral(type)) { | ||
for (const member of type.members) { | ||
if (isTSCallSignatureDeclaration(member) || isTSConstructSignatureDeclaration(member)) { | ||
return false; | ||
} else if ((isTSMethodSignature(member) || isTSPropertySignature(member)) && !member.optional) { | ||
return false; | ||
} | ||
} | ||
return true; | ||
} else if (isTSIntersectionType(type)) { | ||
return type.types.every(isAssignableToEmptyObject); | ||
} else if (isTSUnionType(type)) { | ||
return type.types.some(isAssignableToEmptyObject); | ||
} | ||
return false; | ||
} |
755693
14351