prisma-generator-express 1.59.0 → 1.60.0

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 (64) hide show
  1. package/dist/client/encodeQueryParams.js +19 -23
  2. package/dist/client/encodeQueryParams.js.map +1 -1
  3. package/dist/copy/operationDefinitions.d.ts +37 -0
  4. package/dist/copy/operationDefinitions.js +412 -0
  5. package/dist/copy/operationDefinitions.js.map +1 -0
  6. package/dist/generators/generateFastifyHandler.js +10 -41
  7. package/dist/generators/generateFastifyHandler.js.map +1 -1
  8. package/dist/generators/generateHonoHandler.js +10 -41
  9. package/dist/generators/generateHonoHandler.js.map +1 -1
  10. package/dist/generators/generateModelMetadata.d.ts +8 -0
  11. package/dist/generators/generateModelMetadata.js +77 -0
  12. package/dist/generators/generateModelMetadata.js.map +1 -0
  13. package/dist/generators/generateOperationCore.js +20 -30
  14. package/dist/generators/generateOperationCore.js.map +1 -1
  15. package/dist/generators/generateQueryBuilderHelper.js +1 -1
  16. package/dist/generators/generateQueryBuilderHelper.js.map +1 -1
  17. package/dist/generators/generateRouteConfigType.js +11 -57
  18. package/dist/generators/generateRouteConfigType.js.map +1 -1
  19. package/dist/generators/generateRouter.js +64 -177
  20. package/dist/generators/generateRouter.js.map +1 -1
  21. package/dist/generators/generateRouterFastify.js +59 -169
  22. package/dist/generators/generateRouterFastify.js.map +1 -1
  23. package/dist/generators/generateRouterHono.js +52 -152
  24. package/dist/generators/generateRouterHono.js.map +1 -1
  25. package/dist/generators/generateUnifiedHandler.js +7 -30
  26. package/dist/generators/generateUnifiedHandler.js.map +1 -1
  27. package/dist/generators/generateUnifiedScalarUI.js +9 -74
  28. package/dist/generators/generateUnifiedScalarUI.js.map +1 -1
  29. package/dist/index.js +11 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/utils/copyFiles.js +7 -0
  32. package/dist/utils/copyFiles.js.map +1 -1
  33. package/dist/utils/writeFileSafely.js +5 -12
  34. package/dist/utils/writeFileSafely.js.map +1 -1
  35. package/package.json +12 -2
  36. package/src/client/encodeQueryParams.ts +23 -36
  37. package/src/copy/autoIncludePlanner.ts +14 -23
  38. package/src/copy/autoIncludeRuntime.ts +117 -228
  39. package/src/copy/buildModelOpenApi.ts +248 -628
  40. package/src/copy/concurrency.ts +20 -0
  41. package/src/copy/docsRenderer.ts +63 -333
  42. package/src/copy/errorMapper.ts +126 -0
  43. package/src/copy/guardHelpers.ts +56 -0
  44. package/src/copy/materializedCount.ts +68 -0
  45. package/src/copy/materializedRouter.ts +33 -29
  46. package/src/copy/operationDefinitions.ts +359 -35
  47. package/src/copy/operationRuntime.ts +11 -605
  48. package/src/copy/pagination.ts +151 -0
  49. package/src/copy/scalarTypes.ts +2 -0
  50. package/src/copy/sse.ts +296 -0
  51. package/src/generators/generateFastifyHandler.ts +13 -47
  52. package/src/generators/generateHonoHandler.ts +13 -47
  53. package/src/generators/generateModelMetadata.ts +92 -0
  54. package/src/generators/generateOperationCore.ts +19 -32
  55. package/src/generators/generateQueryBuilderHelper.ts +1 -1
  56. package/src/generators/generateRouteConfigType.ts +9 -60
  57. package/src/generators/generateRouter.ts +88 -180
  58. package/src/generators/generateRouterFastify.ts +65 -172
  59. package/src/generators/generateRouterHono.ts +58 -155
  60. package/src/generators/generateUnifiedHandler.ts +8 -33
  61. package/src/generators/generateUnifiedScalarUI.ts +9 -91
  62. package/src/index.ts +13 -1
  63. package/src/utils/copyFiles.ts +7 -0
  64. package/src/utils/writeFileSafely.ts +5 -11
@@ -2,34 +2,30 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodeQueryParams = void 0;
4
4
  const misc_1 = require("../copy/misc");
