react-query-lightbase-codegen 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/package.json +8 -28
  2. package/lib/commonjs/convertSwaggerFile.js +0 -37
  3. package/lib/commonjs/convertSwaggerFile.js.map +0 -1
  4. package/lib/commonjs/generateHooks.js +0 -492
  5. package/lib/commonjs/generateHooks.js.map +0 -1
  6. package/lib/commonjs/generateImports.js +0 -48
  7. package/lib/commonjs/generateImports.js.map +0 -1
  8. package/lib/commonjs/generateSchemas.js +0 -119
  9. package/lib/commonjs/generateSchemas.js.map +0 -1
  10. package/lib/commonjs/importSpecs.js +0 -117
  11. package/lib/commonjs/importSpecs.js.map +0 -1
  12. package/lib/commonjs/index.js +0 -22
  13. package/lib/commonjs/index.js.map +0 -1
  14. package/lib/commonjs/utils.js +0 -212
  15. package/lib/commonjs/utils.js.map +0 -1
  16. package/lib/src/convertSwaggerFile.js +0 -29
  17. package/lib/src/generateHooks.js +0 -249
  18. package/lib/src/generateImports.js +0 -29
  19. package/lib/src/generateSchemas.js +0 -108
  20. package/lib/src/importSpecs.js +0 -134
  21. package/lib/src/index.js +0 -7
  22. package/lib/src/utils.js +0 -172
  23. package/lib/typescript/convertSwaggerFile.d.ts +0 -5
  24. package/lib/typescript/generateHooks.d.ts +0 -25
  25. package/lib/typescript/generateImports.d.ts +0 -7
  26. package/lib/typescript/generateSchemas.d.ts +0 -7
  27. package/lib/typescript/importSpecs.d.ts +0 -15
  28. package/lib/typescript/index.d.ts +0 -3
  29. package/lib/typescript/utils.d.ts +0 -24
  30. package/src/convertSwaggerFile.ts +0 -25
  31. package/src/generateHooks.ts +0 -490
  32. package/src/generateImports.ts +0 -41
  33. package/src/generateSchemas.ts +0 -114
  34. package/src/importSpecs.ts +0 -110
  35. package/src/index.ts +0 -3
  36. package/src/utils.ts +0 -190
