UNPKG

@davstack/openapi-react-query-codegen

Version:

OpenAPI React Query Codegen using --useOptions (fork from @7nohe/openapi-react-query-codegen)

47 lines (46 loc) 4.41 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createUseMutation = void 0; const typescript_1 = __importDefault(require("typescript")); const common_1 = require("./common"); const createUseMutation = (node, className, method) => { const methodName = method.name?.getText(node); return typescript_1.default.factory.createVariableStatement([typescript_1.default.factory.createModifier(typescript_1.default.SyntaxKind.ExportKeyword)], typescript_1.default.factory.createVariableDeclarationList([ typescript_1.default.factory.createVariableDeclaration(typescript_1.default.factory.createIdentifier(`use${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`), undefined, undefined, typescript_1.default.factory.createArrowFunction(undefined, undefined, [ typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier('options'), typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier('Omit'), [ typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier('UseMutationOptions'), [ typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier('Awaited'), [ typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier('ReturnType'), [ typescript_1.default.factory.createTypeQueryNode(typescript_1.default.factory.createQualifiedName(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined), ]), ]), typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword), method.parameters.length !== 0 ? typescript_1.default.factory.createTypeReferenceNode(method.parameters[0].type?.getFullText(node) ?? 'any') : typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.VoidKeyword), typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword), ]), typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral('mutationFn')), ]), undefined), ], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier('useMutation'), undefined, [ typescript_1.default.factory.createArrowFunction(undefined, undefined, method.parameters.length !== 0 ? [ typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createObjectBindingPattern(method.parameters.map((param) => { return typescript_1.default.factory.createBindingElement(undefined, undefined, typescript_1.default.factory.createIdentifier(flattenObject(param.name.getText(node))), undefined); })), undefined, undefined, undefined), ] : [], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier(className), typescript_1.default.factory.createIdentifier(methodName)), undefined, method.parameters.map((params) => { return typescript_1.default.factory.createIdentifier(params.name.getText(node)); }))), typescript_1.default.factory.createIdentifier('options'), ]))), ], typescript_1.default.NodeFlags.Const)); }; exports.createUseMutation = createUseMutation; function flattenObject(str) { return str.replace('{', '').replace('}', ''); }