mobx-tanstack-query-api 0.0.77 → 0.0.79
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.
package/codegen/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export type CodegenDataUtils = {
|
|
|
5
5
|
getInlineParseContent: (requestParams: AnyObject) => string;
|
|
6
6
|
formatModelName: (modelName: string) => string;
|
|
7
7
|
};
|
|
8
|
+
type FilterEndpointsFn = (endpoint: AnyObject) => boolean;
|
|
8
9
|
export type CodegenProcess = AnyObject;
|
|
9
10
|
export interface ImportFileParams {
|
|
10
11
|
path: string;
|
|
@@ -25,7 +26,7 @@ export interface GenerateQueryApiParams {
|
|
|
25
26
|
/**
|
|
26
27
|
* Group endpoints and collect it into object
|
|
27
28
|
*/
|
|
28
|
-
groupBy?: ((
|
|
29
|
+
groupBy?: ((endpoint: AnyObject) => string) | `path-segment` | `path-segment-${number}` | `tag` | `tag-${number}`;
|
|
29
30
|
/**
|
|
30
31
|
* Collect all exports into single namespace
|
|
31
32
|
*
|
|
@@ -66,7 +67,7 @@ export interface GenerateQueryApiParams {
|
|
|
66
67
|
};
|
|
67
68
|
requestOptions?: AnyObject;
|
|
68
69
|
otherCodegenParams?: AnyObject;
|
|
69
|
-
|
|
70
|
+
filterEndpoints?: FilterEndpointsFn | RegExp | RegExp[];
|
|
70
71
|
filterGroups?: (groupName: string) => boolean;
|
|
71
72
|
libImports?: {
|
|
72
73
|
'mobx-tanstack-query-api'?: string;
|
|
@@ -78,4 +79,5 @@ export interface GenerateQueryApiParams {
|
|
|
78
79
|
}
|
|
79
80
|
export type AllImportFileParams = Record<KeyOfByValue<Required<GenerateQueryApiParams>, 'builtin' | ImportFileParams>, ImportFileParams>;
|
|
80
81
|
export declare const generateApi: (params: GenerateQueryApiParams | GenerateQueryApiParams[]) => Promise<void>;
|
|
82
|
+
export {};
|
|
81
83
|
//# sourceMappingURL=index.d.ts.map
|
package/codegen/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAgBrE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,EAAE,YAAY,CAAC;IAChB,qBAAqB,EAAE,CAAC,aAAa,EAAE,SAAS,KAAK,MAAM,CAAC;IAC5D,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,CAAC;AAEvC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qBAAqB,CAAC,EAAE,CACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,gBAAgB,KACpB,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,CAAC,EACJ,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"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"}
|
package/codegen/index.js
CHANGED
|
@@ -130,15 +130,33 @@ export const generateApi = async (params) => {
|
|
|
130
130
|
const codegenFs = codegenProcess.fileSystem;
|
|
131
131
|
codegenFs.cleanDir(params.output);
|
|
132
132
|
codegenFs.createDir(params.output);
|
|
133
|
-
|
|
133
|
+
const allRoutes = Object.values(generated.configuration.routes)
|
|
134
134
|
.flat()
|
|
135
135
|
.flatMap((routeGroup) => 'routes' in routeGroup ? routeGroup.routes : routeGroup);
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
let filterEndpoints;
|
|
137
|
+
if (params.filterEndpoints) {
|
|
138
|
+
if (typeof params.filterEndpoints === 'function') {
|
|
139
|
+
filterEndpoints = params.filterEndpoints;
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const regexps = Array.isArray(params.filterEndpoints)
|
|
143
|
+
? params.filterEndpoints
|
|
144
|
+
: [params.filterEndpoints];
|
|
145
|
+
filterEndpoints = (route) => regexps.some((regexp) => {
|
|
146
|
+
if (!route.raw) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return regexp.test(route.raw.operationId);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
filterEndpoints = () => true;
|
|
155
|
+
}
|
|
139
156
|
const reservedDataContractNamesMap = new Map();
|
|
140
157
|
const collectedExportFiles = [];
|
|
141
158
|
const groupsMap = new Map();
|
|
159
|
+
const nonEmptyGroups = new Set();
|
|
142
160
|
const tagsSet = new Set();
|
|
143
161
|
if (params.groupBy == null) {
|
|
144
162
|
collectedExportFiles.push('endpoints');
|
|
@@ -166,6 +184,9 @@ export const generateApi = async (params) => {
|
|
|
166
184
|
reservedDataContractNames.forEach((name) => {
|
|
167
185
|
reservedDataContractNamesMap.set(name, (reservedDataContractNamesMap.get(name) ?? 0) + 1);
|
|
168
186
|
});
|
|
187
|
+
if (!filterEndpoints(route)) {
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
169
190
|
const fileName = `${_.kebabCase(route.routeName.usage)}.ts`;
|
|
170
191
|
fileNamesWithRequestInfo.push(fileName);
|
|
171
192
|
codegenFs.createFile({
|
|
@@ -221,6 +242,7 @@ export const generateApi = async (params) => {
|
|
|
221
242
|
const fileNamesWithRequestInfo = [];
|
|
222
243
|
codegenFs.createDir(path.resolve(params.output, _.kebabCase(groupName)));
|
|
223
244
|
codegenFs.createDir(path.resolve(params.output, _.kebabCase(groupName), 'endpoints'));
|
|
245
|
+
let hasFilteredRoutes = false;
|
|
224
246
|
for await (const route of routes) {
|
|
225
247
|
const { content: requestInfoPerFileContent, reservedDataContractNames, } = await endpointPerFileTmpl({
|
|
226
248
|
...generated,
|
|
@@ -236,12 +258,16 @@ export const generateApi = async (params) => {
|
|
|
236
258
|
groupNames: [],
|
|
237
259
|
},
|
|
238
260
|
});
|
|
239
|
-
if (Array.isArray(route.raw.tags)) {
|
|
240
|
-
route.raw.tags.forEach((tag) => tagsSet.add(tag));
|
|
241
|
-
}
|
|
242
261
|
reservedDataContractNames.forEach((name) => {
|
|
243
262
|
reservedDataContractNamesMap.set(name, (reservedDataContractNamesMap.get(name) ?? 0) + 1);
|
|
244
263
|
});
|
|
264
|
+
if (!filterEndpoints(route)) {
|
|
265
|
+
continue;
|
|
266
|
+
}
|
|
267
|
+
hasFilteredRoutes = true;
|
|
268
|
+
if (Array.isArray(route.raw.tags)) {
|
|
269
|
+
route.raw.tags.forEach((tag) => tagsSet.add(tag));
|
|
270
|
+
}
|
|
245
271
|
const fileName = `${_.kebabCase(route.routeName.usage)}.ts`;
|
|
246
272
|
fileNamesWithRequestInfo.push(fileName);
|
|
247
273
|
codegenFs.createFile({
|
|
@@ -251,36 +277,42 @@ export const generateApi = async (params) => {
|
|
|
251
277
|
content: requestInfoPerFileContent,
|
|
252
278
|
});
|
|
253
279
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
280
|
+
if (hasFilteredRoutes) {
|
|
281
|
+
nonEmptyGroups.add(groupName);
|
|
282
|
+
const exportGroupName = params.formatExportGroupName
|
|
283
|
+
? params.formatExportGroupName(_.camelCase(groupName), utils)
|
|
284
|
+
: _.camelCase(groupName);
|
|
285
|
+
codegenFs.createFile({
|
|
286
|
+
path: path.resolve(params.output, _.kebabCase(groupName)),
|
|
287
|
+
fileName: 'index.ts',
|
|
288
|
+
withPrefix: false,
|
|
289
|
+
content: `${LINTERS_IGNORE}
|
|
262
290
|
export * as ${exportGroupName} from './endpoints';
|
|
263
291
|
`,
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
292
|
+
});
|
|
293
|
+
codegenFs.createFile({
|
|
294
|
+
path: path.resolve(params.output, _.kebabCase(groupName), 'endpoints'),
|
|
295
|
+
fileName: 'index.ts',
|
|
296
|
+
withPrefix: false,
|
|
297
|
+
content: await indexTsForEndpointPerFileTmpl({
|
|
298
|
+
...generated,
|
|
299
|
+
apiParams: params,
|
|
300
|
+
codegenProcess,
|
|
301
|
+
generatedRequestFileNames: fileNamesWithRequestInfo,
|
|
302
|
+
}),
|
|
303
|
+
});
|
|
304
|
+
collectedExportFiles.push(_.kebabCase(groupName));
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
codegenFs.removeDir(path.resolve(params.output, _.kebabCase(groupName)));
|
|
308
|
+
}
|
|
277
309
|
}
|
|
278
310
|
// #endregion
|
|
279
311
|
}
|
|
280
|
-
const metaInfo = (namespace ??
|
|
312
|
+
const metaInfo = (namespace ?? (nonEmptyGroups.size > 0 || tagsSet.size > 0))
|
|
281
313
|
? {
|
|
282
314
|
namespace,
|
|
283
|
-
groupNames: [...
|
|
315
|
+
groupNames: [...nonEmptyGroups.values()],
|
|
284
316
|
tags: [...tagsSet.values()],
|
|
285
317
|
}
|
|
286
318
|
: null;
|
|
@@ -8,5 +8,5 @@ export interface MetaInfoTmplParams {
|
|
|
8
8
|
}
|
|
9
9
|
export declare const formatGroupNameEnumKey: (groupName: string, { _ }: CodegenDataUtils) => Capitalize<string>;
|
|
10
10
|
export declare const formatTagNameEnumKey: (tagName: string, utils: CodegenDataUtils) => Capitalize<string>;
|
|
11
|
-
export declare const metaInfoTmpl: ({ metaInfo, utils, formatTSContent, codegenParams, }: MetaInfoTmplParams) => Promise<string>;
|
|
11
|
+
export declare const metaInfoTmpl: ({ metaInfo, utils, formatTSContent, codegenParams, ...other }: MetaInfoTmplParams) => Promise<string>;
|
|
12
12
|
//# sourceMappingURL=meta-info.tmpl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-info.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/meta-info.tmpl.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"meta-info.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/meta-info.tmpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,QAAQ,EACT,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,sBAAsB,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,EACjB,OAAO,gBAAgB,uBACgB,CAAC;AAE1C,eAAO,MAAM,oBAAoB,GAC/B,SAAS,MAAM,EACf,OAAO,gBAAgB,uBACkB,CAAC;AAE5C,eAAO,MAAM,YAAY,GAAU,+DAMhC,kBAAkB,oBAsCpB,CAAC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { LINTERS_IGNORE } from './constants.js';
|
|
2
2
|
export const formatGroupNameEnumKey = (groupName, { _ }) => _.upperFirst(_.camelCase(groupName));
|
|
3
3
|
export const formatTagNameEnumKey = (tagName, utils) => formatGroupNameEnumKey(tagName, utils);
|
|
4
|
-
export const metaInfoTmpl = async ({ metaInfo, utils, formatTSContent, codegenParams, }) => {
|
|
4
|
+
export const metaInfoTmpl = async ({ metaInfo, utils, formatTSContent, codegenParams, ...other }) => {
|
|
5
|
+
const tagsMap = new Map(other.configuration?.apiConfig?.tags?.map((it) => [
|
|
6
|
+
it.name,
|
|
7
|
+
it,
|
|
8
|
+
]));
|
|
5
9
|
return await formatTSContent(`${LINTERS_IGNORE}
|
|
6
10
|
${[
|
|
7
11
|
metaInfo?.namespace && `export const namespace = "${metaInfo?.namespace}";`,
|
|
@@ -14,7 +18,17 @@ export const enum Group {
|
|
|
14
18
|
metaInfo?.tags?.length &&
|
|
15
19
|
`
|
|
16
20
|
export const enum Tag {
|
|
17
|
-
${metaInfo?.tags
|
|
21
|
+
${metaInfo?.tags
|
|
22
|
+
.map((tagName) => {
|
|
23
|
+
const tagData = tagsMap.get(tagName);
|
|
24
|
+
return [
|
|
25
|
+
tagData?.description && `/** ${tagData.description} */`,
|
|
26
|
+
`${formatTagNameEnumKey(tagName, utils)} = "${codegenParams.transforms?.tagEnumValue?.(tagName) ?? tagName}"`,
|
|
27
|
+
]
|
|
28
|
+
.filter(Boolean)
|
|
29
|
+
.join('\n');
|
|
30
|
+
})
|
|
31
|
+
.join(',\n')}
|
|
18
32
|
}
|
|
19
33
|
`,
|
|
20
34
|
]
|