@constructive-io/graphql-codegen 2.21.0 → 2.22.1

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 (93) hide show
  1. package/cli/codegen/barrel.d.ts +4 -1
  2. package/cli/codegen/barrel.js +18 -12
  3. package/cli/codegen/client.js +33 -0
  4. package/cli/codegen/custom-mutations.d.ts +4 -0
  5. package/cli/codegen/custom-mutations.js +39 -13
  6. package/cli/codegen/custom-queries.d.ts +4 -0
  7. package/cli/codegen/custom-queries.js +36 -11
  8. package/cli/codegen/gql-ast.js +9 -5
  9. package/cli/codegen/index.js +35 -7
  10. package/cli/codegen/mutations.d.ts +2 -0
  11. package/cli/codegen/mutations.js +87 -23
  12. package/cli/codegen/orm/barrel.js +4 -2
  13. package/cli/codegen/orm/index.js +17 -0
  14. package/cli/codegen/orm/input-types-generator.js +83 -29
  15. package/cli/codegen/orm/model-generator.js +6 -4
  16. package/cli/codegen/queries.js +36 -27
  17. package/cli/codegen/scalars.d.ts +6 -4
  18. package/cli/codegen/scalars.js +17 -9
  19. package/cli/codegen/schema-types-generator.d.ts +26 -0
  20. package/cli/codegen/schema-types-generator.js +365 -0
  21. package/cli/codegen/ts-ast.d.ts +3 -1
  22. package/cli/codegen/ts-ast.js +2 -2
  23. package/cli/codegen/type-resolver.d.ts +52 -6
  24. package/cli/codegen/type-resolver.js +97 -19
  25. package/cli/codegen/types.d.ts +7 -4
  26. package/cli/codegen/types.js +94 -41
  27. package/cli/codegen/utils.d.ts +20 -2
  28. package/cli/codegen/utils.js +32 -7
  29. package/cli/commands/generate-orm.js +5 -5
  30. package/cli/commands/generate.d.ts +4 -1
  31. package/cli/commands/generate.js +27 -8
  32. package/cli/introspect/transform-schema.d.ts +33 -21
  33. package/cli/introspect/transform-schema.js +31 -21
  34. package/esm/cli/codegen/barrel.d.ts +4 -1
  35. package/esm/cli/codegen/barrel.js +18 -12
  36. package/esm/cli/codegen/client.js +33 -0
  37. package/esm/cli/codegen/custom-mutations.d.ts +4 -0
  38. package/esm/cli/codegen/custom-mutations.js +40 -14
  39. package/esm/cli/codegen/custom-queries.d.ts +4 -0
  40. package/esm/cli/codegen/custom-queries.js +37 -12
  41. package/esm/cli/codegen/gql-ast.js +10 -6
  42. package/esm/cli/codegen/index.js +35 -7
  43. package/esm/cli/codegen/mutations.d.ts +2 -0
  44. package/esm/cli/codegen/mutations.js +88 -24
  45. package/esm/cli/codegen/orm/barrel.js +4 -2
  46. package/esm/cli/codegen/orm/index.js +17 -0
  47. package/esm/cli/codegen/orm/input-types-generator.js +83 -29
  48. package/esm/cli/codegen/orm/model-generator.js +7 -5
  49. package/esm/cli/codegen/queries.js +37 -28
  50. package/esm/cli/codegen/scalars.d.ts +6 -4
  51. package/esm/cli/codegen/scalars.js +16 -8
  52. package/esm/cli/codegen/schema-types-generator.d.ts +26 -0
  53. package/esm/cli/codegen/schema-types-generator.js +362 -0
  54. package/esm/cli/codegen/ts-ast.d.ts +3 -1
  55. package/esm/cli/codegen/ts-ast.js +2 -2
  56. package/esm/cli/codegen/type-resolver.d.ts +52 -6
  57. package/esm/cli/codegen/type-resolver.js +97 -20
  58. package/esm/cli/codegen/types.d.ts +7 -4
  59. package/esm/cli/codegen/types.js +95 -41
  60. package/esm/cli/codegen/utils.d.ts +20 -2
  61. package/esm/cli/codegen/utils.js +31 -7
  62. package/esm/cli/commands/generate-orm.js +5 -5
  63. package/esm/cli/commands/generate.d.ts +4 -1
  64. package/esm/cli/commands/generate.js +27 -8
  65. package/esm/cli/introspect/transform-schema.d.ts +33 -21
  66. package/esm/cli/introspect/transform-schema.js +31 -21
  67. package/esm/types/schema.d.ts +2 -0
  68. package/package.json +8 -7
  69. package/types/schema.d.ts +2 -0
  70. package/__tests__/codegen/input-types-generator.test.d.ts +0 -1
  71. package/__tests__/codegen/input-types-generator.test.js +0 -635
  72. package/__tests__/codegen/react-query-optional.test.d.ts +0 -1
  73. package/__tests__/codegen/react-query-optional.test.js +0 -292
  74. package/cli/codegen/filters.d.ts +0 -27
  75. package/cli/codegen/filters.js +0 -357
  76. package/cli/codegen/orm/input-types-generator.test.d.ts +0 -1
  77. package/cli/codegen/orm/input-types-generator.test.js +0 -75
  78. package/cli/codegen/orm/select-types.test.d.ts +0 -11
  79. package/cli/codegen/orm/select-types.test.js +0 -22
  80. package/cli/introspect/transform-schema.test.d.ts +0 -1
  81. package/cli/introspect/transform-schema.test.js +0 -67
  82. package/esm/__tests__/codegen/input-types-generator.test.d.ts +0 -1
  83. package/esm/__tests__/codegen/input-types-generator.test.js +0 -633
  84. package/esm/__tests__/codegen/react-query-optional.test.d.ts +0 -1
  85. package/esm/__tests__/codegen/react-query-optional.test.js +0 -290
  86. package/esm/cli/codegen/filters.d.ts +0 -27
  87. package/esm/cli/codegen/filters.js +0 -351
  88. package/esm/cli/codegen/orm/input-types-generator.test.d.ts +0 -1
  89. package/esm/cli/codegen/orm/input-types-generator.test.js +0 -73
  90. package/esm/cli/codegen/orm/select-types.test.d.ts +0 -11
  91. package/esm/cli/codegen/orm/select-types.test.js +0 -21
  92. package/esm/cli/introspect/transform-schema.test.d.ts +0 -1
  93. package/esm/cli/introspect/transform-schema.test.js +0 -65
