@7nohe/openapi-react-query-codegen
Advanced tools
| { | ||
| "name": "@7nohe/openapi-react-query-codegen", | ||
| "version": "0.2.2", | ||
| "version": "0.3.0", | ||
| "description": "OpenAPI React Query Codegen", | ||
@@ -36,10 +36,9 @@ "bin": { | ||
| "commander": "^10.0.0", | ||
| "glob": "^8.1.0", | ||
| "glob": "^9.3.1", | ||
| "openapi-typescript-codegen": "^0.23.0", | ||
| "typescript": "^4.9.4" | ||
| "typescript": "^5.0.2" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/glob": "^8.0.0", | ||
| "@types/node": "^18.11.17" | ||
| "@types/node": "^18.15.5" | ||
| } | ||
| } |
+8
-8
@@ -6,10 +6,10 @@ #!/usr/bin/env node | ||
| }; | ||
| exports.__esModule = true; | ||
| var generate_1 = require("./generate"); | ||
| var commander_1 = require("commander"); | ||
| var package_json_1 = __importDefault(require("../package.json")); | ||
| var program = new commander_1.Command(); | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| const generate_1 = require("./generate"); | ||
| const commander_1 = require("commander"); | ||
| const package_json_1 = __importDefault(require("../package.json")); | ||
| const program = new commander_1.Command(); | ||
| program | ||
| .name("openapi-rq") | ||
| .version(package_json_1["default"].version) | ||
| .version(package_json_1.default.version) | ||
| .description("Generate React Query code based on OpenAPI") | ||
@@ -24,4 +24,4 @@ .requiredOption("-i, --input <value>", "OpenAPI specification, can be a path, url or string content (required)") | ||
| .parse(); | ||
| var options = program.opts(); | ||
| console.log("Generating React Query code using OpenApi file ".concat(options.output)); | ||
| const options = program.opts(); | ||
| console.log(`Generating React Query code using OpenApi file ${options.output}`); | ||
| (0, generate_1.generate)(options); |
| "use strict"; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.lowercaseFirstLetter = exports.capitalizeFirstLetter = void 0; | ||
| var capitalizeFirstLetter = function (str) { | ||
| const capitalizeFirstLetter = (str) => { | ||
| return str.charAt(0).toUpperCase() + str.slice(1); | ||
| }; | ||
| exports.capitalizeFirstLetter = capitalizeFirstLetter; | ||
| var lowercaseFirstLetter = function (str) { | ||
| const lowercaseFirstLetter = (str) => { | ||
| return str.charAt(0).toLowerCase() + str.slice(1); | ||
| }; | ||
| exports.lowercaseFirstLetter = lowercaseFirstLetter; |
| "use strict"; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.requestsOutputPath = exports.queriesOutputPath = exports.defaultOutputPath = void 0; | ||
@@ -4,0 +4,0 @@ exports.defaultOutputPath = "openapi"; |
| "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 }; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createExports = void 0; | ||
| var typescript_1 = __importDefault(require("typescript")); | ||
| var glob_1 = __importDefault(require("glob")); | ||
| var path_1 = require("path"); | ||
| var fs_1 = __importDefault(require("fs")); | ||
| var createUseQuery_1 = require("./createUseQuery"); | ||
| var createUseMutation_1 = require("./createUseMutation"); | ||
| var createExports = function (generatedClientsPath) { | ||
| var services = glob_1["default"].sync((0, path_1.join)(generatedClientsPath, 'services', '*.ts').replace(/\\/g, '/')); | ||
| var nodes = services.map(function (servicePath) { | ||
| return 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 __spreadArray([], __read(nodes | ||
| .map(function (node) { | ||
| var _a; | ||
| var klass = node | ||
| .getChildren()[0] | ||
| .getChildren() | ||
| .find(function (child) { return child.kind === typescript_1["default"].SyntaxKind.ClassDeclaration; }); | ||
| var className = (_a = klass.name) === null || _a === void 0 ? void 0 : _a.getText(node); | ||
| var methods = klass.members.filter(function (node) { return node.kind === typescript_1["default"].SyntaxKind.MethodDeclaration; }); | ||
| return methods | ||
| .map(function (method) { | ||
| var _a, _b, _c; | ||
| var methodName = (_a = method.name) === null || _a === void 0 ? void 0 : _a.getText(node); | ||
| var methodBlock = method | ||
| .getChildren(node) | ||
| .find(function (child) { return child.kind === typescript_1["default"].SyntaxKind.Block; }); | ||
| var returnStatement = methodBlock.statements.find(function (s) { return s.kind === typescript_1["default"].SyntaxKind.ReturnStatement; }); | ||
| var callExpression = returnStatement.expression; | ||
| var properties = callExpression.arguments[1].properties; | ||
| var httpMethodName = (_c = (_b = properties | ||
| .find(function (p) { var _a; return ((_a = p.name) === null || _a === void 0 ? void 0 : _a.getText(node)) === "method"; })) === null || _b === void 0 ? void 0 : _b.initializer) === null || _c === void 0 ? void 0 : _c.getText(node); | ||
| return httpMethodName === "'GET'" | ||
| ? (0, createUseQuery_1.createUseQuery)(node, className, method) | ||
| : (0, createUseMutation_1.createUseMutation)(node, className, method); | ||
| const typescript_1 = __importDefault(require("typescript")); | ||
| const glob_1 = __importDefault(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 = glob_1.default.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(); | ||
| }) | ||
| .flat()), false); | ||
| .flat(), | ||
| ]; | ||
| }; | ||
| exports.createExports = createExports; |
| "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 }; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createImports = void 0; | ||
| var typescript_1 = __importDefault(require("typescript")); | ||
| var glob_1 = __importDefault(require("glob")); | ||
| var path_1 = require("path"); | ||
| var createImports = function (generatedClientsPath) { | ||
| var models = glob_1["default"].sync((0, path_1.join)(generatedClientsPath, 'models', '*.ts').replace(/\\/g, '/')); | ||
| var services = glob_1["default"].sync((0, path_1.join)(generatedClientsPath, 'services', '*.ts').replace(/\\/g, '/')); | ||
| return __spreadArray(__spreadArray([ | ||
| typescript_1["default"].factory.createImportDeclaration(undefined, undefined, typescript_1["default"].factory.createImportClause(false, undefined, typescript_1["default"].factory.createNamedImports([ | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier("useQuery")), | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier("useMutation")), | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier("UseQueryOptions")), | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier("UseMutationOptions")), | ||
| ])), typescript_1["default"].factory.createStringLiteral("@tanstack/react-query"), undefined) | ||
| ], __read(models.map(function (model) { | ||
| var modelName = model.split("/").pop().split(".")[0]; | ||
| return typescript_1["default"].factory.createImportDeclaration(undefined, undefined, typescript_1["default"].factory.createImportClause(false, undefined, typescript_1["default"].factory.createNamedImports([ | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier(modelName)), | ||
| ])), typescript_1["default"].factory.createStringLiteral((0, path_1.join)("../requests/models/", modelName)), undefined); | ||
| })), false), __read(services.map(function (service) { | ||
| var serviceName = service.split("/").pop().split(".")[0]; | ||
| return typescript_1["default"].factory.createImportDeclaration(undefined, undefined, typescript_1["default"].factory.createImportClause(false, undefined, typescript_1["default"].factory.createNamedImports([ | ||
| typescript_1["default"].factory.createImportSpecifier(false, undefined, typescript_1["default"].factory.createIdentifier(serviceName)), | ||
| ])), typescript_1["default"].factory.createStringLiteral((0, path_1.join)("../requests/services", serviceName)), undefined); | ||
| })), false); | ||
| const typescript_1 = __importDefault(require("typescript")); | ||
| const glob_1 = __importDefault(require("glob")); | ||
| const path_1 = require("path"); | ||
| const createImports = (generatedClientsPath) => { | ||
| const models = glob_1.default.sync((0, path_1.join)(generatedClientsPath, 'models', '*.ts').replace(/\\/g, '/')); | ||
| const services = glob_1.default.sync((0, path_1.join)(generatedClientsPath, 'services', '*.ts').replace(/\\/g, '/')); | ||
| return [ | ||
| typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([ | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("useQuery")), | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("useMutation")), | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("UseQueryOptions")), | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier("UseMutationOptions")), | ||
| ])), typescript_1.default.factory.createStringLiteral("@tanstack/react-query"), undefined), | ||
| ...models.map((model) => { | ||
| const modelName = (0, path_1.basename)(model, (0, path_1.extname)(model)); | ||
| return typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([ | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(modelName)), | ||
| ])), typescript_1.default.factory.createStringLiteral((0, path_1.join)("../requests/models/", modelName)), undefined); | ||
| }), | ||
| ...services.map((service) => { | ||
| const serviceName = (0, path_1.basename)(service, (0, path_1.extname)(service)); | ||
| return typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(false, undefined, typescript_1.default.factory.createNamedImports([ | ||
| typescript_1.default.factory.createImportSpecifier(false, undefined, typescript_1.default.factory.createIdentifier(serviceName)), | ||
| ])), typescript_1.default.factory.createStringLiteral((0, path_1.join)("../requests/services", serviceName)), undefined); | ||
| }), | ||
| ]; | ||
| }; | ||
| exports.createImports = createImports; |
+10
-35
| "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 }; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createSource = void 0; | ||
| var typescript_1 = __importDefault(require("typescript")); | ||
| var createImports_1 = require("./createImports"); | ||
| var createExports_1 = require("./createExports"); | ||
| var createSourceFile = function (outputPath) { | ||
| return typescript_1["default"].factory.createSourceFile(__spreadArray(__spreadArray([], __read((0, createImports_1.createImports)(outputPath)), false), __read((0, createExports_1.createExports)(outputPath)), false), typescript_1["default"].factory.createToken(typescript_1["default"].SyntaxKind.EndOfFileToken), typescript_1["default"].NodeFlags.None); | ||
| const typescript_1 = __importDefault(require("typescript")); | ||
| const createImports_1 = require("./createImports"); | ||
| const createExports_1 = require("./createExports"); | ||
| const createSourceFile = (outputPath) => { | ||
| return typescript_1.default.factory.createSourceFile([...(0, createImports_1.createImports)(outputPath), ...(0, createExports_1.createExports)(outputPath)], typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EndOfFileToken), typescript_1.default.NodeFlags.None); | ||
| }; | ||
| var createSource = function (outputPath) { | ||
| var resultFile = typescript_1["default"].createSourceFile("index.ts", "", typescript_1["default"].ScriptTarget.Latest, false, typescript_1["default"].ScriptKind.TS); | ||
| var printer = typescript_1["default"].createPrinter({ newLine: typescript_1["default"].NewLineKind.LineFeed }); | ||
| var result = printer.printNode(typescript_1["default"].EmitHint.Unspecified, createSourceFile(outputPath), resultFile); | ||
| const createSource = (outputPath) => { | ||
| const resultFile = typescript_1.default.createSourceFile("index.ts", "", typescript_1.default.ScriptTarget.Latest, false, typescript_1.default.ScriptKind.TS); | ||
| const printer = typescript_1.default.createPrinter({ newLine: typescript_1.default.NewLineKind.LineFeed }); | ||
| const result = printer.printNode(typescript_1.default.EmitHint.Unspecified, createSourceFile(outputPath), resultFile); | ||
| return result; | ||
| }; | ||
| exports.createSource = createSource; |
@@ -5,38 +5,35 @@ "use strict"; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createUseMutation = void 0; | ||
| var typescript_1 = __importDefault(require("typescript")); | ||
| var common_1 = require("./common"); | ||
| var createUseMutation = function (node, className, method) { | ||
| var _a; | ||
| var methodName = (_a = method.name) === null || _a === void 0 ? void 0 : _a.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".concat(className).concat((0, common_1.capitalizeFirstLetter)(methodName))), undefined, undefined, typescript_1["default"].factory.createArrowFunction(undefined, undefined, [ | ||
| typescript_1["default"].factory.createParameterDeclaration(undefined, 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), | ||
| 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.createTypeLiteralNode(method.parameters.map(function (param) { | ||
| return typescript_1["default"].factory.createPropertySignature(undefined, typescript_1["default"].factory.createIdentifier(param.name.getText(node)), undefined, param.type); | ||
| })) : typescript_1["default"].factory.createKeywordTypeNode(typescript_1["default"].SyntaxKind.VoidKeyword), | ||
| typescript_1["default"].factory.createKeywordTypeNode(typescript_1["default"].SyntaxKind.UnknownKeyword), | ||
| typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.UnknownKeyword), | ||
| method.parameters.length !== 0 ? typescript_1.default.factory.createTypeLiteralNode(method.parameters.map((param) => { | ||
| return typescript_1.default.factory.createPropertySignature(undefined, typescript_1.default.factory.createIdentifier(param.name.getText(node)), undefined, param.type); | ||
| })) : 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")), | ||
| 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, undefined, typescript_1["default"].factory.createObjectBindingPattern(method.parameters.map(function (param) { | ||
| return typescript_1["default"].factory.createBindingElement(undefined, undefined, typescript_1["default"].factory.createIdentifier(param.name.getText(node)), 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(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(function (params) { | ||
| return typescript_1["default"].factory.createIdentifier(params.name.getText(node)); | ||
| }))), | ||
| typescript_1["default"].factory.createIdentifier("options"), | ||
| ] : [], 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) => typescript_1.default.factory.createIdentifier(params.name.getText(node))))), | ||
| typescript_1.default.factory.createIdentifier("options"), | ||
| ]))), | ||
| ], typescript_1["default"].NodeFlags.Const)); | ||
| ], typescript_1.default.NodeFlags.Const)); | ||
| }; | ||
| exports.createUseMutation = createUseMutation; |
| "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 }; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.createUseQuery = void 0; | ||
| var typescript_1 = __importDefault(require("typescript")); | ||
| var common_1 = require("./common"); | ||
| var createUseQuery = function (node, className, method) { | ||
| var _a; | ||
| var methodName = (_a = method.name) === null || _a === void 0 ? void 0 : _a.getText(node); | ||
| var requestParam = []; | ||
| const typescript_1 = __importDefault(require("typescript")); | ||
| const common_1 = require("./common"); | ||
| const createUseQuery = (node, className, method) => { | ||
| const methodName = method.name?.getText(node); | ||
| let requestParam = []; | ||
| if (method.parameters.length !== 0) { | ||
| requestParam.push(typescript_1["default"].factory.createParameterDeclaration(undefined, undefined, undefined, typescript_1["default"].factory.createObjectBindingPattern(method.parameters.map(function (param) { | ||
| return typescript_1["default"].factory.createBindingElement(undefined, undefined, typescript_1["default"].factory.createIdentifier(param.name.getText(node)), undefined); | ||
| })), undefined, typescript_1["default"].factory.createTypeLiteralNode(method.parameters.map(function (param) { | ||
| return typescript_1["default"].factory.createPropertySignature(undefined, typescript_1["default"].factory.createIdentifier(param.name.getText(node)), undefined, param.type); | ||
| })), undefined)); | ||
| requestParam.push(typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createObjectBindingPattern(method.parameters.map((param) => typescript_1.default.factory.createBindingElement(undefined, undefined, typescript_1.default.factory.createIdentifier(param.name.getText(node)), undefined))), undefined, typescript_1.default.factory.createTypeLiteralNode(method.parameters.map((param) => typescript_1.default.factory.createPropertySignature(undefined, typescript_1.default.factory.createIdentifier(param.name.getText(node)), undefined, param.type))))); | ||
| } | ||
| var customHookName = "use".concat(className).concat((0, common_1.capitalizeFirstLetter)(methodName)); | ||
| var queryKey = "".concat(customHookName, "Key"); | ||
| const customHookName = `use${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`; | ||
| const queryKey = `${customHookName}Key`; | ||
| 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(queryKey), undefined, undefined, typescript_1["default"].factory.createStringLiteral("".concat(className).concat((0, common_1.capitalizeFirstLetter)(methodName))))], typescript_1["default"].NodeFlags.Const)), | ||
| 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(customHookName), undefined, undefined, typescript_1["default"].factory.createArrowFunction(undefined, undefined, __spreadArray(__spreadArray([], __read(requestParam), false), [ | ||
| typescript_1["default"].factory.createParameterDeclaration(undefined, undefined, undefined, typescript_1["default"].factory.createIdentifier("queryKey"), undefined, typescript_1["default"].factory.createArrayTypeNode(typescript_1["default"].factory.createKeywordTypeNode(typescript_1["default"].SyntaxKind.StringKeyword)), typescript_1["default"].factory.createArrayLiteralExpression([], false)), | ||
| typescript_1["default"].factory.createParameterDeclaration(undefined, 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("UseQueryOptions"), [ | ||
| 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.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(queryKey), undefined, undefined, typescript_1.default.factory.createStringLiteral(`${className}${(0, common_1.capitalizeFirstLetter)(methodName)}`))], typescript_1.default.NodeFlags.Const)), | ||
| 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(customHookName), undefined, undefined, typescript_1.default.factory.createArrowFunction(undefined, undefined, [ | ||
| ...requestParam, | ||
| typescript_1.default.factory.createParameterDeclaration(undefined, undefined, typescript_1.default.factory.createIdentifier("queryKey"), undefined, typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword)), typescript_1.default.factory.createArrayLiteralExpression([], false)), | ||
| 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("UseQueryOptions"), [ | ||
| 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), | ||
| 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), | ||
| 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.createArrayTypeNode(typescript_1["default"].factory.createKeywordTypeNode(typescript_1["default"].SyntaxKind.StringKeyword)), | ||
| typescript_1.default.factory.createArrayTypeNode(typescript_1.default.factory.createKeywordTypeNode(typescript_1.default.SyntaxKind.StringKeyword)), | ||
| ]), | ||
| typescript_1["default"].factory.createUnionTypeNode([ | ||
| typescript_1["default"].factory.createLiteralTypeNode(typescript_1["default"].factory.createStringLiteral("queryKey")), | ||
| typescript_1["default"].factory.createLiteralTypeNode(typescript_1["default"].factory.createStringLiteral("queryFn")), | ||
| typescript_1["default"].factory.createLiteralTypeNode(typescript_1["default"].factory.createStringLiteral("initialData")), | ||
| typescript_1.default.factory.createUnionTypeNode([ | ||
| typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("queryKey")), | ||
| typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("queryFn")), | ||
| typescript_1.default.factory.createLiteralTypeNode(typescript_1.default.factory.createStringLiteral("initialData")), | ||
| ]), | ||
| ]), undefined), | ||
| ], false), undefined, typescript_1["default"].factory.createToken(typescript_1["default"].SyntaxKind.EqualsGreaterThanToken), typescript_1["default"].factory.createCallExpression(typescript_1["default"].factory.createIdentifier("useQuery"), undefined, [ | ||
| typescript_1["default"].factory.createArrayLiteralExpression([ | ||
| typescript_1["default"].factory.createIdentifier(queryKey), | ||
| typescript_1["default"].factory.createSpreadElement(typescript_1["default"].factory.createIdentifier("queryKey")) | ||
| ])), | ||
| ], undefined, typescript_1.default.factory.createToken(typescript_1.default.SyntaxKind.EqualsGreaterThanToken), typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier("useQuery"), undefined, [ | ||
| typescript_1.default.factory.createArrayLiteralExpression([ | ||
| typescript_1.default.factory.createIdentifier(queryKey), | ||
| typescript_1.default.factory.createSpreadElement(typescript_1.default.factory.createIdentifier("queryKey")) | ||
| ], false), | ||
| typescript_1["default"].factory.createArrowFunction(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(function (param) { | ||
| return typescript_1["default"].factory.createIdentifier(param.name.getText(node)); | ||
| }))), | ||
| typescript_1["default"].factory.createIdentifier("options"), | ||
| typescript_1.default.factory.createArrowFunction(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((param) => typescript_1.default.factory.createIdentifier(param.name.getText(node))))), | ||
| typescript_1.default.factory.createIdentifier("options"), | ||
| ]))), | ||
| ], typescript_1["default"].NodeFlags.Const)) | ||
| ], typescript_1.default.NodeFlags.Const)) | ||
| ]; | ||
| }; | ||
| exports.createUseQuery = createUseQuery; |
+14
-69
| "use strict"; | ||
| var __assign = (this && this.__assign) || function () { | ||
| __assign = Object.assign || function(t) { | ||
| for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
| s = arguments[i]; | ||
| for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
| t[p] = s[p]; | ||
| } | ||
| return t; | ||
| }; | ||
| return __assign.apply(this, arguments); | ||
| }; | ||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
| function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||
| return new (P || (P = Promise))(function (resolve, reject) { | ||
| function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||
| function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||
| function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||
| step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||
| }); | ||
| }; | ||
| var __generator = (this && this.__generator) || function (thisArg, body) { | ||
| var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
| return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
| function verb(n) { return function (v) { return step([n, v]); }; } | ||
| function step(op) { | ||
| if (f) throw new TypeError("Generator is already executing."); | ||
| while (g && (g = 0, op[0] && (_ = 0)), _) try { | ||
| if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
| if (y = 0, t) op = [op[0] & 2, t.value]; | ||
| switch (op[0]) { | ||
| case 0: case 1: t = op; break; | ||
| case 4: _.label++; return { value: op[1], done: false }; | ||
| case 5: _.label++; y = op[1]; op = [0]; continue; | ||
| case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
| default: | ||
| if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
| if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
| if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
| if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
| if (t[2]) _.ops.pop(); | ||
| _.trys.pop(); continue; | ||
| } | ||
| op = body.call(thisArg, _); | ||
| } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
| if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
| } | ||
| }; | ||
| var __importDefault = (this && this.__importDefault) || function (mod) { | ||
| return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.generate = void 0; | ||
| var openapi_typescript_codegen_1 = require("openapi-typescript-codegen"); | ||
| var print_1 = require("./print"); | ||
| var path_1 = __importDefault(require("path")); | ||
| var createSource_1 = require("./createSource"); | ||
| var constants_1 = require("./constants"); | ||
| function generate(options) { | ||
| var _a; | ||
| return __awaiter(this, void 0, void 0, function () { | ||
| var openApiOutputPath, source; | ||
| return __generator(this, function (_b) { | ||
| switch (_b.label) { | ||
| case 0: | ||
| openApiOutputPath = path_1["default"].join((_a = options.output) !== null && _a !== void 0 ? _a : constants_1.defaultOutputPath, constants_1.requestsOutputPath); | ||
| return [4 /*yield*/, (0, openapi_typescript_codegen_1.generate)(__assign(__assign({}, options), { httpClient: options.client, output: openApiOutputPath }))]; | ||
| case 1: | ||
| _b.sent(); | ||
| source = (0, createSource_1.createSource)(openApiOutputPath); | ||
| (0, print_1.print)(source, options); | ||
| return [2 /*return*/]; | ||
| } | ||
| }); | ||
| const openapi_typescript_codegen_1 = require("openapi-typescript-codegen"); | ||
| const print_1 = require("./print"); | ||
| const path_1 = __importDefault(require("path")); | ||
| const createSource_1 = require("./createSource"); | ||
| const constants_1 = require("./constants"); | ||
| async function generate(options) { | ||
| const openApiOutputPath = path_1.default.join(options.output ?? constants_1.defaultOutputPath, constants_1.requestsOutputPath); | ||
| await (0, openapi_typescript_codegen_1.generate)({ | ||
| ...options, | ||
| httpClient: options.client, | ||
| output: openApiOutputPath, | ||
| }); | ||
| const source = (0, createSource_1.createSource)(openApiOutputPath); | ||
| (0, print_1.print)(source, options); | ||
| } | ||
| exports.generate = generate; |
+11
-13
@@ -5,20 +5,18 @@ "use strict"; | ||
| }; | ||
| exports.__esModule = true; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.print = void 0; | ||
| var fs_1 = __importDefault(require("fs")); | ||
| var path_1 = __importDefault(require("path")); | ||
| var constants_1 = require("./constants"); | ||
| const fs_1 = __importDefault(require("fs")); | ||
| const path_1 = __importDefault(require("path")); | ||
| const constants_1 = require("./constants"); | ||
| function printGeneratedTS(result, options) { | ||
| var _a; | ||
| var dir = path_1["default"].join((_a = options.output) !== null && _a !== void 0 ? _a : constants_1.defaultOutputPath, constants_1.queriesOutputPath); | ||
| if (!fs_1["default"].existsSync(dir)) { | ||
| fs_1["default"].mkdirSync(dir, { recursive: true }); | ||
| const dir = path_1.default.join(options.output ?? constants_1.defaultOutputPath, constants_1.queriesOutputPath); | ||
| if (!fs_1.default.existsSync(dir)) { | ||
| fs_1.default.mkdirSync(dir, { recursive: true }); | ||
| } | ||
| fs_1["default"].writeFileSync(path_1["default"].join(dir, "index.ts"), result); | ||
| fs_1.default.writeFileSync(path_1.default.join(dir, "index.ts"), result); | ||
| } | ||
| function print(result, options) { | ||
| var _a; | ||
| var outputPath = (_a = options.output) !== null && _a !== void 0 ? _a : constants_1.defaultOutputPath; | ||
| if (!fs_1["default"].existsSync(outputPath)) { | ||
| fs_1["default"].mkdirSync(outputPath); | ||
| const outputPath = options.output ?? constants_1.defaultOutputPath; | ||
| if (!fs_1.default.existsSync(outputPath)) { | ||
| fs_1.default.mkdirSync(outputPath); | ||
| } | ||
@@ -25,0 +23,0 @@ printGeneratedTS(result, options); |
+4
-5
| { | ||
| "name": "@7nohe/openapi-react-query-codegen", | ||
| "version": "0.2.2", | ||
| "version": "0.3.0", | ||
| "description": "OpenAPI React Query Codegen", | ||
@@ -30,9 +30,8 @@ "bin": { | ||
| "commander": "^10.0.0", | ||
| "glob": "^8.1.0", | ||
| "glob": "^9.3.1", | ||
| "openapi-typescript-codegen": "^0.23.0", | ||
| "typescript": "^4.9.4" | ||
| "typescript": "^5.0.2" | ||
| }, | ||
| "devDependencies": { | ||
| "@types/glob": "^8.0.0", | ||
| "@types/node": "^18.11.17" | ||
| "@types/node": "^18.15.5" | ||
| }, | ||
@@ -39,0 +38,0 @@ "scripts": { |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
1
-50%26330
-23.17%293
-35.89%1
Infinity%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated