UNPKG

@davstack/openapi-react-query-codegen

Version:

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

49 lines (48 loc) 2.49 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createExports = void 0; const typescript_1 = __importDefault(require("typescript")); const glob_1 = require("glob"); const path_1 = require("path"); const fs_1 = __importDefault(require("fs")); const createUseQuery_1 = require("./createUseQuery"); const createUseMutation_1 = require("./createUseMutation"); const createExports = (generatedClientsPath) => { const services = (0, glob_1.sync)((0, path_1.join)(generatedClientsPath, 'services', '*.ts').replace(/\\/g, '/')); const nodes = services.map((servicePath) => typescript_1.default.createSourceFile(servicePath, // fileName fs_1.default.readFileSync((0, path_1.join)(process.cwd(), servicePath), "utf8"), typescript_1.default.ScriptTarget.Latest // langugeVersion )); return [ ...nodes .map((node) => { const klass = node .getChildren()[0] .getChildren() .find((child) => child.kind === typescript_1.default.SyntaxKind.ClassDeclaration); const className = klass.name?.getText(node); const methods = klass.members.filter((node) => node.kind === typescript_1.default.SyntaxKind.MethodDeclaration); return methods .map((method) => { const methodName = method.name?.getText(node); const methodBlock = method .getChildren(node) .find((child) => child.kind === typescript_1.default.SyntaxKind.Block); const returnStatement = methodBlock.statements.find((s) => s.kind === typescript_1.default.SyntaxKind.ReturnStatement); const callExpression = returnStatement.expression; const properties = callExpression.arguments[1].properties; const httpMethodName = properties .find((p) => p.name?.getText(node) === "method") ?.initializer?.getText(node); return httpMethodName === "'GET'" ? (0, createUseQuery_1.createUseQuery)(node, className, method) : (0, createUseMutation_1.createUseMutation)(node, className, method); }) .flat(); }) .flat(), ]; }; exports.createExports = createExports;