@comet/api-generator 9.0.0-canary-20250915134805 → 9.0.0-canary-20251002064922

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.
@@ -0,0 +1,20 @@
1
+ import { type CrudGeneratorOptions } from "@comet/cms-api";
2
+ import { type EntityMetadata } from "@mikro-orm/core";
3
+ export declare function buildSortProps(metadata: EntityMetadata<any>): string[];
4
+ export declare function buildOptions(metadata: EntityMetadata<any>, generatorOptions: CrudGeneratorOptions): {
5
+ crudSearchPropNames: import("@comet/cms-api/lib/common/helper/crud-generator.helper").CrudSearchField[];
6
+ hasSearchArg: boolean;
7
+ crudFilterProps: import("@mikro-orm/core").EntityProperty<any, any>[];
8
+ hasFilterArg: boolean;
9
+ crudSortProps: string[];
10
+ hasSortArg: boolean;
11
+ hasSlugProp: boolean;
12
+ hasPositionProp: boolean;
13
+ positionGroupProps: import("@mikro-orm/core").EntityProperty<any, any>[];
14
+ scopeProp: import("@mikro-orm/core").EntityProperty<any, any> | undefined;
15
+ skipScopeCheck: boolean;
16
+ argsClassName: string;
17
+ argsFileName: string;
18
+ blockProps: import("@mikro-orm/core").EntityProperty<any, any>[];
19
+ dedicatedResolverArgProps: import("@mikro-orm/core").EntityProperty<any, any>[];
20
+ };
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSortProps = buildSortProps;
4
+ exports.buildOptions = buildOptions;
5
+ const cms_api_1 = require("@comet/cms-api");
6
+ const build_name_variants_1 = require("../utils/build-name-variants");
7
+ const constants_1 = require("../utils/constants");
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function buildFilterProps(metadata) {
10
+ const dedicatedResolverArgProps = buildDedicatedResolverArgProps(metadata);
11
+ const crudFilterProps = metadata.props.filter((prop) => (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "filter") &&
12
+ !prop.name.startsWith("scope_") &&
13
+ prop.name != "position" &&
14
+ (!prop.embedded || (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.embedded[0], "filter")) && // the whole embeddable has filter disabled
15
+ (prop.enum ||
16
+ prop.type === "string" ||
17
+ prop.type === "text" ||
18
+ prop.type === "DecimalType" ||
19
+ prop.type === "number" ||
20
+ constants_1.integerTypes.includes(prop.type) ||
21
+ prop.type === "BooleanType" ||
22
+ prop.type === "boolean" ||
23
+ prop.type === "DateType" ||
24
+ prop.type === "Date" ||
25
+ prop.kind === "m:1" ||
26
+ prop.kind === "1:m" ||
27
+ prop.kind === "m:n" ||
28
+ prop.type === "EnumArrayType" ||
29
+ prop.type === "uuid") &&
30
+ !dedicatedResolverArgProps.some((dedicatedResolverArgProp) => dedicatedResolverArgProp.name == prop.name));
31
+ return crudFilterProps;
32
+ }
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ function buildSortProps(metadata) {
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ function directSortProps(metadata) {
37
+ return metadata.props
38
+ .filter((prop) => (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "sort") &&
39
+ !prop.name.startsWith("scope_") &&
40
+ (!prop.embedded || (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.embedded[0], "sort")) && // the whole embeddable has sort disabled
41
+ (prop.type === "string" ||
42
+ prop.type === "text" ||
43
+ prop.type === "DecimalType" ||
44
+ prop.type === "number" ||
45
+ constants_1.integerTypes.includes(prop.type) ||
46
+ prop.type === "BooleanType" ||
47
+ prop.type === "boolean" ||
48
+ prop.type === "DateType" ||
49
+ prop.type === "Date" ||
50
+ prop.kind === "m:1" ||
51
+ prop.type === "EnumArrayType" ||
52
+ prop.enum))
53
+ .map((prop) => {
54
+ return prop.name;
55
+ });
56
+ }
57
+ const crudSortProps = directSortProps(metadata);
58
+ // add nested from relations, one level deep
59
+ metadata.props.forEach((prop) => {
60
+ if ((0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "sort")) {
61
+ if ((prop.kind == "1:1" || prop.kind == "m:1") && prop.targetMeta) {
62
+ crudSortProps.push(...directSortProps(prop.targetMeta).map((nestedProp) => `${prop.name}.${nestedProp}`));
63
+ return true;
64
+ }
65
+ }
66
+ });
67
+ return crudSortProps;
68
+ }
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ function buildDedicatedResolverArgProps(metadata) {
71
+ return metadata.props.filter((prop) => {
72
+ if ((0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "dedicatedResolverArg")) {
73
+ if (prop.kind == "m:1") {
74
+ return true;
75
+ }
76
+ else {
77
+ console.warn(`${metadata.className} ${prop.name} can't use dedicatedResolverArg as it's not a m:1 relation`);
78
+ return false;
79
+ }
80
+ }
81
+ return false;
82
+ });
83
+ }
84
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
+ function buildOptions(metadata, generatorOptions) {
86
+ var _a, _b;
87
+ const { classNameSingular, classNamePlural, fileNameSingular, fileNamePlural } = (0, build_name_variants_1.buildNameVariants)(metadata);
88
+ const dedicatedResolverArgProps = buildDedicatedResolverArgProps(metadata);
89
+ const crudSearchPropNames = (0, cms_api_1.getCrudSearchFieldsFromMetadata)(metadata);
90
+ const hasSearchArg = crudSearchPropNames.length > 0;
91
+ const crudFilterProps = buildFilterProps(metadata);
92
+ const hasFilterArg = crudFilterProps.length > 0;
93
+ const crudSortProps = buildSortProps(metadata);
94
+ const hasSortArg = crudSortProps.length > 0;
95
+ const hasSlugProp = metadata.props.some((prop) => prop.name == "slug");
96
+ const scopeProp = metadata.props.find((prop) => prop.name == "scope");
97
+ if (scopeProp && !scopeProp.targetMeta)
98
+ throw new Error("Scope prop has no targetMeta");
99
+ const hasPositionProp = metadata.props.some((prop) => prop.name == "position");
100
+ const positionGroupPropNames = hasPositionProp
101
+ ? ((_b = (_a = generatorOptions.position) === null || _a === void 0 ? void 0 : _a.groupByFields) !== null && _b !== void 0 ? _b : [
102
+ ...(scopeProp ? [scopeProp.name] : []), // if there is a scope prop it's effecting position-group, if not groupByFields should be used
103
+ ])
104
+ : [];
105
+ const positionGroupProps = hasPositionProp ? metadata.props.filter((prop) => positionGroupPropNames.includes(prop.name)) : [];
106
+ const scopedEntity = Reflect.getMetadata(cms_api_1.SCOPED_ENTITY_METADATA_KEY, metadata.class);
107
+ const skipScopeCheck = !scopeProp && !scopedEntity;
108
+ const argsClassName = `${classNameSingular != classNamePlural ? classNamePlural : `${classNamePlural}List`}Args`;
109
+ const argsFileName = `${fileNameSingular != fileNamePlural ? fileNamePlural : `${fileNameSingular}-list`}.args`;
110
+ const blockProps = metadata.props.filter((prop) => {
111
+ return (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "input") && prop.type === "RootBlockType";
112
+ });
113
+ return {
114
+ crudSearchPropNames,
115
+ hasSearchArg,
116
+ crudFilterProps,
117
+ hasFilterArg,
118
+ crudSortProps,
119
+ hasSortArg,
120
+ hasSlugProp,
121
+ hasPositionProp,
122
+ positionGroupProps,
123
+ scopeProp,
124
+ skipScopeCheck,
125
+ argsClassName,
126
+ argsFileName,
127
+ blockProps,
128
+ dedicatedResolverArgProps,
129
+ };
130
+ }
@@ -1,21 +1,8 @@
1
1
  import { type CrudGeneratorOptions } from "@comet/cms-api";