5
- function replacer(_key, value) {
5
+ const bigintReplacer = (_key, value) => typeof value === 'bigint' ? value.toString() : value;
6
+ const encodeEntry = (key, value) => {
7
+ if (value === undefined)
8
+ return null;
9
+ const encodedKey = encodeURIComponent(key);
10
+ if (value === null)
11
+ return encodedKey + '=null';
6
12
  if (typeof value === 'bigint') {
7
- return value.toString();
13
+ return encodedKey + '=' + encodeURIComponent(value.toString());
8
14
  }
9
- return value;
10
- }
15
+ if (typeof value === 'string') {
16
+ return encodedKey + '=' + encodeURIComponent(JSON.stringify(value));
17
+ }
18
+ if (Array.isArray(value) || (0, misc_1.isObject)(value)) {
19
+ return encodedKey + '=' + encodeURIComponent(JSON.stringify(value, bigintReplacer));
20
+ }
21
+ return encodedKey + '=' + encodeURIComponent(String(value));
22
+ };
11
23
  const encodeQueryParams = (params) => {
12
24
  const entries = [];
13
25
  for (const [key, value] of Object.entries(params)) {
14
- if (value === undefined)
15
- continue;
16
- if (value === null) {
17
- entries.push(`${encodeURIComponent(key)}=null`);
18
- continue;
19
- }
20
- if (typeof value === 'bigint') {
21
- entries.push(`${encodeURIComponent(key)}=${encodeURIComponent(value.toString())}`);
22
- continue;
23
- }
24
- if (typeof value === 'string') {
25
- entries.push(`${encodeURIComponent(key)}=${encodeURIComponent(JSON.stringify(value))}`);
26
- continue;
27
- }
28
- if (Array.isArray(value) || (0, misc_1.isObject)(value)) {
29
- entries.push(`${encodeURIComponent(key)}=${encodeURIComponent(JSON.stringify(value, replacer))}`);
30
- continue;
31
- }
32
- entries.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
26
+ const entry = encodeEntry(key, value);
27
+ if (entry !== null)
28
+ entries.push(entry);
33
29
  }
34
30
  return entries.join('&');
35
31
  };
