mobx-tanstack-query-api 0.0.38 → 0.0.39

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.
@@ -61,6 +61,7 @@ export interface GenerateQueryApiParams {
61
61
  };
62
62
  requestOptions?: AnyObject;
63
63
  otherCodegenParams?: AnyObject;
64
+ filterRoutes?: (route: AnyObject) => boolean;
64
65
  libImports?: {
65
66
  'mobx-tanstack-query-api'?: string;
66
67
  };
@@ -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,MAAM,qBAAqB,CAAC;AAc9D,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,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,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,GAC9B,cAAc,GACd,gBAAgB,MAAM,EAAE,GACxB,KAAK,GACL,OAAO,MAAM,EAAE,CAAC;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC;IAEpD;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE7C,WAAW,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAE1C,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,KACb;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,KACb;QACH,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,UAAU,CAAC,EAAE;QACX,yBAAyB,CAAC,EAAE,MAAM,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC,EAC5E,gBAAgB,CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,QAAQ,sBAAsB,GAAG,sBAAsB,EAAE,KACxD,OAAO,CAAC,IAAI,CAkXd,CAAC"}
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,MAAM,qBAAqB,CAAC;AAc9D,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,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,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,GAC9B,cAAc,GACd,gBAAgB,MAAM,EAAE,GACxB,KAAK,GACL,OAAO,MAAM,EAAE,CAAC;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC;IAEpD;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAE7C,WAAW,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,UAAU,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAE1C,eAAe,CAAC,EAAE,CAChB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,KACb;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,cAAc,CAAC,EAAE,CACf,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,KACb;QACH,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,cAAc,CAAC,EAAE,SAAS,CAAC;IAE3B,kBAAkB,CAAC,EAAE,SAAS,CAAC;IAE/B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC;IAE7C,UAAU,CAAC,EAAE;QACX,yBAAyB,CAAC,EAAE,MAAM,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,SAAS,GAAG,gBAAgB,CAAC,EAC5E,gBAAgB,CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,QAAQ,sBAAsB,GAAG,sBAAsB,EAAE,KACxD,OAAO,CAAC,IAAI,CAsXd,CAAC"}
package/codegen/index.js CHANGED
@@ -48,7 +48,7 @@ export const generateApi = async (params) => {
48
48
  disableStrictSSL: false,
49
49
  singleHttpClient: true,
50
50
  extractRequestBody: true,
51
- extractRequestParams: true,
51
+ extractRequestParams: false,
52
52
  extractResponseBody: true,
53
53
  extractResponseError: true,
54
54
  generateResponses: true,
@@ -113,9 +113,12 @@ export const generateApi = async (params) => {
113
113
  const codegenFs = codegenProcess.fileSystem;
114
114
  codegenFs.cleanDir(params.output);
115
115
  codegenFs.createDir(params.output);
116
- const allRoutes = Object.values(generated.configuration.routes)
116
+ let allRoutes = Object.values(generated.configuration.routes)
117
117
  .flat()
118
118
  .flatMap((routeGroup) => 'routes' in routeGroup ? routeGroup.routes : routeGroup);
119
+ allRoutes = params.filterRoutes
120
+ ? allRoutes.filter(params.filterRoutes)
121
+ : allRoutes;
119
122
  const reservedDataContractNamesMap = new Map();
120
123
  const collectedExportFiles = [];
121
124
  if (params.groupBy == null) {
@@ -9,6 +9,11 @@ export interface NewRequestInfoTmplParams {
9
9
  }
10
10
  export declare const newRequestInfoTmpl: ({ route, apiParams, importFileParams, utils, }: NewRequestInfoTmplParams) => {
11
11
  reservedDataContractNames: string[];
12
+ localModelTypes: {
13
+ typeIdentifier: string;
14
+ name: Capitalize<string>;
15
+ content: string;
16
+ }[];
12
17
  content: string;
13
18
  };
14
19
  //# sourceMappingURL=new-request-info.tmpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"new-request-info.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/new-request-info.tmpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAiBD,eAAO,MAAM,kBAAkB,GAAI,gDAKhC,wBAAwB;;;CA2K1B,CAAC"}
1
+ {"version":3,"file":"new-request-info.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/new-request-info.tmpl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,sBAAsB,CAAC;IAClC,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAiBD,eAAO,MAAM,kBAAkB,GAAI,gDAKhC,wBAAwB;;;;;;;;CAiK1B,CAAC"}
@@ -24,11 +24,12 @@ export const newRequestInfoTmpl = ({ route, apiParams, importFileParams, utils,
24
24
  const pathParams = _.values(parameters);
25
25
  const pathParamsNames = _.map(pathParams, 'name');
26
26
  const requestConfigParam = {
27
- name: 'request',
27
+ name: 'requestParams',
28
28
  optional: true,
29
29
  type: 'RequestParams',
30
30
  defaultValue: '{}',
31
31
  };
32
+ const inputParams = [...pathParams, query, requestConfigParam].filter(Boolean);
32
33
  const getArgs = ({ withPayload, withRequestConfigParam, }) => {
33
34
  return _.sortBy(_.compact([
34
35
  ...(requestParams
@@ -47,15 +48,8 @@ export const newRequestInfoTmpl = ({ route, apiParams, importFileParams, utils,
47
48
  ]), [(o) => o.optional]);
48
49
  };
49
50
  const tags = (raw.tags || []).filter(Boolean);
50
- const allArgs = getArgs({
51
- withPayload: true,
52
- withRequestConfigParam: true,
53
- });
54
- const requiredArgs = allArgs.filter((it) => !it.optional);
55
51
  const requestOutputDataTypes = positiveResponseTypes.map((it) => it.type);
56
52
  const requestOutputErrorType = routeResponse.errorType;
57
- let requestInputCombinedType;
58
- const requestInfoFnArgNames = allArgs.map(({ name }) => name);
59
53
  const pathParamsToInline = path.split('/').slice(1);
60
54
  let lastDynamicStructPos = 0;
61
55
  const queryParamStruct = query == null
@@ -69,22 +63,6 @@ export const newRequestInfoTmpl = ({ route, apiParams, importFileParams, utils,
69
63
  if (queryParamStruct && !lastDynamicStructPos) {
70
64
  lastDynamicStructPos++;
71
65
  }
72
- let requestInputType = `{
73
- ${allArgs
74
- .map(({ name, optional, type, defaultValue }) => {
75
- const isCombinedType = name.includes('...') || name === 'query';
76
- if (isCombinedType) {
77
- requestInputCombinedType = { name, optional, type, defaultValue };
78
- return;
79
- }
80
- return `${name}${optional ? '?' : ''}:${type}`;
81
- })
82
- .filter(Boolean)
83
- .join(', ')}
84
- }`;
85
- if (requestInputCombinedType) {
86
- requestInputType = `${requestInputCombinedType.type} & ${requestInputType}`;
87
- }
88
66
  const requestInfoMeta = apiParams.getEndpointMeta?.(route, utils);
89
67
  const requestMeta = apiParams.getRequestMeta?.(route, utils);
90
68
  const resultPath = (apiParams.requestPathPrefix ?? '') +
@@ -100,17 +78,32 @@ export const newRequestInfoTmpl = ({ route, apiParams, importFileParams, utils,
100
78
  }).map((it) => it.type),
101
79
  ]);
102
80
  const pathDeclaration = resultPath.replaceAll('$', '');
81
+ const requestInputTypeDc = {
82
+ typeIdentifier: 'type',
83
+ name: _.upperFirst(_.camelCase(`${route.routeName.usage}Input`)),
84
+ content: `{
85
+ ${inputParams
86
+ .map(({ name, optional, type }) => {
87
+ return `${name}${optional ? '?' : ''}:${type}`;
88
+ })
89
+ .filter(Boolean)
90
+ .join(', ')}
91
+ }`,
92
+ };
103
93
  return {
104
94
  reservedDataContractNames,
95
+ localModelTypes: [requestInputTypeDc],
105
96
  content: `
106
97
  new ${importFileParams.endpoint.exportName}<
107
98
  ${requestOutputDataTypes.join('|') || 'any'},
108
99
  ${requestOutputErrorType},
109
- ${requestInputType},
100
+ ${requestInputTypeDc.name},
110
101
  ${requestInfoMeta?.typeName ?? 'any'}
111
102
  >(
112
103
  {
113
- params: ({ ${requestInfoFnArgNames} }) => ({
104
+ params: ({
105
+ ${inputParams.map((it) => it.name)}
106
+ }) => ({
114
107
  path: \`${resultPath}\`,
115
108
  method: '${_.upperCase(method)}',
116
109
  ${requestMeta?.tmplData ? `meta: ${requestMeta.tmplData},` : ''}
@@ -119,9 +112,9 @@ new ${importFileParams.endpoint.exportName}<
119
112
  ${security ? 'secure: true,' : ''}
120
113
  ${bodyContentType ? `contentType: ${bodyContentType},` : ''}
121
114
  ${responseFormat ? `format: ${responseFormat},` : ''}
122
- ...${requestInfoFnArgNames.at(-1)},
115
+ ...${requestConfigParam.name},
123
116
  }),
124
- requiredParams: [${requiredArgs.map((it) => `"${it.name}"`)}],
117
+ requiredParams: [${inputParams.filter((it) => !it.optional).map((it) => `"${it.name}"`)}],
125
118
  operationId: "${raw.operationId}",
126
119
  pathDeclaration: "${pathDeclaration}",
127
120
  tags: [${tags.map((tag) => `"${tag}"`)}],
@@ -1 +1 @@
1
- {"version":3,"file":"request-info-per-file.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/request-info-per-file.tmpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,4BAA6B,SAAQ,SAAS;IAC7D,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,sBAAsB,GAAU,2GAQ1C,4BAA4B;;;EA6E9B,CAAC"}
1
+ {"version":3,"file":"request-info-per-file.tmpl.d.ts","sourceRoot":"","sources":["../../../src/codegen/templates/request-info-per-file.tmpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,4BAA6B,SAAQ,SAAS;IAC7D,KAAK,EAAE,SAAS,CAAC;IACjB,aAAa,EAAE,SAAS,CAAC;IACzB,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,mBAAmB,CAAC;IACtC,KAAK,EAAE,gBAAgB,CAAC;IACxB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,sBAAsB,GAAU,2GAQ1C,4BAA4B;;;EAgG9B,CAAC"}
@@ -4,7 +4,7 @@ import { newRequestInfoTmpl } from './new-request-info.tmpl.js';
4
4
  import { requestInfoJSDocTmpl } from './request-info-jsdoc.tmpl.js';
5
5
  export const requestInfoPerFileTmpl = async ({ route, configuration, apiParams, formatTSContent, importFileParams, utils, relativePathDataContracts, }) => {
6
6
  const { _ } = utils;
7
- const { content: requestInfoInstanceContent, reservedDataContractNames } = newRequestInfoTmpl({
7
+ const { content: requestInfoInstanceContent, reservedDataContractNames, localModelTypes, } = newRequestInfoTmpl({
8
8
  route,
9
9
  configuration,
10
10
  apiParams,
@@ -48,6 +48,17 @@ export const requestInfoPerFileTmpl = async ({ route, configuration, apiParams,
48
48
  })))
49
49
  .filter(Boolean)
50
50
  .join('\n\n')}
51
+
52
+ ${(await Promise.all(localModelTypes.map(async (modelType) => {
53
+ const contractType = await dataContractTmpl({
54
+ configuration,
55
+ contract: modelType,
56
+ addExportKeyword: true,
57
+ });
58
+ return contractType;
59
+ })))
60
+ .filter(Boolean)
61
+ .join('\n\n')}
51
62
 
52
63
  ${requestInfoJSDocTmpl({
53
64
  route,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-tanstack-query-api",
3
- "version": "0.0.38",
3
+ "version": "0.0.39",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",