2
2
  import { type EntityMetadata } from "@mikro-orm/postgresql";
3
3
  import { type GeneratedFile } from "../utils/write-generated-files";
4
- export declare function buildOptions(metadata: EntityMetadata<any>, generatorOptions: CrudGeneratorOptions): {
5
- crudSearchPropNames: import("@comet/cms-api/lib/common/helper/crud-generator.helper").CrudSearchField[];
6
- hasSearchArg: boolean;
7
- crudFilterProps: import("@mikro-orm/postgresql").EntityProperty<any, any>[];
8
- hasFilterArg: boolean;
9
- crudSortProps: import("@mikro-orm/postgresql").EntityProperty<any, any>[];
10
- hasSortArg: boolean;
11
- hasSlugProp: boolean;
12
- hasPositionProp: boolean;
13
- positionGroupProps: import("@mikro-orm/postgresql").EntityProperty<any, any>[];
14
- scopeProp: import("@mikro-orm/postgresql").EntityProperty<any, any> | undefined;
15
- skipScopeCheck: boolean;
16
- argsClassName: string;
17
- argsFileName: string;
18
- blockProps: import("@mikro-orm/postgresql").EntityProperty<any, any>[];
19
- dedicatedResolverArgProps: import("@mikro-orm/postgresql").EntityProperty<any, any>[];
20
- };
4
+ export declare function generateSortDto({ generatorOptions, metadata }: {
5
+ generatorOptions: CrudGeneratorOptions;
6
+ metadata: EntityMetadata<any>;
7
+ }): string;
21
8
  export declare function generateCrud(generatorOptionsParam: CrudGeneratorOptions, metadata: EntityMetadata<any>): Promise<GeneratedFile[]>;