@@ -1,75 +0,0 @@
1
- "use strict";
2
- // Jest globals - no import needed
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const input_types_generator_1 = require("./input-types-generator");
5
- const uuidType = { gqlType: 'UUID', isArray: false };
6
- const stringType = { gqlType: 'String', isArray: false };
7
- function createTable(table) {
8
- return {
9
- name: table.name,
10
- fields: table.fields ?? [],
11
- relations: table.relations ?? {
12
- belongsTo: [],
13
- hasOne: [],
14
- hasMany: [],
15
- manyToMany: [],
16
- },
17
- query: table.query,
18
- inflection: table.inflection,
19
- constraints: table.constraints,
20
- };
21
- }
22
- describe('input-types-generator', () => {
23
- it('emits relation helpers and select types with related names', () => {
24
- const userTable = createTable({
25
- name: 'User',
26
- fields: [
27
- { name: 'id', type: uuidType },
28
- { name: 'name', type: stringType },
29
- ],
30
- relations: {
31
- belongsTo: [],
32
- hasOne: [],
33
- hasMany: [
34
- {
35
- fieldName: 'posts',
36
- isUnique: false,
37
- referencedByTable: 'Post',
38
- type: null,
39
- keys: [],
40
- },
41
- ],
42
- manyToMany: [],
43
- },
44
- });
45
- const postTable = createTable({
46
- name: 'Post',
47
- fields: [
48
- { name: 'id', type: uuidType },
49
- { name: 'title', type: stringType },
50
- ],
51
- relations: {
52
- belongsTo: [
53
- {
54
- fieldName: 'author',
55
- isUnique: false,
56
- referencesTable: 'User',
57
- type: null,
58
- keys: [],
59
- },
60
- ],
61
- hasOne: [],
62
- hasMany: [],
63
- manyToMany: [],
64
- },
65
- });
66
- const result = (0, input_types_generator_1.generateInputTypesFile)(new Map(), new Set(), [userTable, postTable]);
67
- expect(result.content).toContain('export interface ConnectionResult<T>');
68
- expect(result.content).toContain('export interface UserRelations');
69
- expect(result.content).toContain('posts?: ConnectionResult<Post>');
70
- expect(result.content).toContain('export type UserWithRelations = User & UserRelations;');
71
- expect(result.content).toContain('posts?: boolean | {');
72
- expect(result.content).toContain('orderBy?: PostsOrderBy[];');
73
- expect(result.content).toContain('author?: boolean | { select?: UserSelect };');
74
- });
75
- });
@@ -1,11 +0,0 @@
1
- /**
2
- * Type-level tests for select-types.ts
3
- *
4
- * These tests verify the compile-time type inference behavior.
5
- * The TypeScript compiler validates these types during build.
6
- *
7
- * Note: Type-only tests using expectTypeOf have been removed as they
8
- * are not compatible with Jest. The TypeScript compiler validates
9
- * these types at compile time via the type assertions below.
10
- */
11
- export {};
@@ -1,22 +0,0 @@
1
- "use strict";
2
- /**
3
- * Type-level tests for select-types.ts
4
- *
5
- * These tests verify the compile-time type inference behavior.
6
- * The TypeScript compiler validates these types during build.
7
- *
8
- * Note: Type-only tests using expectTypeOf have been removed as they
9
- * are not compatible with Jest. The TypeScript compiler validates
10
- * these types at compile time via the type assertions below.
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- // Compile-time type check: verify the inferred type matches expected structure
14
- const _typeCheck = {};
15
- const _excludedTypeCheck = {};
16
- // Dummy test to satisfy Jest
17
- describe('InferSelectResult', () => {
18
- it('type assertions compile correctly', () => {
19
- // If this file compiles, the type tests pass
20
- expect(true).toBe(true);
21
- });
22
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1,67 +0,0 @@
1
- "use strict";
2
- // Jest globals - no import needed
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const transform_schema_1 = require("./transform-schema");
5
- describe('transform-schema table operation filtering', () => {
6
- const dummyReturnType = { kind: 'SCALAR', name: 'String' };
7
- it('detects table operations and update/delete patterns', () => {
8
- const tableOps = (0, transform_schema_1.getTableOperationNames)([
9
- {
10
- name: 'User',
11
- query: {
12
- all: 'users',
13
- one: 'user',
14
- create: 'createUser',
15
- update: 'updateUser',
16
- delete: 'deleteUser',
17
- },
18
- inflection: { tableType: 'User' },
19
- },
20
- ]);
21
- const updateByEmail = {
22
- name: 'updateUserByEmail',
23
- kind: 'mutation',
24
- args: [],
25
- returnType: dummyReturnType,
26
- };
27
- const login = {
28
- name: 'login',
29
- kind: 'mutation',
30
- args: [],
31
- returnType: dummyReturnType,
32
- };
33
- expect((0, transform_schema_1.isTableOperation)(updateByEmail, tableOps)).toBe(true);
34
- expect((0, transform_schema_1.isTableOperation)(login, tableOps)).toBe(false);
35
- });
36
- it('filters out table operations from custom list', () => {
37
- const tableOps = (0, transform_schema_1.getTableOperationNames)([
38
- {
39
- name: 'User',
40
- query: {
41
- all: 'users',
42
- one: 'user',
43
- create: 'createUser',
44
- update: 'updateUser',
45
- delete: 'deleteUser',
46
- },
47
- inflection: { tableType: 'User' },
48
- },
49
- ]);
50
- const operations = [
51
- {
52
- name: 'users',
53
- kind: 'query',
54
- args: [],
55
- returnType: dummyReturnType,
56
- },
57
- {
58
- name: 'login',
59
- kind: 'mutation',
60
- args: [],
61
- returnType: dummyReturnType,
62
- },
63
- ];
64
- const customOps = (0, transform_schema_1.getCustomOperations)(operations, tableOps);
65
- expect(customOps.map((op) => op.name)).toEqual(['login']);
66
- });
67
- });
@@ -1 +0,0 @@
1
- export {};