@@ -1 +1 @@
1
- {"version":3,"file":"encodeQueryParams.js","sourceRoot":"","sources":["../../src/client/encodeQueryParams.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAEvC,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAA;IACzB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAU,EAAE;IAC3E,MAAM,OAAO,GAAa,EAAE,CAAA;IAE5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QAEjC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAC/C,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CACV,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CACrE,CAAA;YACD,SAAQ;QACV,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CACV,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAC1E,CAAA;YACD,SAAQ;QACV,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CACV,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,EAAE,CACpF,CAAA;YACD,SAAQ;QACV,CAAC;QAED,OAAO,CAAC,IAAI,CACV,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAClE,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA;AAtCY,QAAA,iBAAiB,qBAsC7B"}
1
+ {"version":3,"file":"encodeQueryParams.js","sourceRoot":"","sources":["../../src/client/encodeQueryParams.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AAEvC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE,CAC/D,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAEtD,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAc,EAAiB,EAAE;IACjE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAEpC,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,UAAU,GAAG,OAAO,CAAA;IAE/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,UAAU,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAChE,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,UAAU,GAAG,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAA,eAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,OAAO,UAAU,GAAG,GAAG,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,UAAU,GAAG,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7D,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAU,EAAE;IAC3E,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC,CAAA;AAPY,QAAA,iBAAiB,qBAO7B"}
@@ -0,0 +1,37 @@
1
+ export type HttpMethod = 'get' | 'post' | 'put' | 'patch' | 'delete';
2
+ export type OpKind = 'read' | 'write' | 'batch';
3
+ export interface OpMetadata {
4
+ name: string;
5
+ method: HttpMethod;
6
+ pathSuffix: string;
7
+ configKey: string;
8
+ kind: OpKind;
9
+ coreName: string;
10
+ successStatus: number;
11
+ requiredBodyFields: readonly string[];
12
+ supportsPostRead: boolean;
13
+ supportsProjection: boolean;
14
+ excludeFromEnableAll: boolean;
15
+ writeStrategyAffected: boolean;
16
+ errors: readonly number[];
17
+ responseDesc: string;
18
+ transport: string;
19
+ argsSchema: readonly string[];
20
+ requiredArgs: readonly string[];
21
+ notes: string;
22
+ }
23
+ export declare const OPERATION_METADATA: readonly OpMetadata[];
24
+ export declare const OPERATION_BY_NAME: Record<string, OpMetadata>;
25
+ export declare const READ_OPERATIONS: readonly OpMetadata[];
26
+ export declare const WRITE_OPERATIONS: readonly OpMetadata[];
27
+ export declare const READ_OPERATION_NAMES: Set<string>;
28
+ export interface OperationDef {
29
+ name: string;
30
+ method: HttpMethod;
31
+ pathSuffix: string;
32
+ configKey: string;
33
+ excludeFromEnableAll?: boolean;
34
+ }
35
+ export declare const OPERATION_DEFS: OperationDef[];
36
+ export declare function getPostReadPathSuffix(opName: string): string;
37
+ export declare function isOperationEnabled(config: Record<string, any>, def: OperationDef | OpMetadata): boolean;
@@ -0,0 +1,412 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPERATION_DEFS = exports.READ_OPERATION_NAMES = exports.WRITE_OPERATIONS = exports.READ_OPERATIONS = exports.OPERATION_BY_NAME = exports.OPERATION_METADATA = void 0;
4
+ exports.getPostReadPathSuffix = getPostReadPathSuffix;
5
+ exports.isOperationEnabled = isOperationEnabled;
6
+ exports.OPERATION_METADATA = [
7
+ {
8
+ name: 'findMany',
9
+ method: 'get',
10
+ pathSuffix: '',
11
+ configKey: 'findMany',
12
+ kind: 'read',
13
+ coreName: 'findMany',
14
+ successStatus: 200,
15
+ requiredBodyFields: [],
16
+ supportsPostRead: true,
17
+ supportsProjection: true,
18
+ excludeFromEnableAll: false,
19
+ writeStrategyAffected: false,
20
+ errors: [400, 403, 500, 501, 503],
21
+ responseDesc: 'Array of records',
22
+ transport: 'GET query params',
23
+ argsSchema: ['where', 'select', 'include', 'omit', 'orderBy', 'cursor', 'take', 'skip', 'distinct'],
24
+ requiredArgs: [],
25
+ notes: 'Pagination limits may apply when configured.',
26
+ },
27
+ {
28
+ name: 'findUnique',
29
+ method: 'get',
30
+ pathSuffix: '/unique',
31
+ configKey: 'findUnique',
32
+ kind: 'read',
33
+ coreName: 'findUnique',
34
+ successStatus: 200,
35
+ requiredBodyFields: [],
36
+ supportsPostRead: true,
37
+ supportsProjection: true,
38
+ excludeFromEnableAll: false,
39
+ writeStrategyAffected: false,
40
+ errors: [400, 403, 500, 501, 503],
41
+ responseDesc: 'Single record or null',
42
+ transport: 'GET query params',
43
+ argsSchema: ['where', 'select', 'include', 'omit'],
44
+ requiredArgs: ['where'],
45
+ notes: 'Returns null (not 404) when no record matches.',
46
+ },
47
+ {
48
+ name: 'findUniqueOrThrow',
49
+ method: 'get',
50
+ pathSuffix: '/unique/strict',
51
+ configKey: 'findUniqueOrThrow',
52
+ kind: 'read',
53
+ coreName: 'findUniqueOrThrow',
54
+ successStatus: 200,
55
+ requiredBodyFields: [],
56
+ supportsPostRead: true,
57
+ supportsProjection: true,
58
+ excludeFromEnableAll: false,
59
+ writeStrategyAffected: false,
60
+ errors: [400, 403, 404, 500, 501, 503],
61
+ responseDesc: 'Single record',
62
+ transport: 'GET query params',
63
+ argsSchema: ['where', 'select', 'include', 'omit'],
64
+ requiredArgs: ['where'],
65
+ notes: 'Returns 404 when no record matches.',
66
+ },
67
+ {
68
+ name: 'findFirst',
69
+ method: 'get',
70
+ pathSuffix: '/first',
71
+ configKey: 'findFirst',
72
+ kind: 'read',
73
+ coreName: 'findFirst',
74
+ successStatus: 200,
75
+ requiredBodyFields: [],
76
+ supportsPostRead: true,
77
+ supportsProjection: true,
78
+ excludeFromEnableAll: false,
79
+ writeStrategyAffected: false,
80
+ errors: [400, 403, 500, 501, 503],
81
+ responseDesc: 'Single record or null',
82
+ transport: 'GET query params',
83
+ argsSchema: ['where', 'select', 'include', 'omit', 'orderBy', 'cursor', 'take', 'skip', 'distinct'],
84
+ requiredArgs: [],
85
+ notes: 'Returns null (not 404) when no record matches.',
86
+ },
87
+ {
88
+ name: 'findFirstOrThrow',
89
+ method: 'get',
90
+ pathSuffix: '/first/strict',
91
+ configKey: 'findFirstOrThrow',
92
+ kind: 'read',
93
+ coreName: 'findFirstOrThrow',
94
+ successStatus: 200,
95
+ requiredBodyFields: [],
96
+ supportsPostRead: true,
97
+ supportsProjection: true,
98
+ excludeFromEnableAll: false,
99
+ writeStrategyAffected: false,
100
+ errors: [400, 403, 404, 500, 501, 503],
101
+ responseDesc: 'Single record',
102
+ transport: 'GET query params',
103
+ argsSchema: ['where', 'select', 'include', 'omit', 'orderBy', 'cursor', 'take', 'skip', 'distinct'],
104
+ requiredArgs: [],
105
+ notes: 'Returns 404 when no record matches.',
106
+ },
107
+ {
108
+ name: 'findManyPaginated',
109
+ method: 'get',
110
+ pathSuffix: '/paginated',
111
+ configKey: 'findManyPaginated',
112
+ kind: 'read',
113
+ coreName: 'findManyPaginated',
114
+ successStatus: 200,
115
+ requiredBodyFields: [],
116
+ supportsPostRead: true,
117
+ supportsProjection: true,
118
+ excludeFromEnableAll: false,
119
+ writeStrategyAffected: false,
120
+ errors: [400, 403, 409, 500, 501, 503],
121
+ responseDesc: '{ data: Record[], total: number, hasMore: boolean }',
122
+ transport: 'GET query params',
123
+ argsSchema: ['where', 'select', 'include', 'omit', 'orderBy', 'cursor', 'take', 'skip', 'distinct'],
124
+ requiredArgs: [],
125
+ notes: 'Wraps findMany with total count. hasMore is reliable for forward offset pagination (skip + take) only. Distinct count over 100k falls back to approximate total. 409 possible on transaction conflict.',
126
+ },
127
+ {
128
+ name: 'count',
129
+ method: 'get',
130
+ pathSuffix: '/count',
131
+ configKey: 'count',
132
+ kind: 'read',
133
+ coreName: 'count',
134
+ successStatus: 200,
135
+ requiredBodyFields: [],
136
+ supportsPostRead: true,
137
+ supportsProjection: false,
138
+ excludeFromEnableAll: false,
139
+ writeStrategyAffected: false,
140
+ errors: [400, 403, 500, 501, 503],
141
+ responseDesc: 'Integer, or per-field count object when select is provided',
142
+ transport: 'GET query params',
143
+ argsSchema: ['where', 'orderBy', 'cursor', 'take', 'skip', 'select'],
144
+ requiredArgs: [],
145
+ notes: 'select here means count-specific field selection, not record field selection.',
146
+ },
147
+ {
148
+ name: 'aggregate',
149
+ method: 'get',
150
+ pathSuffix: '/aggregate',
151
+ configKey: 'aggregate',
152
+ kind: 'read',
153
+ coreName: 'aggregate',
154
+ successStatus: 200,
155
+ requiredBodyFields: [],
156
+ supportsPostRead: true,
157
+ supportsProjection: false,
158
+ excludeFromEnableAll: false,
159
+ writeStrategyAffected: false,
160
+ errors: [400, 403, 500, 501, 503],
161
+ responseDesc: 'Object with requested aggregate fields (_count, _avg, _sum, _min, _max)',
162
+ transport: 'GET query params',
163
+ argsSchema: ['where', 'orderBy', 'cursor', 'take', 'skip', '_count', '_avg', '_sum', '_min', '_max'],
164
+ requiredArgs: [],
165
+ notes: '_avg, _sum only apply to numeric fields.',
166
+ },
167
+ {
168
+ name: 'groupBy',
169
+ method: 'get',
170
+ pathSuffix: '/groupby',
171
+ configKey: 'groupBy',
172
+ kind: 'read',
173
+ coreName: 'groupBy',
174
+ successStatus: 200,
175
+ requiredBodyFields: [],
176
+ supportsPostRead: true,
177
+ supportsProjection: false,
178
+ excludeFromEnableAll: false,
179
+ writeStrategyAffected: false,
180
+ errors: [400, 403, 500, 501, 503],
181
+ responseDesc: 'Array of objects, each with grouped field values and requested aggregates',
182
+ transport: 'GET query params',
183
+ argsSchema: ['by', 'where', 'orderBy', 'having', 'take', 'skip', '_count', '_avg', '_sum', '_min', '_max'],
184
+ requiredArgs: ['by'],
185
+ notes: 'by is a JSON-encoded array of scalar field names. orderBy is required when using skip or take. Response contains only the by-fields plus requested aggregates.',
186
+ },
187
+ {
188
+ name: 'create',
189
+ method: 'post',
190
+ pathSuffix: '',
191
+ configKey: 'create',
192
+ kind: 'write',
193
+ coreName: 'create',
194
+ successStatus: 201,
195
+ requiredBodyFields: ['data'],
196
+ supportsPostRead: false,
197
+ supportsProjection: true,
198
+ excludeFromEnableAll: false,
199
+ writeStrategyAffected: false,
200
+ errors: [400, 403, 409, 500, 501, 503],
201
+ responseDesc: 'Created record (201)',
202
+ transport: 'POST JSON body',
203
+ argsSchema: ['data', 'select', 'include', 'omit'],
204
+ requiredArgs: ['data'],
205
+ notes: '409 on unique constraint violation.',
206
+ },
207
+ {
208
+ name: 'createMany',
209
+ method: 'post',
210
+ pathSuffix: '/many',
211
+ configKey: 'createMany',
212
+ kind: 'batch',
213
+ coreName: 'createMany',
214
+ successStatus: 201,
215
+ requiredBodyFields: ['data'],
216
+ supportsPostRead: false,
217
+ supportsProjection: false,
218
+ excludeFromEnableAll: false,
219
+ writeStrategyAffected: true,
220
+ errors: [400, 403, 409, 500, 501, 503],
221
+ responseDesc: '{ count: number } (201)',
222
+ transport: 'POST JSON body',
223
+ argsSchema: ['data', 'skipDuplicates'],
224
+ requiredArgs: ['data'],
225
+ notes: 'data is an array of scalar-only inputs. Nested relation writes are not supported. skipDuplicates silently ignores conflicts (not supported on all providers).',
226
+ },
227
+ {
228
+ name: 'createManyAndReturn',
229
+ method: 'post',
230
+ pathSuffix: '/many/return',
231
+ configKey: 'createManyAndReturn',
232
+ kind: 'batch',
233
+ coreName: 'createManyAndReturn',
234
+ successStatus: 201,
235
+ requiredBodyFields: ['data'],
236
+ supportsPostRead: false,
237
+ supportsProjection: true,
238
+ excludeFromEnableAll: false,
239
+ writeStrategyAffected: false,
240
+ errors: [400, 403, 409, 500, 501, 503],
241
+ responseDesc: 'Array of created records (201)',
242
+ transport: 'POST JSON body',
243
+ argsSchema: ['data', 'skipDuplicates', 'select', 'include', 'omit'],
244
+ requiredArgs: ['data'],
245
+ notes: 'Like createMany but returns created records. data items are scalar-only. Requires Prisma 5.14.0+, PostgreSQL/CockroachDB/SQLite only. The order of returned records is not guaranteed.',
246
+ },
247
+ {
248
+ name: 'update',
249
+ method: 'put',
250
+ pathSuffix: '',
251
+ configKey: 'update',
252
+ kind: 'write',
253
+ coreName: 'update',
254
+ successStatus: 200,
255
+ requiredBodyFields: ['where', 'data'],
256
+ supportsPostRead: false,
257
+ supportsProjection: true,
258
+ excludeFromEnableAll: false,
259
+ writeStrategyAffected: false,
260
+ errors: [400, 403, 404, 409, 500, 501, 503],
261
+ responseDesc: 'Updated record',
262
+ transport: 'PUT JSON body',
263
+ argsSchema: ['where', 'data', 'select', 'include', 'omit'],
264
+ requiredArgs: ['where', 'data'],
265
+ notes: '404 when the record to update is not found. 409 on unique constraint violation or transaction conflict.',
266
+ },
267
+ {
268
+ name: 'updateMany',
269
+ method: 'put',
270
+ pathSuffix: '/many',
271
+ configKey: 'updateMany',
272
+ kind: 'batch',
273
+ coreName: 'updateMany',
274
+ successStatus: 200,
275
+ requiredBodyFields: ['where', 'data'],
276
+ supportsPostRead: false,
277
+ supportsProjection: false,
278
+ excludeFromEnableAll: false,
279
+ writeStrategyAffected: true,
280
+ errors: [400, 403, 409, 500, 501, 503],
281
+ responseDesc: '{ count: number }',
282
+ transport: 'PUT JSON body',
283
+ argsSchema: ['where', 'data'],
284
+ requiredArgs: ['where', 'data'],
285
+ notes: 'Updates all matching records with scalar-only data. Nested relation writes are not supported. Returns count, not records. 409 on unique constraint violation.',
286
+ },
287
+ {
288
+ name: 'updateManyAndReturn',
289
+ method: 'put',
290
+ pathSuffix: '/many/return',
291
+ configKey: 'updateManyAndReturn',
292
+ kind: 'batch',
293
+ coreName: 'updateManyAndReturn',
294
+ successStatus: 200,
295
+ requiredBodyFields: ['where', 'data'],
296
+ supportsPostRead: false,
297
+ supportsProjection: true,
298
+ excludeFromEnableAll: false,
299
+ writeStrategyAffected: false,
300
+ errors: [400, 403, 409, 500, 501, 503],
301
+ responseDesc: 'Array of updated records',
302
+ transport: 'PUT JSON body',
303
+ argsSchema: ['where', 'data', 'select', 'include', 'omit'],
304
+ requiredArgs: ['where', 'data'],
305
+ notes: 'Like updateMany but returns updated records. data is scalar-only. Requires Prisma 6.2.0+, PostgreSQL/CockroachDB/SQLite only. 409 on unique constraint violation.',
306
+ },
307
+ {
308
+ name: 'upsert',
309
+ method: 'patch',
310
+ pathSuffix: '',
311
+ configKey: 'upsert',
312
+ kind: 'write',
313
+ coreName: 'upsert',
314
+ successStatus: 200,
315
+ requiredBodyFields: ['where', 'create', 'update'],
316
+ supportsPostRead: false,
317
+ supportsProjection: true,
318
+ excludeFromEnableAll: false,
319
+ writeStrategyAffected: false,
320
+ errors: [400, 403, 409, 500, 501, 503],
321
+ responseDesc: 'Created or updated record',
322
+ transport: 'PATCH JSON body',
323
+ argsSchema: ['where', 'create', 'update', 'select', 'include', 'omit'],
324
+ requiredArgs: ['where', 'create', 'update'],
325
+ notes: 'Creates if not found, updates if found.',
326
+ },
327
+ {
328
+ name: 'delete',
329
+ method: 'delete',
330
+ pathSuffix: '',
331
+ configKey: 'delete',
332
+ kind: 'write',
333
+ coreName: 'deleteUnique',
334
+ successStatus: 200,
335
+ requiredBodyFields: ['where'],
336
+ supportsPostRead: false,
337
+ supportsProjection: true,
338
+ excludeFromEnableAll: false,
339
+ writeStrategyAffected: false,
340
+ errors: [400, 403, 404, 500, 501, 503],
341
+ responseDesc: 'Deleted record',
342
+ transport: 'DELETE JSON body',
343
+ argsSchema: ['where', 'select', 'include', 'omit'],
344
+ requiredArgs: ['where'],
345
+ notes: '404 when the record to delete is not found.',
346
+ },
347
+ {
348
+ name: 'deleteMany',
349
+ method: 'delete',
350
+ pathSuffix: '/many',
351
+ configKey: 'deleteMany',
352
+ kind: 'batch',
353
+ coreName: 'deleteMany',
354
+ successStatus: 200,
355
+ requiredBodyFields: ['where'],
356
+ supportsPostRead: false,
357
+ supportsProjection: false,
358
+ excludeFromEnableAll: false,
359
+ writeStrategyAffected: false,
360
+ errors: [400, 403, 500, 501, 503],
361
+ responseDesc: '{ count: number }',
362
+ transport: 'DELETE JSON body',
363
+ argsSchema: ['where'],
364
+ requiredArgs: ['where'],
365
+ notes: 'Deletes all matching records. Returns count, not records.',
366
+ },
367
+ {
368
+ name: 'updateEach',
369
+ method: 'post',
370
+ pathSuffix: '/each',
371
+ configKey: 'updateEach',
372
+ kind: 'batch',
373
+ coreName: 'updateEach',
374
+ successStatus: 200,
375
+ requiredBodyFields: [],
376
+ supportsPostRead: false,
377
+ supportsProjection: false,
378
+ excludeFromEnableAll: true,
379
+ writeStrategyAffected: false,
380
+ errors: [400, 403, 409, 500, 501, 503],
381
+ responseDesc: 'Non-atomic: per-row { status, data } / { status, error } array. Atomic: array of records.',
382
+ transport: 'POST JSON body (array)',
383
+ argsSchema: [],
384
+ requiredArgs: ['array of { where, data }'],
385
+ notes: 'Internal batch endpoint. Bypasses guard shapes. Not enabled by enableAll. Non-atomic max 1000 items, atomic max 100 items. Header x-batch-atomic:true switches to transactional mode.',
386
+ },
387
+ ];
388
+ exports.OPERATION_BY_NAME = Object.fromEntries(exports.OPERATION_METADATA.map((m) => [m.name, m]));
389
+ exports.READ_OPERATIONS = exports.OPERATION_METADATA.filter((m) => m.kind === 'read');
390
+ exports.WRITE_OPERATIONS = exports.OPERATION_METADATA.filter((m) => m.kind === 'write' || m.kind === 'batch');
391
+ exports.READ_OPERATION_NAMES = new Set(exports.READ_OPERATIONS.map((m) => m.name));
392
+ exports.OPERATION_DEFS = exports.OPERATION_METADATA.map((m) => ({
393
+ name: m.name,
394
+ method: m.method,
395
+ pathSuffix: m.pathSuffix,
396
+ configKey: m.configKey,
397
+ excludeFromEnableAll: m.excludeFromEnableAll || undefined,
398
+ }));
399
+ function getPostReadPathSuffix(opName) {
400
+ if (opName === 'findMany')
401
+ return '/read';
402
+ const meta = exports.OPERATION_BY_NAME[opName];
403
+ return meta ? meta.pathSuffix : '';
404
+ }
405
+ function isOperationEnabled(config, def) {
406
+ if (config[def.configKey] === false)
407
+ return false;
408
+ if (def.excludeFromEnableAll)
409
+ return !!config[def.configKey];
410
+ return !!(config.enableAll || config[def.configKey]);
411
+ }
412
+ //# sourceMappingURL=operationDefinitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operationDefinitions.js","sourceRoot":"","sources":["../../src/copy/operationDefinitions.ts"],"names":[],"mappings":"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"}
@@ -2,65 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateFastifyHandler = generateFastifyHandler;
4
4
  const importExt_1 = require("../utils/importExt");
5
- const CORE_NAME_MAP = {
6
- delete: 'deleteUnique',
7
- };
8
- function coreFnName(op) {
9
- return CORE_NAME_MAP[op] || op;
10
- }
11
- const READ_OPS = [
12
- 'findMany',
13
- 'findFirst',
14
- 'findFirstOrThrow',
15
- 'findUnique',
16
- 'findUniqueOrThrow',
17
- 'findManyPaginated',
18
- 'aggregate',
19
- 'count',
20
- 'groupBy',
21
- ];
22
- const WRITE_OPS = [
23
- 'create',
24
- 'createMany',
25
- 'createManyAndReturn',
26
- 'update',
27
- 'updateMany',
28
- 'updateManyAndReturn',
29
- 'upsert',
30
- 'delete',
31
- 'deleteMany',
32
- ];
33
- const CREATED_OPS = new Set([
34
- 'create',
35
- 'createMany',
36
- 'createManyAndReturn',
37
- ]);
5
+ const operationDefinitions_1 = require("../copy/operationDefinitions");
38
6
  function generateFastifyHandler(options) {
39
7
  const ext = (0, importExt_1.importExt)(options.importStyle);
40
8
  const modelName = options.model.name;
41
- const readHandlers = READ_OPS.map((op) => {
42
- const exportName = `${modelName}${op.charAt(0).toUpperCase() + op.slice(1)}`;
9
+ const readOps = operationDefinitions_1.OPERATION_METADATA.filter((m) => m.kind === 'read');
10
+ const writeOps = operationDefinitions_1.OPERATION_METADATA.filter((m) => (m.kind === 'write' || m.kind === 'batch') && m.name !== 'updateEach');
11
+ const readHandlers = readOps.map((meta) => {
12
+ const exportName = `${modelName}${meta.name.charAt(0).toUpperCase() + meta.name.slice(1)}`;
43
13
  return `
44
14
  export async function ${exportName}(
45
15
  request: FastifyRequest,
46
16
  _reply: FastifyReply,
47
17
  ): Promise<void> {
48
- const data = await core.${coreFnName(op)}(buildContext(request))
18
+ const data = await core.${meta.coreName}(buildContext(request))
49
19
  ;(request as FastifyExtended).resultData = data
50
20
  }`;
51
21
  }).join('\n');
52
- const writeHandlers = WRITE_OPS.map((op) => {
53
- const exportName = `${modelName}${op.charAt(0).toUpperCase() + op.slice(1)}`;
54
- const statusCode = CREATED_OPS.has(op) ? 201 : 200;
22
+ const writeHandlers = writeOps.map((meta) => {
23
+ const exportName = `${modelName}${meta.name.charAt(0).toUpperCase() + meta.name.slice(1)}`;
55
24
  return `
56
25
  export async function ${exportName}(
57
26
  request: FastifyRequest,
58
27
  _reply: FastifyReply,
59
28
  ): Promise<void> {
60
- const data = await core.${coreFnName(op)}(buildContext(request))
29
+ const data = await core.${meta.coreName}(buildContext(request))
61
30
  const ext = request as FastifyExtended
62
31
  ext.resultData = data
63
- ext.resultStatus = ${statusCode}
32
+ ext.resultStatus = ${meta.successStatus}
64
33
  }`;
65
34
  }).join('\n');
66
35
  const updateEachExportName = `${modelName}UpdateEach`;
@@ -1 +1 @@
1
- {"version":3,"file":"generateFastifyHandler.js","sourceRoot":"","sources":["../../src/generators/generateFastifyHandler.ts"],"names":[],"mappings":";;AA0CA,wDAiFC;AAzHD,kDAA8C;AAE9C,MAAM,aAAa,GAA2B;IAC5C,MAAM,EAAE,cAAc;CACvB,CAAA;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAA;AAChC,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,UAAU;IACV,WAAW;IACX,kBAAkB;IAClB,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,WAAW;IACX,OAAO;IACP,SAAS;CACV,CAAA;AAED,MAAM,SAAS,GAAG;IAChB,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,YAAY;IACZ,qBAAqB;IACrB,QAAQ;IACR,QAAQ;IACR,YAAY;CACb,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,QAAQ;IACR,YAAY;IACZ,qBAAqB;CACtB,CAAC,CAAA;AAEF,SAAgB,sBAAsB,CAAC,OAGtC;IACC,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IAEpC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACvC,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,OAAO;wBACa,UAAU;;;;4BAIN,UAAU,CAAC,EAAE,CAAC;;EAExC,CAAA;IACA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACzC,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAElD,OAAO;wBACa,UAAU;;;;4BAIN,UAAU,CAAC,EAAE,CAAC;;;uBAGnB,UAAU;EAC/B,CAAA;IACA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,oBAAoB,GAAG,GAAG,SAAS,YAAY,CAAA;IACrD,MAAM,iBAAiB,GAAG;wBACJ,oBAAoB;;;;;;;EAO1C,CAAA;IAEA,OAAO;2BACkB,SAAS,OAAO,GAAG;mFACqC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BpF,YAAY;EACZ,aAAa;EACb,iBAAiB;CAClB,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"generateFastifyHandler.js","sourceRoot":"","sources":["../../src/generators/generateFastifyHandler.ts"],"names":[],"mappings":";;AAKA,wDAoFC;AAvFD,kDAA8C;AAC9C,uEAAiE;AAEjE,SAAgB,sBAAsB,CAAC,OAGtC;IACC,MAAM,GAAG,GAAG,IAAA,qBAAS,EAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA;IAEpC,MAAM,OAAO,GAAG,yCAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAG,yCAAkB,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAC7E,CAAA;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1F,OAAO;wBACa,UAAU;;;;4BAIN,IAAI,CAAC,QAAQ;;EAEvC,CAAA;IACA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1F,OAAO;wBACa,UAAU;;;;4BAIN,IAAI,CAAC,QAAQ;;;uBAGlB,IAAI,CAAC,aAAa;EACvC,CAAA;IACA,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,oBAAoB,GAAG,GAAG,SAAS,YAAY,CAAA;IACrD,MAAM,iBAAiB,GAAG;wBACJ,oBAAoB;;;;;;;EAO1C,CAAA;IAEA,OAAO;2BACkB,SAAS,OAAO,GAAG;mFACqC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BpF,YAAY;EACZ,aAAa;EACb,iBAAiB;CAClB,CAAA;AACD,CAAC"}