@@ -42,7 +42,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
42
42
  });
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.buildOptions = buildOptions;
45
+ exports.generateSortDto = generateSortDto;
46
46
  exports.generateCrud = generateCrud;
47
47
  /* eslint-disable @typescript-eslint/no-explicit-any */
48
48
  const cms_api_1 = require("@comet/cms-api");
@@ -54,100 +54,10 @@ const build_name_variants_1 = require("../utils/build-name-variants");
54
54
  const constants_1 = require("../utils/constants");
55
55
  const generate_imports_code_1 = require("../utils/generate-imports-code");
56
56
  const ts_morph_helper_1 = require("../utils/ts-morph-helper");
57
- // TODO move into own file
58
- function buildOptions(metadata, generatorOptions) {
59
- var _a, _b;
60
- const { classNameSingular, classNamePlural, fileNameSingular, fileNamePlural } = (0, build_name_variants_1.buildNameVariants)(metadata);
61
- const dedicatedResolverArgProps = metadata.props.filter((prop) => {
62
- if ((0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "dedicatedResolverArg")) {
63
- if (prop.kind == "m:1") {
64
- return true;
65
- }
66
- else {
67
- console.warn(`${metadata.className} ${prop.name} can't use dedicatedResolverArg as it's not a m:1 relation`);
68
- return false;
69
- }
70
- }
71
- return false;
72
- });
73
- const crudSearchPropNames = (0, cms_api_1.getCrudSearchFieldsFromMetadata)(metadata);
74
- const hasSearchArg = crudSearchPropNames.length > 0;
75
- const crudFilterProps = metadata.props.filter((prop) => (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "filter") &&
76
- !prop.name.startsWith("scope_") &&
77
- prop.name != "position" &&
78
- (!prop.embedded || (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.embedded[0], "filter")) && // the whole embeddable has filter disabled
79
- (prop.enum ||
80
- prop.type === "string" ||
81
- prop.type === "text" ||
82
- prop.type === "DecimalType" ||
83
- prop.type === "number" ||
84
- constants_1.integerTypes.includes(prop.type) ||
85
- prop.type === "BooleanType" ||
86
- prop.type === "boolean" ||
87
- prop.type === "DateType" ||
88
- prop.type === "Date" ||
89
- prop.kind === "m:1" ||
90
- prop.kind === "1:m" ||
91
- prop.kind === "m:n" ||
92
- prop.type === "EnumArrayType" ||
93
- prop.type === "uuid") &&
94
- !dedicatedResolverArgProps.some((dedicatedResolverArgProp) => dedicatedResolverArgProp.name == prop.name));
95
- const hasFilterArg = crudFilterProps.length > 0;
96
- const crudSortProps = metadata.props.filter((prop) => (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "sort") &&
97
- !prop.name.startsWith("scope_") &&
98
- (!prop.embedded || (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.embedded[0], "sort")) && // the whole embeddable has sort disabled
99
- (prop.type === "string" ||
100
- prop.type === "text" ||
101
- prop.type === "DecimalType" ||
102
- prop.type === "number" ||
103
- constants_1.integerTypes.includes(prop.type) ||
104
- prop.type === "BooleanType" ||
105
- prop.type === "boolean" ||
106
- prop.type === "DateType" ||
107
- prop.type === "Date" ||
108
- prop.kind === "m:1" ||
109
- prop.type === "EnumArrayType" ||
110
- prop.enum));
111
- const hasSortArg = crudSortProps.length > 0;
112
- const hasSlugProp = metadata.props.some((prop) => prop.name == "slug");
113
- const scopeProp = metadata.props.find((prop) => prop.name == "scope");
114
- if (scopeProp && !scopeProp.targetMeta)
115
- throw new Error("Scope prop has no targetMeta");
116
- const hasPositionProp = metadata.props.some((prop) => prop.name == "position");
117
- const positionGroupPropNames = hasPositionProp
118
- ? ((_b = (_a = generatorOptions.position) === null || _a === void 0 ? void 0 : _a.groupByFields) !== null && _b !== void 0 ? _b : [
119
- ...(scopeProp ? [scopeProp.name] : []), // if there is a scope prop it's effecting position-group, if not groupByFields should be used
120
- ])
121
- : [];
122
- const positionGroupProps = hasPositionProp ? metadata.props.filter((prop) => positionGroupPropNames.includes(prop.name)) : [];
123
- const scopedEntity = Reflect.getMetadata(cms_api_1.SCOPED_ENTITY_METADATA_KEY, metadata.class);
124
- const skipScopeCheck = !scopeProp && !scopedEntity;
125
- const argsClassName = `${classNameSingular != classNamePlural ? classNamePlural : `${classNamePlural}List`}Args`;
126
- const argsFileName = `${fileNameSingular != fileNamePlural ? fileNamePlural : `${fileNameSingular}-list`}.args`;
127
- const blockProps = metadata.props.filter((prop) => {
128
- return (0, cms_api_1.hasCrudFieldFeature)(metadata.class, prop.name, "input") && prop.type === "RootBlockType";
129
- });
130
- return {
131
- crudSearchPropNames,
132
- hasSearchArg,
133
- crudFilterProps,
134
- hasFilterArg,
135
- crudSortProps,
136
- hasSortArg,
137
- hasSlugProp,
138
- hasPositionProp,
139
- positionGroupProps,
140
- scopeProp,
141
- skipScopeCheck,
142
- argsClassName,
143
- argsFileName,
144
- blockProps,
145
- dedicatedResolverArgProps,
146
- };
147
- }
57
+ const build_options_1 = require("./build-options");
148
58
  function generateFilterDto({ generatorOptions, metadata }) {
149
59
  const { classNameSingular } = (0, build_name_variants_1.buildNameVariants)(metadata);
150
- const { crudFilterProps } = buildOptions(metadata, generatorOptions);
60
+ const { crudFilterProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
151
61
  const imports = [];
152
62
  let enumFiltersOut = "";
153
63
  const generatedEnumNames = new Set();
@@ -304,7 +214,7 @@ function generateFilterDto({ generatorOptions, metadata }) {
304
214
  }
305
215
  function generateSortDto({ generatorOptions, metadata }) {
306
216
  const { classNameSingular } = (0, build_name_variants_1.buildNameVariants)(metadata);
307
- const { crudSortProps } = buildOptions(metadata, generatorOptions);
217
+ const { crudSortProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
308
218
  const sortOut = `import { SortDirection } from "@comet/cms-api";
309
219
  import { Field, InputType, registerEnumType } from "@nestjs/graphql";
310
220
  import { Type } from "class-transformer";
@@ -313,7 +223,7 @@ function generateSortDto({ generatorOptions, metadata }) {
313
223
  export enum ${classNameSingular}SortField {
314
224
  ${crudSortProps
315
225
  .map((prop) => {
316
- return `${prop.name} = "${prop.name}",`;
226
+ return `${prop.replace(".", "_")} = "${prop.replace(".", "_")}",`;
317
227
  })
318
228
  .join("\n")}
319
229
  }
@@ -348,7 +258,7 @@ function generatePaginatedDto({ generatorOptions, metadata }) {
348
258
  }
349
259
  function generateArgsDto({ generatorOptions, metadata }) {
350
260
  const { classNameSingular, fileNameSingular } = (0, build_name_variants_1.buildNameVariants)(metadata);
351
- const { scopeProp, argsClassName, hasSearchArg, hasSortArg, hasFilterArg, dedicatedResolverArgProps } = buildOptions(metadata, generatorOptions);
261
+ const { scopeProp, argsClassName, hasSearchArg, hasSortArg, hasFilterArg, dedicatedResolverArgProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
352
262
  const imports = [];
353
263
  if (scopeProp && scopeProp.targetMeta) {
354
264
  imports.push(generateEntityImport(scopeProp.targetMeta, `${generatorOptions.targetDirectory}/dto`));
@@ -423,7 +333,7 @@ function generateArgsDto({ generatorOptions, metadata }) {
423
333
  }
424
334
  function generateService({ generatorOptions, metadata }) {
425
335
  const { classNameSingular, fileNameSingular, classNamePlural } = (0, build_name_variants_1.buildNameVariants)(metadata);
426
- const { hasPositionProp, positionGroupProps } = buildOptions(metadata, generatorOptions);
336
+ const { hasPositionProp, positionGroupProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
427
337
  const positionGroupType = positionGroupProps.length
428
338
  ? `{ ${positionGroupProps
429
339
  .map((prop) => {
@@ -494,7 +404,7 @@ function generateService({ generatorOptions, metadata }) {
494
404
  ${positionGroupProps.length
495
405
  ? `getPositionGroupCondition(group: ${positionGroupType}): FilterQuery<${metadata.className}> {
496
406
  return {
497
- ${positionGroupProps.map((field) => `${field.name}: { $eq: group.${field.name} }`).join(",")}
407
+ ${positionGroupProps.map((field) => `${field.name}: group.${field.name}`).join(",")}
498
408
  };
499
409
  }`
500
410
  : ``}
@@ -512,7 +422,7 @@ function generateEntityImport(targetMetadata, relativeTo) {
512
422
  }
513
423
  function generateInputHandling(options, metadata, generatorOptions) {
514
424
  const { instanceNameSingular } = (0, build_name_variants_1.buildNameVariants)(metadata);
515
- const { blockProps, scopeProp, hasPositionProp, dedicatedResolverArgProps } = buildOptions(metadata, generatorOptions);
425
+ const { blockProps, scopeProp, hasPositionProp, dedicatedResolverArgProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
516
426
  const props = metadata.props.filter((prop) => !options.excludeFields || !options.excludeFields.includes(prop.name));
517
427
  const relationManyToOneProps = props.filter((prop) => prop.kind === "m:1");
518
428
  const relationOneToManyProps = props.filter((prop) => prop.kind === "1:m");
@@ -667,7 +577,7 @@ ${options.mode == "update"
667
577
  }
668
578
  function generateNestedEntityResolver({ generatorOptions, metadata }) {
669
579
  const { classNameSingular } = (0, build_name_variants_1.buildNameVariants)(metadata);
670
- const { skipScopeCheck } = buildOptions(metadata, generatorOptions);
580
+ const { skipScopeCheck } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
671
581
  const imports = [];
672
582
  const { imports: fieldImports, code, hasOutputRelations, needsBlocksTransformer, } = generateRelationsFieldResolver({ generatorOptions, metadata });
673
583
  if (!hasOutputRelations)
@@ -780,7 +690,7 @@ function generateRelationsFieldResolver({ generatorOptions, metadata }) {
780
690
  }
781
691
  function generateResolver({ generatorOptions, metadata }) {
782
692
  const { classNameSingular, fileNameSingular, instanceNameSingular, classNamePlural, fileNamePlural, instanceNamePlural } = (0, build_name_variants_1.buildNameVariants)(metadata);
783
- const { scopeProp, skipScopeCheck, argsClassName, argsFileName, hasSlugProp, hasSearchArg, hasSortArg, hasFilterArg, hasPositionProp, positionGroupProps, dedicatedResolverArgProps, } = buildOptions(metadata, generatorOptions);
693
+ const { scopeProp, skipScopeCheck, argsClassName, argsFileName, hasSlugProp, hasSearchArg, hasSortArg, hasFilterArg, hasPositionProp, positionGroupProps, dedicatedResolverArgProps, } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
784
694
  const relationManyToOneProps = metadata.props.filter((prop) => prop.kind === "m:1");
785
695
  const relationOneToManyProps = metadata.props.filter((prop) => prop.kind === "1:m");
786
696
  const relationManyToManyProps = metadata.props.filter((prop) => prop.kind === "m:n");
@@ -821,6 +731,7 @@ function generateResolver({ generatorOptions, metadata }) {
821
731
  imports.push({ name: "RootBlockDataScalar", importPath: "@comet/cms-api" });
822
732
  imports.push({ name: "BlocksTransformerService", importPath: "@comet/cms-api" });
823
733
  imports.push({ name: "gqlArgsToMikroOrmQuery", importPath: "@comet/cms-api" });
734
+ imports.push({ name: "gqlSortToMikroOrmOrderBy", importPath: "@comet/cms-api" });
824
735
  const resolverOut = `import { EntityManager, FindOptions, ObjectQuery, Reference } from "@mikro-orm/postgresql";
825
736
  import { Args, ID, Info, Mutation, Query, Resolver, ResolveField, Parent } from "@nestjs/graphql";
826
737
  import { GraphQLResolveInfo } from "graphql";
@@ -908,11 +819,7 @@ function generateResolver({ generatorOptions, metadata }) {
908
819
 
909
820
  ${hasSortArg
910
821
  ? `if (sort) {
911
- options.orderBy = sort.map((sortItem) => {
912
- return {
913
- [sortItem.field]: sortItem.direction,
914
- };
915
- });
822
+ options.orderBy = gqlSortToMikroOrmOrderBy(sort);
916
823
  }`
917
824
  : ""}
918
825
 
@@ -1066,7 +973,7 @@ function generateCrud(generatorOptionsParam, metadata) {
1066
973
  }
1067
974
  const generatedFiles = [];
1068
975
  const { fileNameSingular, fileNamePlural } = (0, build_name_variants_1.buildNameVariants)(metadata);
1069
- const { hasFilterArg, hasSortArg, argsFileName, hasPositionProp } = buildOptions(metadata, generatorOptions);
976
+ const { hasFilterArg, hasSortArg, argsFileName, hasPositionProp } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
1070
977
  function generateCrudResolver() {
1071
978
  return __awaiter(this, void 0, void 0, function* () {
1072
979
  if (hasFilterArg) {
@@ -13,7 +13,7 @@ exports.generateCrudInput = generateCrudInput;
13
13
  const cms_api_1 = require("@comet/cms-api");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const ts_morph_1 = require("ts-morph");
16
- const generate_crud_1 = require("../generateCrud/generate-crud");
16
+ const build_options_1 = require("../generateCrud/build-options");
17
17
  const build_name_variants_1 = require("../utils/build-name-variants");
18
18
  const constants_1 = require("../utils/constants");
19
19
  const generate_imports_code_1 = require("../utils/generate-imports-code");
@@ -51,7 +51,7 @@ function generateCrudInput(generatorOptions_1, metadata_1) {
51
51
  }) {
52
52
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
53
53
  const generatedFiles = [];
54
- const { dedicatedResolverArgProps } = (0, generate_crud_1.buildOptions)(metadata, generatorOptions);
54
+ const { dedicatedResolverArgProps } = (0, build_options_1.buildOptions)(metadata, generatorOptions);
55
55
  const props = metadata.props
56
56
  .filter((prop) => {
57
57
  return !prop.embedded;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comet/api-generator",
3
- "version": "9.0.0-canary-20250915134805",
3
+ "version": "9.0.0-canary-20251002064922",
4
4
  "description": "Comet API Generator CLI tool",
5
5
  "repository": {
6
6
  "directory": "packages/api/api-generator",
@@ -24,7 +24,7 @@
24
24
  "pluralize": "^8.0.0",
25
25
  "ts-morph": "^25.0.1",
26
26
  "ts-node": "^10.9.2",
27
- "@comet/cms-api": "9.0.0-canary-20250915134805"
27
+ "@comet/cms-api": "9.0.0-canary-20251002064922"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@mikro-orm/cli": "^6.4.16",
@@ -37,14 +37,14 @@
37
37
  "class-validator": "^0.14.2",
38
38
  "eslint": "^9.30.1",
39
39
  "jest": "^29.7.0",
40
- "npm-run-all2": "^5.0.2",
40
+ "npm-run-all2": "^8.0.0",
41
41
  "prettier": "^3.6.2",
42
42
  "reflect-metadata": "^0.2.2",
43
43
  "rimraf": "^6.0.1",
44
44
  "ts-jest": "^29.4.0",
45
45
  "typescript": "5.8.3",
46
46
  "uuid": "^11.1.0",
47
- "@comet/eslint-config": "9.0.0-canary-20250915134805"
47
+ "@comet/eslint-config": "9.0.0-canary-20251002064922"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@mikro-orm/cli": "^6.0.0",