UNPKG

rapini

Version:

Generate React Query hooks, SWR hooks, Axios requests and Typescript types from OpenAPI files

132 lines (131 loc) 6.88 kB
"use strict"; var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.makeQueries = void 0; var typescript_1 = __importDefault(require("typescript")); var util_1 = require("../common/util"); function makeQueries($refs, paths) { var properties = Object.entries(paths) .filter(function (_a) { var _b = __read(_a, 2), _ = _b[0], item = _b[1]; return !!(item === null || item === void 0 ? void 0 : item.get); }) .map(function (_a) { var _b = __read(_a, 2), pattern = _b[0], item = _b[1]; return makeProperty($refs, pattern, item.get, item.parameters); }); var requestsParam = typescript_1.default.factory.createParameterDeclaration( /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ typescript_1.default.factory.createIdentifier("requests"), /*questionToken*/ undefined, /*type*/ typescript_1.default.factory.createTypeReferenceNode( /*typeName*/ typescript_1.default.factory.createIdentifier("Requests"), /*typeArgs*/ undefined), /*initializer*/ undefined); return typescript_1.default.factory.createFunctionDeclaration( /*modifiers*/ undefined, /*asteriskToken*/ undefined, /*name*/ typescript_1.default.factory.createIdentifier("makeQueries"), /*typeParameters*/ undefined, /*parameters*/ [requestsParam], /*type*/ undefined, /*body*/ typescript_1.default.factory.createBlock([ typescript_1.default.factory.createReturnStatement( /*expression*/ typescript_1.default.factory.createAsExpression( /*expression*/ typescript_1.default.factory.createObjectLiteralExpression(properties, /*multiline*/ true), /*type*/ typescript_1.default.factory.createTypeReferenceNode( /*typeName*/ typescript_1.default.factory.createIdentifier("const"), /*typeArgs*/ undefined))), ], /*multiline*/ true)); } exports.makeQueries = makeQueries; function makeProperty($refs, pattern, get, pathParams) { if (!(get === null || get === void 0 ? void 0 : get.operationId)) { throw "Missing \"operationId\" from \"get\" request with pattern ".concat(pattern); } var normalizedOperationId = (0, util_1.normalizeOperationId)(get.operationId); var identifierName = "use".concat((0, util_1.capitalizeFirstLetter)(normalizedOperationId)); var params = (0, util_1.createParams)($refs, get, pathParams); return typescript_1.default.factory.createPropertyAssignment( /*name*/ typescript_1.default.factory.createIdentifier(identifierName), /*initializer*/ typescript_1.default.factory.createArrowFunction( /*modifiers*/ undefined, /*typeParams*/ undefined, __spreadArray(__spreadArray([], __read(params.map(function (p) { return p.arrowFuncParam; })), false), [ typescript_1.default.factory.createParameterDeclaration( /*modifiers*/ undefined, /*dotDotDotToken*/ undefined, /*name*/ typescript_1.default.factory.createIdentifier("options"), /*questionToken*/ typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.QuestionToken), /*type*/ typescript_1.default.factory.createTypeReferenceNode( /*typeName*/ typescript_1.default.factory.createIdentifier("SWRConfiguration"), /*typeArguments*/ [ typescript_1.default.factory.createTypeReferenceNode( /*typeName*/ typescript_1.default.factory.createIdentifier("Response"), /*typeArgs*/ [ typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(normalizedOperationId)), ]), typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword), ])), ], false), /*type*/ typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("SWRResponse"), [ typescript_1.default.factory.createTypeReferenceNode(typescript_1.default.factory.createIdentifier("Response"), [ typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral(normalizedOperationId)), ]), typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword), ]), /*equalsGreaterThanToken*/ typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), /*body*/ typescript_1.default.factory.createCallExpression( /*expression*/ typescript_1.default.factory.createIdentifier("useSWR"), /*typeArgs*/ undefined, /*args*/ [ typescript_1.default.factory.createCallExpression( /*expression*/ typescript_1.default.factory.createPropertyAccessExpression( /*expression*/ typescript_1.default.factory.createIdentifier("queryKeys"), /*name*/ typescript_1.default.factory.createIdentifier(normalizedOperationId)), /*typeArgs*/ undefined, /*args*/ params.map(function (p) { return p.name; })), typescript_1.default.factory.createArrowFunction( /*modifiers*/ undefined, /*typeParameters*/ undefined, /*parameters*/ [], /*type*/ undefined, /*equalsGreaterThanToken*/ typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), /*body*/ typescript_1.default.factory.createCallExpression( /*expression*/ typescript_1.default.factory.createPropertyAccessExpression( /*expression*/ typescript_1.default.factory.createIdentifier("requests"), /*name*/ typescript_1.default.factory.createIdentifier(normalizedOperationId)), /*typeArguments*/ undefined, /*args*/ params.map(function (p) { return p.name; }))), typescript_1.default.factory.createIdentifier("options"), ]))); }