mobx-tanstack-query-api 0.0.85 → 0.0.86

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.
@@ -1,5 +1,6 @@
1
1
  import { LoDashStatic } from 'lodash';
2
2
  import { AnyObject, KeyOfByValue, Maybe } from 'yummies/utils/types';
3
+ import { RemoveUnusedTypesParams } from './utils/remove-unused-types.js';
3
4
  export type CodegenDataUtils = {
4
5
  _: LoDashStatic;
5
6
  getInlineParseContent: (requestParams: AnyObject) => string;
@@ -22,7 +23,9 @@ export interface GenerateQueryApiParams {
22
23
  requestPathPrefix?: string;
23
24
  requestPathSuffix?: string;
24
25
  requestInfoPrefix?: string;
25
- removeUnusedTypes?: boolean;
26
+ removeUnusedTypes?: true | {
27
+ keepTypes?: RemoveUnusedTypesParams['keepTypes'];
28
+ };
26
29
  formatExportGroupName?: (groupName: string, utils: CodegenDataUtils) => string;
27
30
  /**
28
31
  * Group endpoints and collect it into object
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codegen/index.ts"],"names":[],"mappings":"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"}
package/codegen/index.js CHANGED
@@ -7,7 +7,7 @@ import { dataContractsFileTmpl } from './templates/data-contracts-file.tmpl.js';
7
7
  import { endpointPerFileTmpl } from './templates/endpoint-per-file.tmpl.js';
8
8
  import { indexTsForEndpointPerFileTmpl } from './templates/index-ts-for-endpoint-per-file.tmpl.js';
9
9
  import { metaInfoTmpl } from './templates/meta-info.tmpl.js';
10
- import { removeUnusedTypes } from './utils/remove-unused-types.js';
10
+ import { removeUnusedTypes, } from './utils/remove-unused-types.js';
11
11
  const __filename = fileURLToPath(import.meta.url);
12
12
  const __dirname = path.dirname(__filename);
13
13
  const __execdirname = process.cwd();
@@ -384,7 +384,10 @@ export * as ${namespace} from './__exports';
384
384
  }
385
385
  if (params.removeUnusedTypes) {
386
386
  removeUnusedTypes({
387
- dir: params.output,
387
+ directory: params.output,
388
+ keepTypes: params.removeUnusedTypes === true
389
+ ? undefined
390
+ : params.removeUnusedTypes.keepTypes,
388
391
  });
389
392
  }
390
393
  };
@@ -1,4 +1,6 @@
1
- export declare const removeUnusedTypes: ({ dir }: {
2
- dir: string;
3
- }) => Promise<void>;
1
+ export interface RemoveUnusedTypesParams {
2
+ directory: string;
3
+ keepTypes?: RegExp | (RegExp | string)[];
4
+ }
5
+ export declare const removeUnusedTypes: (params: RemoveUnusedTypesParams) => Promise<void>;
4
6
  //# sourceMappingURL=remove-unused-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remove-unused-types.d.ts","sourceRoot":"","sources":["../../../src/codegen/utils/remove-unused-types.ts"],"names":[],"mappings":"AAqIA,eAAO,MAAM,iBAAiB,GAAU,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,kBAK/D,CAAC"}
1
+ {"version":3,"file":"remove-unused-types.d.ts","sourceRoot":"","sources":["../../../src/codegen/utils/remove-unused-types.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC1C;AAwJD,eAAO,MAAM,iBAAiB,GAAU,QAAQ,uBAAuB,kBAKtE,CAAC"}
@@ -1,13 +1,27 @@
1
1
  /* eslint-disable no-constant-condition */
2
2
  import { Project, SyntaxKind, Node } from 'ts-morph';
3
3
  import path from 'node:path';
4
- const removeUnusedTypesItteration = async ({ dir }) => {
4
+ const checkAbleToRemoveType = (typeName, keepTypes) => {
5
+ if (!keepTypes) {
6
+ return true;
7
+ }
8
+ const keepTypesArr = Array.isArray(keepTypes) ? keepTypes : [keepTypes];
9
+ return keepTypesArr.every((keepTypeCheck) => {
10
+ if (typeof keepTypeCheck === 'string') {
11
+ return typeName !== keepTypeCheck;
12
+ }
13
+ else {
14
+ return !keepTypeCheck.test(typeName);
15
+ }
16
+ });
17
+ };
18
+ const removeUnusedTypesItteration = async ({ directory, keepTypes, }) => {
5
19
  const project = new Project();
6
20
  project.addSourceFilesAtPaths([
7
- path.join(dir, '**/*.ts'),
8
- path.join(dir, '**/*.tsx'),
21
+ path.join(directory, '**/*.ts'),
22
+ path.join(directory, '**/*.tsx'),
9
23
  ]);
10
- const dataContractsSourceFile = project.getSourceFile((sourceFile) => sourceFile.getFilePath().includes(`${dir}/data-contracts.ts`));
24
+ const dataContractsSourceFile = project.getSourceFile((sourceFile) => sourceFile.getFilePath().includes(`${directory}/data-contracts.ts`));
11
25
  if (!dataContractsSourceFile)
12
26
  return;
13
27
  const exportedDeclarations = dataContractsSourceFile.getExportedDeclarations();
@@ -87,7 +101,7 @@ const removeUnusedTypesItteration = async ({ dir }) => {
87
101
  if (usedTypes.has(name))
88
102
  continue;
89
103
  for (const decl of declarations) {
90
- if ('remove' in decl) {
104
+ if ('remove' in decl && checkAbleToRemoveType(name, keepTypes)) {
91
105
  decl.remove();
92
106
  removedCount++;
93
107
  }
@@ -98,9 +112,9 @@ const removeUnusedTypesItteration = async ({ dir }) => {
98
112
  }
99
113
  return removedCount;
100
114
  };
101
- export const removeUnusedTypes = async ({ dir }) => {
115
+ export const removeUnusedTypes = async (params) => {
102
116
  while (true) {
103
- const removedCount = (await removeUnusedTypesItteration({ dir })) ?? 0;
117
+ const removedCount = (await removeUnusedTypesItteration(params)) ?? 0;
104
118
  if (removedCount === 0)
105
119
  break;
106
120
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobx-tanstack-query-api",
3
- "version": "0.0.85",
3
+ "version": "0.0.86",
4
4
  "keywords": [],
5
5
  "author": "js2me",
6
6
  "license": "MIT",