@@ -1 +0,0 @@
1
- {"version":3,"names":["uniq","isEmpty","lodash","pascal","pasCase","getDocs","data","isReference","formatDescription","description","property","Boolean","$ref","getScalar","item","nullable","type","getArray","enum","join","getObject","getRef","startsWith","replace","Error","items","oneOf","allOf","resolveValue","map","properties","additionalProperties","IdentifierRegexp","output","Object","entries","key","prop","doc","isRequired","required","includes","processedKey","test","schema","split","i","getResReqTypes","responsesOrRequests","_","res","content","contentType","keys"],"sources":["utils.ts"],"sourcesContent":["import lodash from 'lodash';\nconst { uniq, isEmpty } = lodash;\nimport pasCase from 'case';\n\nconst { pascal } = pasCase;\n\nimport { ReferenceObject, RequestBodyObject, ResponseObject, SchemaObject } from 'openapi3-ts';\n\nexport const getDocs = (data: ReferenceObject | { description?: string }) =>\n isReference(data) ? '' : formatDescription(data.description);\n/**\n * Discriminator helper for `ReferenceObject`\n */\nexport const isReference = (property: any): property is ReferenceObject => {\n return Boolean(property.$ref);\n};\n\n/**\n * Return the typescript equivalent of open-api data type\n */\nexport const getScalar = (item: SchemaObject) => {\n const nullable = item.nullable ? ' | null' : '';\n\n switch (item.type) {\n case 'number':\n case 'integer':\n return 'number' + nullable;\n\n case 'boolean':\n return 'boolean' + nullable;\n\n case 'array':\n return getArray(item) + nullable;\n\n case 'string':\n return (item.enum ? `\"${item.enum.join(`\" | \"`)}\"` : 'string') + nullable;\n\n case 'object':\n default:\n return getObject(item) + nullable;\n }\n};\n\n/**\n * Return the output type from the $ref\n */\nconst getRef = ($ref: ReferenceObject['$ref']) => {\n if ($ref.startsWith('#/components/schemas')) {\n return pascal($ref.replace('#/components/schemas/', ''));\n } else if ($ref.startsWith('#/components/responses')) {\n return pascal($ref.replace('#/components/responses/', '')) + 'Response';\n } else if ($ref.startsWith('#/components/parameters')) {\n return pascal($ref.replace('#/components/parameters/', '')) + 'Parameter';\n } else if ($ref.startsWith('#/components/requestBodies')) {\n return pascal($ref.replace('#/components/requestBodies/', '')) + 'RequestBody';\n } else {\n throw new Error('This library only resolve $ref that are include into `#/components/*` for now');\n }\n};\n\n/**\n * Return the output type from an array\n */\nconst getArray = (item: SchemaObject): string => {\n if (item.items) {\n if (!isReference(item.items) && (item.items.oneOf || item.items.allOf || item.items.enum)) {\n return `(${resolveValue(item.items)})[]`;\n } else {\n return `${resolveValue(item.items)}[]`;\n }\n } else {\n throw new Error('All arrays must have an `items` key define');\n }\n};\n\n/**\n * Return the output type from an object\n */\nconst getObject = (item: SchemaObject): string => {\n if (isReference(item)) {\n return getRef(item.$ref);\n }\n\n if (item.allOf) {\n return item.allOf.map(resolveValue).join(' & ');\n }\n\n if (item.oneOf) {\n return item.oneOf.map(resolveValue).join(' | ');\n }\n\n if (!item.type && !item.properties && !item.additionalProperties) {\n return '{}';\n }\n\n // Free form object (https://swagger.io/docs/specification/data-models/data-types/#free-form)\n if (\n item.type === 'object' &&\n !item.properties &&\n (!item.additionalProperties || item.additionalProperties === true || isEmpty(item.additionalProperties))\n ) {\n return '{[key: string]: any}';\n }\n\n const IdentifierRegexp = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;\n // Consolidation of item.properties & item.additionalProperties\n let output = '{\\n';\n if (item.properties) {\n output += Object.entries(item.properties)\n .map(([key, prop]: [string, ReferenceObject | SchemaObject]) => {\n const doc = getDocs(prop);\n const isRequired = (item.required || []).includes(key);\n const processedKey = IdentifierRegexp.test(key) ? key : `\"${key}\"`;\n return `${doc}\\n${processedKey}${isRequired ? '' : '?'}: ${resolveValue(prop)};`;\n })\n .join('');\n }\n\n if (item.additionalProperties) {\n if (item.properties) {\n output += '\\n';\n }\n output += `} & { [key: string]: ${\n item.additionalProperties === true ? 'any' : resolveValue(item.additionalProperties)\n }`;\n }\n\n if (item.properties || item.additionalProperties) {\n if (output === '{\\n') {\n return '{}';\n }\n return output + '\\n}';\n }\n\n return item.type === 'object' ? '{[key: string]: any}' : 'any';\n};\n\n/**\n * Resolve the value of a schema object to a proper type definition.\n */\nexport const resolveValue = (schema: SchemaObject) =>\n isReference(schema) ? getRef(schema.$ref) : getScalar(schema);\n\n/**\n * Format a description to code documentation.\n */\nexport const formatDescription = (description?: string) => {\n if (!description) {\n return '';\n }\n return `\\n/**\\n${description\n .split('\\n')\n .map((i) => `* ${i}`)\n .join('\\n')}\\n */`;\n};\n\n/**\n * Extract responses / request types from open-api specs\n */\nexport const getResReqTypes = (\n responsesOrRequests: Array<[string, ResponseObject | ReferenceObject | RequestBodyObject]>\n) => {\n return uniq(\n responsesOrRequests.map(([_, res]) => {\n if (!res) {\n return;\n }\n\n if (isReference(res)) {\n return getRef(res.$ref);\n }\n\n if (res.content) {\n for (let contentType of Object.keys(res.content)) {\n if (\n contentType.startsWith('application/json') ||\n contentType.startsWith('application/octet-stream')\n ) {\n const schema = res.content[contentType].schema!;\n\n return resolveValue(schema);\n }\n }\n return;\n }\n\n return;\n })\n ).join(' | ');\n};\n"],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.convertSwaggerFile = void 0;
4
- var swagger2openapi_1 = require("swagger2openapi");
5
- var js_yaml_1 = require("js-yaml");
6
- /**
7
- * Import and parse the openapi spec from a yaml/json
8
- */
9
- var convertSwaggerFile = function (data, extension) {
10
- var schema = extension === 'yaml' ? js_yaml_1["default"].load(data) : JSON.parse(data);
11
- return new Promise(function (resolve, reject) {
12
- if (!schema.openapi || !schema.openapi.startsWith('3.')) {
13
- swagger2openapi_1["default"].convertObj(schema, {}, function (err, convertedObj) {
14
- if (err) {
15
- reject(err);
16
- }
17
- else {
18
- // @ts-ignore
19
- convertedObj.openapi.basePath = convertedObj.original.basePath;
20
- resolve(convertedObj.openapi);
21
- }
22
- });
23
- }
24
- else {
25
- resolve(schema);
26
- }
27
- });
28
- };
29
- exports.convertSwaggerFile = convertSwaggerFile;
@@ -1,249 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- exports.__esModule = true;
12
- exports.createHook = void 0;
13
- var lodash_1 = require("lodash");
14
- var get = lodash_1["default"].get, groupBy = lodash_1["default"].groupBy;
15
- var utils_js_1 = require("./utils.js");
16
- var case_1 = require("case");
17
- var chalk_1 = require("chalk");
18
- var pascal = case_1["default"].pascal, camel = case_1["default"].camel;
19
- var IdentifierRegexp = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/;
20
- /**
21
- * Return every params in a path
22
- */
23
- var getParamsInPath = function (path) {
24
- var n;
25
- var output = [];
26
- var templatePathRegex = /\{(\w+)}/g;
27
- while ((n = templatePathRegex.exec(path)) !== null) {
28
- output.push(n[1]);
29
- }
30
- return output;
31
- };
32
- /**
33
- * Generate a react-query component from openapi operation specs
34
- */
35
- var createHook = function (_a) {
36
- var operation = _a.operation, verb = _a.verb, route = _a.route, operationIds = _a.operationIds, parameters = _a.parameters, schemasComponents = _a.schemasComponents, headerFilters = _a.headerFilters, overrides = _a.overrides;
37
- var _b = operation.operationId, operationId = _b === void 0 ? route.replace('/', '') : _b;
38
- if (operationId === '*') {
39
- throw new Error("Invalid operationId/Route set for ".concat(verb, " ").concat(route));
40
- }
41
- if (operationIds.includes(operationId)) {
42
- return { implementation: '', imports: [], queryImports: [] };
43
- }
44
- operationIds.push(operationId);
45
- route = route.replace(/\{/g, '${').replace('//', '/'); // `/pet/{id}` => `/pet/${id}`
46
- // Remove the last param of the route if we are in the DELETE case
47
- var lastParamInTheRoute = null;
48
- var componentName = pascal(operationId);
49
- var isOk = function (_a) {
50
- var statusCode = _a[0];
51
- return statusCode.toString().startsWith('2');
52
- };
53
- var responseTypes = (0, utils_js_1.getResReqTypes)(Object.entries(operation.responses).filter(isOk)) || 'void';
54
- var requestBodyTypes = (0, utils_js_1.getResReqTypes)([['body', operation.requestBody]]);
55
- var imports = [responseTypes];
56
- var queryImports = [];
57
- var paramsInPath = getParamsInPath(route).filter(function (param) { return !(verb === 'delete' && param === lastParamInTheRoute); });
58
- var _c = groupBy(__spreadArray(__spreadArray([], (parameters || []), true), (operation.parameters || []), true).map(function (p) {
59
- if ((0, utils_js_1.isReference)(p)) {
60
- return get(schemasComponents, p.$ref.replace('#/components/', '').replace('/', '.'));
61
- }
62
- else {
63
- return p;
64
- }
65
- }), 'in'), _d = _c.query, queryParams = _d === void 0 ? [] : _d, _e = _c.path, pathParams = _e === void 0 ? [] : _e, _f = _c.header, header = _f === void 0 ? [] : _f;
66
- var headerParams = header.filter(function (p) { return !(headerFilters === null || headerFilters === void 0 ? void 0 : headerFilters.includes(p.name)); });
67
- var enabled = [];
68
- // TODO: extract all requestBody or remove useQuery variants
69
- var enabledParam = '!!params';
70
- __spreadArray(__spreadArray(__spreadArray([], queryParams, true), pathParams, true), headerParams, true).forEach(function (item) {
71
- if (item.required) {
72
- enabled.push("[\"".concat(item.name, "\"]"));
73
- if (enabledParam && enabledParam !== '!!params') {
74
- enabledParam += "&& params['".concat(item.name, "'] != null");
75
- }
76
- else {
77
- enabledParam = "params['".concat(item.name, "'] != null");
78
- }
79
- }
80
- });
81
- // `!props${enabled.join('== null && !props')}`;
82
- var paramsTypes = paramsInPath
83
- .map(function (p) {
84
- try {
85
- var _a = pathParams.find(function (i) { return i.name === p; }), name_1 = _a.name, required = _a.required, schema = _a.schema;
86
- return "".concat(name_1).concat(required ? '' : '?', ": ").concat((0, utils_js_1.resolveValue)(schema));
87
- }
88
- catch (err) {
89
- throw new Error("The path params ".concat(p, " can't be found in parameters (").concat(operationId, ")"));
90
- }
91
- })
92
- .join('; ');
93
- var queryParamsType = queryParams
94
- .map(function (p) {
95
- var processedName = IdentifierRegexp.test(p.name) ? p.name : "\"".concat(p.name, "\"");
96
- return "".concat((0, utils_js_1.formatDescription)(p.description), "\n ").concat(processedName).concat(p.required ? '' : '?', ": ").concat((0, utils_js_1.resolveValue)(p.schema));
97
- })
98
- .join(';\n ');
99
- var headerType = headerParams
100
- .map(function (p) {
101
- try {
102
- var _a = headerParams.find(function (i) { return i.name === p.name; }), name_2 = _a.name, required = _a.required, schema = _a.schema;
103
- return "\"".concat(name_2, "\"").concat(required ? '' : '?', ": ").concat((0, utils_js_1.resolveValue)(schema));
104
- }
105
- catch (err) {
106
- throw new Error("The path params ".concat(p, " can't be found in parameters (").concat(operationId, ")"));
107
- }
108
- })
109
- .join('; ');
110
- // Retrieve the type of the param for delete verb
111
- var lastParamInTheRouteDefinition = operation.parameters && lastParamInTheRoute
112
- ? operation.parameters.find(function (p) {
113
- if ((0, utils_js_1.isReference)(p)) {
114
- return false;
115
- }
116
- return p.name === lastParamInTheRoute;
117
- }) // Reference is not possible
118
- : { schema: { type: 'string' } };
119
- if (!lastParamInTheRouteDefinition) {
120
- throw new Error("The path params ".concat(lastParamInTheRoute, " can't be found in parameters (").concat(operationId, ")"));
121
- }
122
- var defaultDescription = "type: ".concat(verb, "\noperationId: ").concat(operationId, "\nurl: ").concat(route);
123
- var description = (0, utils_js_1.formatDescription)(operation.summary && operation.description
124
- ? "".concat(defaultDescription, "\n\n").concat(operation.summary, "\n\n").concat(operation.description)
125
- : "".concat(defaultDescription));
126
- var output = "\n\n".concat(description);
127
- var headerParam = headerType && headerType !== 'void' ? "".concat(headerType, ";") : '';
128
- var queryParam = queryParamsType && queryParamsType !== 'void' ? "".concat(queryParamsType) : '';
129
- var requestBodyComponent = requestBodyTypes && requestBodyTypes !== 'void' ? "".concat(requestBodyTypes) : '';
130
- if (requestBodyComponent) {
131
- imports.push(requestBodyComponent);
132
- }
133
- var isUpdateRequest = ['post', 'patch', 'put'].includes(verb);
134
- var generateProps = function (props) {
135
- return props.map(function (item) { return "[\"".concat(item.name, "\"]: props[\"").concat(item.name, "\"]"); }).join(',');
136
- };
137
- var generateBodyProps = function () {
138
- var _a;
139
- var definitionKey = Object.keys((schemasComponents === null || schemasComponents === void 0 ? void 0 : schemasComponents.schemas) || {}).find(function (key) { return pascal(key) === requestBodyComponent; });
140
- if (definitionKey) {
141
- var scheme = (_a = schemasComponents === null || schemasComponents === void 0 ? void 0 : schemasComponents.schemas) === null || _a === void 0 ? void 0 : _a[definitionKey];
142
- return Object.keys(scheme.properties)
143
- .map(function (item) { return "[\"".concat(item, "\"]: props[\"").concat(item, "\"]"); })
144
- .join(',');
145
- }
146
- };
147
- var fetchName = camel(componentName);
148
- var createQueryHooks = function (emptyParams) {
149
- var params = emptyParams ? '' : "params: ".concat(componentName, "Params,");
150
- var key = emptyParams ? '' : "params";
151
- var mutationParams = emptyParams ? 'void' : "".concat(componentName, "Params");
152
- var queryParamType = emptyParams ? '' : "".concat(componentName, "Params &");
153
- var filterParams = emptyParams
154
- ? '{ filters }: { filters?: QueryFilters }'
155
- : "{ params, filters }: { params: ".concat(componentName, "Params, filters?: QueryFilters }");
156
- var cacheParams = emptyParams
157
- ? "{updater, options}: {updater: Updater<".concat(responseTypes, " | undefined, ").concat(responseTypes, " | undefined>, options?: SetDataOptions | undefined}")
158
- : "{params, updater, options}: {params: ".concat(componentName, "Params, updater: Updater<").concat(responseTypes, " | undefined, ").concat(responseTypes, " | undefined>, options?: SetDataOptions | undefined}");
159
- var queryKey = emptyParams
160
- ? "use".concat(componentName, "Query.baseKey()")
161
- : "[...use".concat(componentName, "Query.baseKey(), params]");
162
- var createQuery = function () { return "\n type ".concat(componentName, "QueryProps<T = ").concat(responseTypes, "> = ").concat(queryParamType, " {\n options?: UseQueryOptions<").concat(responseTypes, ", AxiosError, T, any> \n }\n export function use").concat(componentName, "Query<T = ").concat(responseTypes, ">({ options = {}, ...params }: ").concat(componentName, "QueryProps<T>) { \n return useQuery(use").concat(componentName, "Query.queryKey(").concat(key, "), async () => ").concat(fetchName, "(").concat(key, "), { enabled: ").concat(enabledParam, ", ...options });\n }\n\n use").concat(componentName, "Query.baseKey = (): QueryKey => [\"").concat(componentName.toLowerCase(), "\"];\n \n use").concat(componentName, "Query.queryKey = (").concat(params, "): QueryKey => ").concat(queryKey, ";\n \n use").concat(componentName, "Query.updateCache = (").concat(cacheParams, ") => queryClient.setQueryData<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "), updater, options);\n \n use").concat(componentName, "Query.getQueryState = (").concat(filterParams, ")=> queryClient.getQueryState<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "), filters);\n \n use").concat(componentName, "Query.getQueryData = (").concat(filterParams, ")=> queryClient.getQueryData<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "), filters);\n \n use").concat(componentName, "Query.prefetch = (").concat(params, ") => queryClient.prefetchQuery<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "), ()=> ").concat(fetchName, "(").concat(key, "));\n \n use").concat(componentName, "Query.cancelQueries = (").concat(params, ") => queryClient.cancelQueries(use").concat(componentName, "Query.queryKey(").concat(key, "))\n \n use").concat(componentName, "Query.invalidate = (").concat(params, ") => queryClient.invalidateQueries<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "));\n \n use").concat(componentName, "Query.refetchStale = (").concat(params, ") => queryClient.refetchQueries<").concat(responseTypes, ">(use").concat(componentName, "Query.queryKey(").concat(key, "), { stale: true });\n "); };
163
- var getInfiniteQuery = function (_a) {
164
- var pageParam = _a.pageParam;
165
- return "\n type ".concat(componentName, "QueryProps<T = ").concat(responseTypes, "> = ").concat(queryParamType, " {\n options: UseInfiniteQueryOptions<").concat(responseTypes, ", AxiosError, T, any> \n }\n export function use").concat(componentName, "Query<T = ").concat(responseTypes, ">({ options = {}, ...params }: ").concat(componentName, "QueryProps<T>) { \n return useInfiniteQuery(use").concat(componentName, "Query.queryKey(").concat(key, "), async ({ pageParam = 0 }) => ").concat(fetchName, "({").concat(pageParam, ": pageParam, ...params}), { enabled: ").concat(enabledParam, ", ...options });\n }\n\n use").concat(componentName, "Query.baseKey = (): QueryKey => [\"").concat(componentName.toLowerCase(), "\"];\n \n use").concat(componentName, "Query.queryKey = (").concat(params, "): QueryKey => ").concat(queryKey, ";\n \n ");
166
- };
167
- var createMutation = function () { return "\n type ".concat(componentName, "MutationProps<T> = {\n options?: UseMutationOptions<").concat(responseTypes, ", AxiosError, ").concat(mutationParams, ", T> \n }\n export function use").concat(componentName, "Mutation<T = ").concat(responseTypes, ">(props?: ").concat(componentName, "MutationProps<T>) { \n return useMutation(async (").concat(key, ") => ").concat(fetchName, "(").concat(key, "), props?.options)\n };\n "); };
168
- var override = overrides === null || overrides === void 0 ? void 0 : overrides[operationId];
169
- if ((override === null || override === void 0 ? void 0 : override.type) === 'query') {
170
- console.log(chalk_1["default"].blue("\u2699\uFE0F [".concat(operationId, "] has been changed to a useQuery hook")));
171
- queryImports.push('query');
172
- return createQuery();
173
- }
174
- if ((override === null || override === void 0 ? void 0 : override.type) === 'mutation') {
175
- queryImports.push('mutation');
176
- console.log(chalk_1["default"].blue("\u2699\uFE0F [".concat(operationId, "] has been changed to a useMutation hook")));
177
- return createMutation();
178
- }
179
- if ((override === null || override === void 0 ? void 0 : override.type) === 'infiniteQuery') {
180
- console.log(chalk_1["default"].blue("\u2699\uFE0F [".concat(operationId, "] has been changed to a useInfiniteQuery hook")));
181
- queryImports.push('infiniteQuery');
182
- return getInfiniteQuery({ pageParam: override.infiniteQueryParm });
183
- }
184
- if (verb === 'get') {
185
- queryImports.push('query');
186
- return createQuery();
187
- }
188
- queryImports.push('mutation');
189
- return createMutation();
190
- };
191
- output += createQueryHooks(!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam);
192
- if (!requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
193
- output += "\n const ".concat(fetchName, " = async () => {\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`);\n return result.data;\n }\n ");
194
- }
195
- if (!requestBodyComponent && paramsInPath.length && queryParam && !headerParam) {
196
- var config = isUpdateRequest ? 'body,{params}' : '{params}';
197
- output += "\n type ".concat(componentName, "Params = {\n ").concat(paramsTypes, "\n ").concat(queryParamsType, "; \n }\n\n const ").concat(fetchName, " = async (props:").concat(componentName, "Params) => {\n const {").concat(paramsInPath.join(', '), ", ...params} = props\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, ").concat(config, ")\n return result.data;\n }");
198
- }
199
- if (!requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
200
- output += "\n type ".concat(componentName, "Params = {\n ").concat(paramsTypes, "\n }\n\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params ) => {\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route.replace(/\{/g, '{props.'), "`);\n return result.data;\n }\n ");
201
- }
202
- if (!requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
203
- var config = isUpdateRequest ? 'null,{params}' : '{params}';
204
- output += "\n type ".concat(componentName, "Params = { \n ").concat(queryParamsType, " \n }\n\n const ").concat(fetchName, " = async (params: ").concat(componentName, "Params) => {\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, ").concat(config, ")\n return result.data;\n }\n ");
205
- }
206
- if (!requestBodyComponent && !paramsInPath.length && queryParam && headerParam) {
207
- var config = isUpdateRequest ? 'null,{headers, params: queryParams}' : '{headers, params: queryParams}';
208
- output += "\n type ".concat(componentName, "Params = {\n ").concat(headerParam, "\n ").concat(queryParamsType, "\n }\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params) => {\n const headers = {").concat(generateProps(header), "}\n const queryParams = {").concat(generateProps(queryParams), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, ").concat(config, ")\n return result.data\n }");
209
- }
210
- if (!requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
211
- var config = isUpdateRequest ? 'null,{headers}' : '{headers}';
212
- output += "\n type ".concat(componentName, "Params = {\n ").concat(headerParam, "\n };\n \n const ").concat(fetchName, " = async (headers: ").concat(componentName, "Params) => {\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, ").concat(config, ");\n return result.data;\n }\n ");
213
- }
214
- if (requestBodyComponent && !paramsInPath.length && !queryParam && !headerParam) {
215
- output += "\n type ".concat(componentName, "Params = ").concat(requestBodyComponent, "\n\n const ").concat(fetchName, " = async (body: ").concat(componentName, "Params) => {\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, body)\n return result.data\n } \n ");
216
- }
217
- if (requestBodyComponent && !paramsInPath.length && queryParam && !headerParam) {
218
- var config = isUpdateRequest ? 'null,{headers, params: queryParams}' : '{headers, params: queryParams}';
219
- var queryParamsProps = queryParams.map(function (item) { return "[\"".concat(item.name, "\"]: props[\"").concat(item.name, "\"]"); });
220
- output += "\n type ".concat(componentName, "Params = ").concat(requestBodyComponent, " & {\n ").concat(queryParamsType, "\n }\n\n type ").concat(componentName, "QueryProps<T = ").concat(responseTypes, "> = ").concat(componentName, "Params & {\n const body = {").concat(generateBodyProps(), "}\n const params = {").concat(generateProps(queryParams), "}\n options?: UseQueryOptions<").concat(responseTypes, ", AxiosError, T, any> \n }\n\n const ").concat(fetchName, " = async ({body, params}: ").concat(componentName, "Params) => { \n const queryParams = {").concat(queryParamsProps.join(','), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, ").concat(config, ")\n return result.data\n }\n ");
221
- }
222
- if (requestBodyComponent && !paramsInPath.length && !queryParam && headerParam) {
223
- output += "\n type ".concat(componentName, "Params = ").concat(requestBodyComponent, " & {\n ").concat(headerParam, "\n };\n\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params) => {\n const headers = {").concat(generateProps(header), "}\n const body = {").concat(generateBodyProps(), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, body, {headers})\n return result.data\n }\n ");
224
- }
225
- if (requestBodyComponent && !paramsInPath.length && queryParam && headerParam) {
226
- output += "\n type ".concat(componentName, "Params = ").concat(requestBodyComponent, " & {\n ").concat(headerParam, "\n ").concat(paramsTypes, "\n };\n\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params) => {\n const body = {").concat(generateBodyProps(), "}\n const headers = {").concat(generateProps(header), "}\n const params = {").concat(generateProps(queryParams), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route, "`, body, {headers, params})\n return result.data\n }\n ");
227
- }
228
- if (requestBodyComponent && paramsInPath.length && !queryParam && !headerParam) {
229
- output += "\n type ".concat(componentName, "Params = ").concat(requestBodyComponent, " & {\n ").concat(headerParam, "\n ").concat(paramsTypes, "\n };\n\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params) => {\n const body = {").concat(generateBodyProps(), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route.replace(/\{/g, '{props.'), "`, body)\n return result.data\n }\n ");
230
- }
231
- if (requestBodyComponent && paramsInPath.length && queryParam && !headerParam) {
232
- output += "// TODO: NOT SUPPORTED requestBodyComponent && paramsInPath && queryParam)";
233
- }
234
- if (requestBodyComponent && paramsInPath.length && queryParam && headerParam) {
235
- output += "// TODO: NOT SUPPORTED requestBodyComponent && paramsInPath && queryParam && headerParam)";
236
- }
237
- if (!requestBodyComponent && paramsInPath.length && !queryParam && headerParam) {
238
- var config = isUpdateRequest ? 'null,{headers}' : '{headers}';
239
- output += "\n type ".concat(componentName, "Params = {\n ").concat(headerParam, "\n ").concat(paramsTypes, "\n };\n\n const ").concat(fetchName, " = async (props: ").concat(componentName, "Params) => {\n const headers = {").concat(generateProps(header), "}\n const result = await api.").concat(verb, "<").concat(responseTypes, ">(`").concat(route.replace(/\{/g, '{props.'), "`, ").concat(config, ")\n return result.data\n }\n ");
240
- }
241
- if (!requestBodyComponent && paramsInPath.length && queryParam && headerParam) {
242
- output += "// TODO: NOT SUPPORTED (paramsInPath && queryParam && headerParam)";
243
- }
244
- if (requestBodyComponent && paramsInPath.length && !queryParam && headerParam) {
245
- output += "// TODO: NOT SUPPORTED (requestBodyComponent && paramsInPath && headerParam)";
246
- }
247
- return { implementation: output, imports: imports, queryImports: queryImports };
248
- };
249
- exports.createHook = createHook;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- exports.__esModule = true;
12
- exports.generateImports = void 0;
13
- var generateImports = function (_a) {
14
- var schemaName = _a.schemaName, apiDirectory = _a.apiDirectory, queryClientDir = _a.queryClientDir, schemaImports = _a.schemaImports, queryImports = _a.queryImports;
15
- var importTypes = schemaImports.join(',');
16
- var imports = [];
17
- if (queryImports.includes('query')) {
18
- imports = __spreadArray(__spreadArray([], imports, true), ['useQuery', 'UseQueryOptions', 'QueryKey', 'SetDataOptions', 'QueryFilters'], false);
19
- }
20
- if (queryImports.includes('infiniteQuery')) {
21
- imports = __spreadArray(__spreadArray([], imports, true), ['useInfiniteQuery', 'UseInfiniteQueryOptions', 'QueryKey'], false);
22
- }
23
- if (queryImports.includes('mutation')) {
24
- imports = __spreadArray(__spreadArray([], imports, true), ['UseMutationOptions', 'useMutation'], false);
25
- }
26
- var importString = __spreadArray([], new Set(imports), true).join(',');
27
- return "\n import {\n ".concat(importString, "\n } from '@tanstack/react-query';\n \n import { AxiosError } from 'axios';\n import { api } from '").concat(apiDirectory, "';\n import { queryClient } from '").concat(queryClientDir, "';\n\n import {").concat(importTypes, "} from './").concat(schemaName, "'\n\n type Updater<TInput, TOutput> = TOutput | ((input: TInput) => TOutput); \n ");
28
- };
29
- exports.generateImports = generateImports;
@@ -1,108 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.generateSchemas = void 0;
4
- var case_1 = require("case");
5
- var lodash_1 = require("lodash");
6
- var isEmpty = lodash_1["default"].isEmpty;
7
- var pascal = case_1["default"].pascal;
8
- var utils_js_1 = require("./utils.js");
9
- var utils_js_2 = require("./utils.js");
10
- /**
11
- * Generate the interface string
12
- */
13
- var generateInterface = function (name, schema) {
14
- var scalar = (0, utils_js_1.getScalar)(schema);
15
- return "".concat((0, utils_js_1.formatDescription)(schema.description), "\n export type ").concat(pascal(name), " = ").concat(scalar, "\n ");
16
- };
17
- /**
18
- * Extract all types from #/components/schemas
19
- */
20
- var generateSchemasDefinition = function (schemas) {
21
- if (schemas === void 0) { schemas = {}; }
22
- if (isEmpty(schemas)) {
23
- return '';
24
- }
25
- return ('\n // SCEHMAS \n' +
26
- Object.entries(schemas)
27
- .map(function (_a) {
28
- var name = _a[0], schema = _a[1];
29
- return !(0, utils_js_1.isReference)(schema) &&
30
- (!schema.type || schema.type === 'object') &&
31
- !schema.allOf &&
32
- !schema.oneOf &&
33
- !(0, utils_js_1.isReference)(schema) &&
34
- !schema.nullable
35
- ? generateInterface(name, schema)
36
- : "".concat((0, utils_js_1.formatDescription)((0, utils_js_1.isReference)(schema) ? undefined : schema.description), " export type ").concat(pascal(name), " = ").concat((0, utils_js_1.resolveValue)(schema), ";");
37
- })
38
- .join('\n\n') +
39
- '\n');
40
- };
41
- /**
42
- * Extract all types from #/components/requestBodies
43
- */
44
- var generateRequestBodiesDefinition = function (requestBodies) {
45
- if (requestBodies === void 0) { requestBodies = {}; }
46
- if (isEmpty(requestBodies)) {
47
- return '';
48
- }
49
- return ('\n // REQUEST BODIES \n' +
50
- Object.entries(requestBodies)
51
- .map(function (_a) {
52
- var name = _a[0], requestBody = _a[1];
53
- var doc = (0, utils_js_2.getDocs)(requestBody);
54
- var type = (0, utils_js_2.getResReqTypes)([['', requestBody]]);
55
- var isEmptyInterface = type === '{}';
56
- if (isEmptyInterface) {
57
- return "".concat(doc, "\nexport type ").concat(pascal(name), "RequestBody = ").concat(type);
58
- }
59
- else if (type.includes('{') && !type.includes('|') && !type.includes('&')) {
60
- return "".concat(doc, "\nexport type ").concat(pascal(name), "RequestBody = ").concat(type);
61
- }
62
- else {
63
- return "".concat(doc, "\nexport type ").concat(pascal(name), "RequestBody = ").concat(type, ";");
64
- }
65
- })
66
- .join('\n\n') +
67
- '\n');
68
- };
69
- /**
70
- * Extract all types from #/components/responses
71
- */
72
- var generateResponsesDefinition = function (responses) {
73
- if (responses === void 0) { responses = {}; }
74
- if (isEmpty(responses)) {
75
- return '';
76
- }
77
- return ('\n // RESPONSES \n' +
78
- Object.entries(responses)
79
- .map(function (_a) {
80
- var name = _a[0], response = _a[1];
81
- var doc = (0, utils_js_2.getDocs)(response);
82
- var type = (0, utils_js_2.getResReqTypes)([['', response]]);
83
- var isEmptyInterface = type === '{}';
84
- if (isEmptyInterface) {
85
- return "export type RQ".concat(pascal(name), "Response = ").concat(type);
86
- }
87
- else if (type.includes('{') && !type.includes('|') && !type.includes('&')) {
88
- return "".concat(doc, "export type RQ").concat(pascal(name), "Response = ").concat(type);
89
- }
90
- else {
91
- return "".concat(doc, "export type RQ").concat(pascal(name), "Response = ").concat(type, ";");
92
- }
93
- })
94
- .join('\n\n') +
95
- '\n');
96
- };
97
- /**
98
- * Extract all types from #/components/schemas
99
- */
100
- var generateSchemas = function (_a) {
101
- var _b, _c, _d;
102
- var spec = _a.spec;
103
- var schemaOutput = generateRequestBodiesDefinition((_b = spec.components) === null || _b === void 0 ? void 0 : _b.requestBodies) +
104
- generateResponsesDefinition((_c = spec.components) === null || _c === void 0 ? void 0 : _c.responses) +
105
- generateSchemasDefinition((_d = spec.components) === null || _d === void 0 ? void 0 : _d.schemas);
106
- return schemaOutput;
107
- };
108
- exports.generateSchemas = generateSchemas;
@@ -1,134 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- 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;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- exports.__esModule = true;
39
- exports.importSpecs = void 0;
40
- var chalk_1 = require("chalk");
41
- var fs_1 = require("fs");
42
- var path_1 = require("path");
43
- var convertSwaggerFile_js_1 = require("./convertSwaggerFile.js");
44
- var generateHooks_js_1 = require("./generateHooks.js");
45
- var generateImports_js_1 = require("./generateImports.js");
46
- var generateSchemas_js_1 = require("./generateSchemas.js");
47
- function importSpecs(_a) {
48
- var sourceDirectory = _a.sourceDirectory, exportDirectory = _a.exportDirectory, apiDirectory = _a.apiDirectory, queryClientDir = _a.queryClientDir, headerFilters = _a.headerFilters, overrides = _a.overrides;
49
- (0, fs_1.readdir)(sourceDirectory, function (err, filenames) {
50
- var _this = this;
51
- if (err) {
52
- console.log(err);
53
- throw err;
54
- }
55
- filenames.map(function (filename) { return __awaiter(_this, void 0, void 0, function () {
56
- var data, ext, format, spec_1, schemaName, hooksName, name_1, operationIds_1, hooks_1, schemaImportsArray_1, collectedQueryImports_1, imports, schemas, error_1;
57
- return __generator(this, function (_a) {
58
- switch (_a.label) {
59
- case 0:
60
- _a.trys.push([0, 2, , 3]);
61
- data = (0, fs_1.readFileSync)((0, path_1.join)(process.cwd(), sourceDirectory + '/' + filename), 'utf-8');
62
- ext = (0, path_1.parse)(sourceDirectory + '/' + filename).ext;
63
- format = ['.yaml', '.yml'].includes(ext.toLowerCase()) ? 'yaml' : 'json';
64
- return [4 /*yield*/, (0, convertSwaggerFile_js_1.convertSwaggerFile)(data, format)];
65
- case 1:
66
- spec_1 = _a.sent();
67
- schemaName = "useQueries".concat(filename.split('.')[0], ".schema");
68
- hooksName = "useQueries".concat(filename.split('.')[0]);
69
- name_1 = filename.split('.')[0];
70
- (0, fs_1.mkdirSync)((0, path_1.join)(process.cwd(), "".concat(exportDirectory, "/").concat(name_1)), { recursive: true });
71
- operationIds_1 = [];
72
- hooks_1 = '';
73
- schemaImportsArray_1 = [];
74
- collectedQueryImports_1 = [];
75
- Object.entries(spec_1.paths).forEach(function (_a) {
76
- var route = _a[0], verbs = _a[1];
77
- Object.entries(verbs).forEach(function (_a) {
78
- var verb = _a[0], operation = _a[1];
79
- if (['get', 'post', 'patch', 'put', 'delete'].includes(verb) && !operation.deprecated) {
80
- var _b = (0, generateHooks_js_1.createHook)({
81
- operation: operation,
82
- verb: verb,
83
- route: (spec_1.basePath || '') + route,
84
- operationIds: operationIds_1,
85
- parameters: verbs.parameters,
86
- schemasComponents: spec_1.components,
87
- headerFilters: headerFilters,
88
- overrides: overrides
89
- }), implementation = _b.implementation, imports_1 = _b.imports, queryImports = _b.queryImports;
90
- hooks_1 += implementation;
91
- imports_1.forEach(function (element) {
92
- var formattedImport = element.replace('[]', '');
93
- if (!schemaImportsArray_1.includes(formattedImport) &&
94
- element !== 'void' &&
95
- element !== 'string' &&
96
- !element.includes('{')) {
97
- schemaImportsArray_1.push(formattedImport);
98
- }
99
- });
100
- queryImports.forEach(function (element) {
101
- if (!schemaImportsArray_1.includes(element)) {
102
- collectedQueryImports_1.push(element);
103
- }
104
- });
105
- }
106
- });
107
- });
108
- imports = (0, generateImports_js_1.generateImports)({
109
- apiDirectory: apiDirectory,
110
- queryClientDir: queryClientDir,
111
- schemaName: schemaName,
112
- schemaImports: schemaImportsArray_1,
113
- queryImports: collectedQueryImports_1
114
- });
115
- (0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), "".concat(exportDirectory, "/").concat(name_1, "/").concat(hooksName, ".tsx")), imports + hooks_1);
116
- schemas = (0, generateSchemas_js_1.generateSchemas)({ spec: spec_1 });
117
- (0, fs_1.writeFileSync)((0, path_1.join)(process.cwd(), "".concat(exportDirectory, "/").concat(name_1, "/").concat(schemaName, ".tsx")), schemas);
118
- console.log(chalk_1["default"].green("\uD83C\uDF89 [".concat(filename, "] Your OpenAPI spec has been converted into react query hooks")));
119
- return [3 /*break*/, 3];
120
- case 2:
121
- error_1 = _a.sent();
122
- if (error_1.code === 'EISDIR') {
123
- console.log(chalk_1["default"].red('nested folder structure not supported'));
124
- return [2 /*return*/];
125
- }
126
- console.log(chalk_1["default"].red("[".concat(filename, "]:")), chalk_1["default"].red(error_1));
127
- return [3 /*break*/, 3];
128
- case 3: return [2 /*return*/];
129
- }
130
- });
131
- }); });
132
- });
133
- }
134
- exports.importSpecs = importSpecs;
package/lib/src/index.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
- exports.__esModule = true;
3
- exports.convertSwaggerFile = exports.importSpecs = void 0;
4
- var convertSwaggerFile_js_1 = require("./convertSwaggerFile.js");
5
- exports.convertSwaggerFile = convertSwaggerFile_js_1.convertSwaggerFile;
6
- var importSpecs_js_1 = require("./importSpecs.js");
7
- exports.importSpecs = importSpecs_js_1.importSpecs;