@rapidd/build 2.1.8 → 2.2.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.
- package/dist/bin/cli.js +11 -1
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/generators/aclGenerator.d.ts.map +1 -1
- package/dist/src/generators/aclGenerator.js +6 -0
- package/dist/src/generators/aclGenerator.js.map +1 -1
- package/dist/src/generators/routeGenerator.d.ts.map +1 -1
- package/dist/src/generators/routeGenerator.js +51 -174
- package/dist/src/generators/routeGenerator.js.map +1 -1
- package/package.json +6 -6
package/dist/bin/cli.js
CHANGED
|
@@ -3,11 +3,21 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const build_1 = require("../src/commands/build");
|
|
6
|
+
// Resolve package.json from dist/bin (published) or bin (dev via tsx)
|
|
7
|
+
let version = '0.0.0';
|
|
8
|
+
try {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
10
|
+
version = require('../../package.json').version;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14
|
+
version = require('../package.json').version;
|
|
15
|
+
}
|
|
6
16
|
const program = new commander_1.Command();
|
|
7
17
|
program
|
|
8
18
|
.name('rapidd')
|
|
9
19
|
.description('Rapidd build tool for generating TypeScript model files from Prisma schema')
|
|
10
|
-
.version(
|
|
20
|
+
.version(version);
|
|
11
21
|
program
|
|
12
22
|
.command('build')
|
|
13
23
|
.description('Build TypeScript model files, routes, and ACL from Prisma schema')
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,iDAAkE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,iDAAkE;AAClE,sEAAsE;AACtE,IAAI,OAAO,GAAG,OAAO,CAAC;AACtB,IAAI,CAAC;IACD,iEAAiE;IACjE,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AACpD,CAAC;AAAC,MAAM,CAAC;IACL,iEAAiE;IACjE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,wBAAwB,CAAC;KACvH,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,EAAE,IAAI,CAAC;KAC5D,MAAM,CAAC,oBAAoB,EAAE,+DAA+D,CAAC;KAC7F,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;KAC5F,MAAM,CAAC,KAAK,EAAE,OAAqB,EAAE,EAAE;IACtC,IAAI,CAAC;QACH,MAAM,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/aclGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"aclGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/aclGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA+BlD;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,UAAU,EAAE,MAAM,GACjB,IAAI,CAoCN"}
|
|
@@ -56,6 +56,12 @@ function generateModelACL(modelName) {
|
|
|
56
56
|
getOmitFields(_user: RapiddUser): string[] {
|
|
57
57
|
return [];
|
|
58
58
|
},
|
|
59
|
+
// Whitelist of writable fields for create/update payloads (null = unrestricted).
|
|
60
|
+
// At the REST edge (strictWrites) non-writable fields are rejected with 403;
|
|
61
|
+
// internal model calls silently strip them instead.
|
|
62
|
+
getWritableFields(_user: RapiddUser): string[] | null {
|
|
63
|
+
return null;
|
|
64
|
+
},
|
|
59
65
|
}`;
|
|
60
66
|
}
|
|
61
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aclGenerator.js","sourceRoot":"","sources":["../../../src/generators/aclGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"aclGenerator.js","sourceRoot":"","sources":["../../../src/generators/aclGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,kCAuCC;AA3ED,uCAAyB;AACzB,2CAA6B;AAG7B;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,WAAW,SAAS;;;;;;;;;;;;;;;;;;;;;;UAsBnB,CAAC;AACX,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,MAAiC,EACjC,UAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,OAAO,GAAG;;;;CAIf,CAAC;IAEA,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhF,OAAO,IAAI;;;;;CAKZ,CAAC;IAEA,6DAA6D;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAChF,IAAI,eAAe,IAAI,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA0GlD,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkDD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"routeGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA0GlD,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkDD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,SAAiB,GAAG,MAAM,CAkDpH;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CA+DlH;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,SAAS,EAC5B,eAAe,EAAE,SAAS,EAC1B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM,CA4DR;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,IAAI,CA4EN"}
|
|
@@ -162,90 +162,51 @@ function buildJunctionMap(models) {
|
|
|
162
162
|
/**
|
|
163
163
|
* Generate Fastify route for a standalone model (TypeScript)
|
|
164
164
|
*/
|
|
165
|
-
function generateRouteFile(modelName, modelInfo, importPathPrefix = '../../../src
|
|
165
|
+
function generateRouteFile(modelName, modelInfo, importPathPrefix = '../../../src') {
|
|
166
166
|
const className = toClassName(modelName);
|
|
167
167
|
const numeric = isNumericId(modelInfo);
|
|
168
168
|
const idType = numeric ? 'number' : 'string';
|
|
169
169
|
const idCast = numeric ? 'Number(rawId)' : 'rawId';
|
|
170
170
|
return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
|
|
171
|
-
import { ${className}
|
|
171
|
+
import { ${className} } from '${importPathPrefix}/models/${className}';
|
|
172
172
|
|
|
173
173
|
const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
|
|
174
174
|
fastify.addHook('preHandler', async (request, reply) => {
|
|
175
175
|
if (!request.user) {
|
|
176
176
|
return reply.sendError(401, 'no_valid_session');
|
|
177
177
|
}
|
|
178
|
-
|
|
178
|
+
request.model = new ${className}({ user: request.user, strictWrites: true });
|
|
179
179
|
});
|
|
180
180
|
|
|
181
181
|
fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const { q = {}, include = '', sortBy = 'id', sortOrder = 'asc', fields = null } = query;
|
|
185
|
-
const model = (request as any).${className} as ${className};
|
|
186
|
-
const totalResults = query.totalResults === 'true';
|
|
187
|
-
const pagination = process.env.PAGINATION_MODE === 'page'
|
|
188
|
-
? { page: Number(query.page || '1'), pageSize: Number(query.pageSize || '25') }
|
|
189
|
-
: undefined;
|
|
190
|
-
const results = await model.getMany({ q, include, limit: Number(query.limit || '25'), offset: Number(query.offset || '0'), sortBy, sortOrder, fields, pagination, totalResults });
|
|
191
|
-
return reply.sendList(results.data, results.meta);
|
|
192
|
-
} catch (error: any) {
|
|
193
|
-
const response = QueryBuilder.errorHandler(error);
|
|
194
|
-
return reply.code(response.status_code).send(response);
|
|
195
|
-
}
|
|
182
|
+
const results = await request.model!.getMany(request.parseListQuery());
|
|
183
|
+
return reply.sendList(results.data, results.meta);
|
|
196
184
|
});
|
|
197
185
|
|
|
198
186
|
fastify.get('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
const model = (request as any).${className} as ${className};
|
|
204
|
-
const response = await model.get(id, include, {}, fields);
|
|
205
|
-
return reply.send(response);
|
|
206
|
-
} catch (error: any) {
|
|
207
|
-
const response = QueryBuilder.errorHandler(error);
|
|
208
|
-
return reply.code(response.status_code).send(response);
|
|
209
|
-
}
|
|
187
|
+
const { id: rawId } = request.params as { id: string };
|
|
188
|
+
const id: ${idType} = ${idCast};
|
|
189
|
+
const { include = '', fields = null } = request.query as Record<string, string>;
|
|
190
|
+
return reply.send(await request.model!.get(id, include, {}, fields));
|
|
210
191
|
});
|
|
211
192
|
|
|
212
193
|
fastify.post('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
213
194
|
const payload = request.body as Record<string, unknown>;
|
|
214
|
-
|
|
215
|
-
const model = (request as any).${className} as ${className};
|
|
216
|
-
const response = await model.create(payload);
|
|
217
|
-
return reply.code(201).send(response);
|
|
218
|
-
} catch (error: any) {
|
|
219
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
220
|
-
return reply.code(response.status_code).send(response);
|
|
221
|
-
}
|
|
195
|
+
return reply.code(201).send(await request.model!.create(payload));
|
|
222
196
|
});
|
|
223
197
|
|
|
224
198
|
fastify.patch('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
225
199
|
const { id: rawId } = request.params as { id: string };
|
|
226
200
|
const id: ${idType} = ${idCast};
|
|
227
201
|
const payload = request.body as Record<string, unknown>;
|
|
228
|
-
|
|
229
|
-
const model = (request as any).${className} as ${className};
|
|
230
|
-
const response = await model.update(id, payload);
|
|
231
|
-
return reply.send(response);
|
|
232
|
-
} catch (error: any) {
|
|
233
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
234
|
-
return reply.code(response.status_code).send(response);
|
|
235
|
-
}
|
|
202
|
+
return reply.send(await request.model!.update(id, payload));
|
|
236
203
|
});
|
|
237
204
|
|
|
238
205
|
fastify.delete('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
await model.delete(id);
|
|
244
|
-
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
245
|
-
} catch (error: any) {
|
|
246
|
-
const response = QueryBuilder.errorHandler(error);
|
|
247
|
-
return reply.code(response.status_code).send(response);
|
|
248
|
-
}
|
|
206
|
+
const { id: rawId } = request.params as { id: string };
|
|
207
|
+
const id: ${idType} = ${idCast};
|
|
208
|
+
await request.model!.delete(id);
|
|
209
|
+
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
249
210
|
});
|
|
250
211
|
};
|
|
251
212
|
|
|
@@ -260,11 +221,11 @@ function generateParentRouteFile(modelName, modelInfo, subRoutes) {
|
|
|
260
221
|
const numeric = isNumericId(modelInfo);
|
|
261
222
|
const idType = numeric ? 'number' : 'string';
|
|
262
223
|
const idCast = numeric ? 'Number(rawId)' : 'rawId';
|
|
263
|
-
const importPath = '../../../../src
|
|
224
|
+
const importPath = '../../../../src';
|
|
264
225
|
const subRouteImports = subRoutes.map(sr => `import ${sr.subRouteName}Routes from './_${sr.subRouteName}';`).join('\n');
|
|
265
226
|
const subRouteRegistrations = subRoutes.map(sr => ` fastify.register(${sr.subRouteName}Routes, { prefix: '/:id/${sr.subRouteName}' });`).join('\n');
|
|
266
227
|
return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
|
|
267
|
-
import { ${className}
|
|
228
|
+
import { ${className} } from '${importPath}/models/${className}';
|
|
268
229
|
${subRouteImports}
|
|
269
230
|
|
|
270
231
|
const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
|
|
@@ -272,79 +233,40 @@ const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
|
|
|
272
233
|
if (!request.user) {
|
|
273
234
|
return reply.sendError(401, 'no_valid_session');
|
|
274
235
|
}
|
|
275
|
-
|
|
236
|
+
request.model = new ${className}({ user: request.user, strictWrites: true });
|
|
276
237
|
});
|
|
277
238
|
|
|
278
239
|
${subRouteRegistrations}
|
|
279
240
|
|
|
280
241
|
fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
const { q = {}, include = '', sortBy = 'id', sortOrder = 'asc', fields = null } = query;
|
|
284
|
-
const model = (request as any).${className} as ${className};
|
|
285
|
-
const totalResults = query.totalResults === 'true';
|
|
286
|
-
const pagination = process.env.PAGINATION_MODE === 'page'
|
|
287
|
-
? { page: Number(query.page || '1'), pageSize: Number(query.pageSize || '25') }
|
|
288
|
-
: undefined;
|
|
289
|
-
const results = await model.getMany({ q, include, limit: Number(query.limit || '25'), offset: Number(query.offset || '0'), sortBy, sortOrder, fields, pagination, totalResults });
|
|
290
|
-
return reply.sendList(results.data, results.meta);
|
|
291
|
-
} catch (error: any) {
|
|
292
|
-
const response = QueryBuilder.errorHandler(error);
|
|
293
|
-
return reply.code(response.status_code).send(response);
|
|
294
|
-
}
|
|
242
|
+
const results = await request.model!.getMany(request.parseListQuery());
|
|
243
|
+
return reply.sendList(results.data, results.meta);
|
|
295
244
|
});
|
|
296
245
|
|
|
297
246
|
fastify.get('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
const model = (request as any).${className} as ${className};
|
|
303
|
-
const response = await model.get(id, include, {}, fields);
|
|
304
|
-
return reply.send(response);
|
|
305
|
-
} catch (error: any) {
|
|
306
|
-
const response = QueryBuilder.errorHandler(error);
|
|
307
|
-
return reply.code(response.status_code).send(response);
|
|
308
|
-
}
|
|
247
|
+
const { id: rawId } = request.params as { id: string };
|
|
248
|
+
const id: ${idType} = ${idCast};
|
|
249
|
+
const { include = '', fields = null } = request.query as Record<string, string>;
|
|
250
|
+
return reply.send(await request.model!.get(id, include, {}, fields));
|
|
309
251
|
});
|
|
310
252
|
|
|
311
253
|
fastify.post('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
312
254
|
const payload = request.body as Record<string, unknown>;
|
|
313
|
-
|
|
314
|
-
const model = (request as any).${className} as ${className};
|
|
315
|
-
const response = await model.create(payload);
|
|
316
|
-
return reply.code(201).send(response);
|
|
317
|
-
} catch (error: any) {
|
|
318
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
319
|
-
return reply.code(response.status_code).send(response);
|
|
320
|
-
}
|
|
255
|
+
return reply.code(201).send(await request.model!.create(payload));
|
|
321
256
|
});
|
|
322
257
|
|
|
323
258
|
fastify.patch('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
324
259
|
const { id: rawId } = request.params as { id: string };
|
|
325
260
|
const id: ${idType} = ${idCast};
|
|
326
261
|
const payload = request.body as Record<string, unknown>;
|
|
327
|
-
|
|
328
|
-
const model = (request as any).${className} as ${className};
|
|
329
|
-
const response = await model.update(id, payload);
|
|
330
|
-
return reply.send(response);
|
|
331
|
-
} catch (error: any) {
|
|
332
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
333
|
-
return reply.code(response.status_code).send(response);
|
|
334
|
-
}
|
|
262
|
+
return reply.send(await request.model!.update(id, payload));
|
|
335
263
|
});
|
|
336
264
|
|
|
337
265
|
fastify.delete('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
await model.delete(id);
|
|
343
|
-
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
344
|
-
} catch (error: any) {
|
|
345
|
-
const response = QueryBuilder.errorHandler(error);
|
|
346
|
-
return reply.code(response.status_code).send(response);
|
|
347
|
-
}
|
|
266
|
+
const { id: rawId } = request.params as { id: string };
|
|
267
|
+
const id: ${idType} = ${idCast};
|
|
268
|
+
await request.model!.delete(id);
|
|
269
|
+
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
348
270
|
});
|
|
349
271
|
};
|
|
350
272
|
|
|
@@ -371,97 +293,52 @@ function generateSubRouteFile(junctionModelName, junctionModelInfo, parentModelI
|
|
|
371
293
|
const otherFkType = numericOtherFk ? 'number' : 'string';
|
|
372
294
|
const parentIdCast = numericParentId ? 'Number(rawParentId)' : 'rawParentId';
|
|
373
295
|
const otherFkCast = numericOtherFk ? 'Number(rawSubId)' : 'rawSubId';
|
|
374
|
-
const importPath = '../../../../src
|
|
296
|
+
const importPath = '../../../../src';
|
|
375
297
|
return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
|
|
376
|
-
import { ${className}
|
|
298
|
+
import { ${className} } from '${importPath}/models/${className}';
|
|
377
299
|
|
|
378
300
|
const ${junctionModelName}Routes: FastifyPluginAsync = async (fastify) => {
|
|
379
301
|
fastify.addHook('preHandler', async (request, reply) => {
|
|
380
302
|
if (!request.user) {
|
|
381
303
|
return reply.sendError(401, 'no_valid_session');
|
|
382
304
|
}
|
|
383
|
-
|
|
305
|
+
request.model = new ${className}({ user: request.user, strictWrites: true });
|
|
384
306
|
});
|
|
385
307
|
|
|
386
308
|
fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
const model = (request as any).${className} as ${className};
|
|
394
|
-
const totalResults = query.totalResults === 'true';
|
|
395
|
-
const pagination = process.env.PAGINATION_MODE === 'page'
|
|
396
|
-
? { page: Number(query.page || '1'), pageSize: Number(query.pageSize || '25') }
|
|
397
|
-
: undefined;
|
|
398
|
-
const results = await model.getMany({ q: filter, include, limit: Number(query.limit || '25'), offset: Number(query.offset || '0'), sortBy, sortOrder, fields, pagination, totalResults });
|
|
399
|
-
return reply.sendList(results.data, results.meta);
|
|
400
|
-
} catch (error: any) {
|
|
401
|
-
const response = QueryBuilder.errorHandler(error);
|
|
402
|
-
return reply.code(response.status_code).send(response);
|
|
403
|
-
}
|
|
309
|
+
const { id: rawParentId } = request.params as { id: string };
|
|
310
|
+
const parentId: ${parentIdType} = ${parentIdCast};
|
|
311
|
+
const params = request.parseListQuery();
|
|
312
|
+
const q = typeof params.q === 'object' ? { ...params.q, ${fkFieldToParent}: parentId } : { ${fkFieldToParent}: parentId };
|
|
313
|
+
const results = await request.model!.getMany({ ...params, q });
|
|
314
|
+
return reply.sendList(results.data, results.meta);
|
|
404
315
|
});
|
|
405
316
|
|
|
406
317
|
fastify.get('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
|
|
412
|
-
const { include = '', fields = null } = request.query as Record<string, string>;
|
|
413
|
-
const model = (request as any).${className} as ${className};
|
|
414
|
-
const response = await model.get(compositeId, include, {}, fields);
|
|
415
|
-
return reply.send(response);
|
|
416
|
-
} catch (error: any) {
|
|
417
|
-
const response = QueryBuilder.errorHandler(error);
|
|
418
|
-
return reply.code(response.status_code).send(response);
|
|
419
|
-
}
|
|
318
|
+
const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
|
|
319
|
+
const compositeId = { ${fkFieldToParent}: ${parentIdCast} as ${parentIdType}, ${otherFkField}: ${otherFkCast} as ${otherFkType} };
|
|
320
|
+
const { include = '', fields = null } = request.query as Record<string, string>;
|
|
321
|
+
return reply.send(await request.model!.get(compositeId, include, {}, fields));
|
|
420
322
|
});
|
|
421
323
|
|
|
422
324
|
fastify.post('/', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
423
325
|
const { id: rawParentId } = request.params as { id: string };
|
|
424
|
-
const
|
|
425
|
-
|
|
426
|
-
try {
|
|
427
|
-
const model = (request as any).${className} as ${className};
|
|
428
|
-
const response = await model.create(payload);
|
|
429
|
-
return reply.code(201).send(response);
|
|
430
|
-
} catch (error: any) {
|
|
431
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
432
|
-
return reply.code(response.status_code).send(response);
|
|
433
|
-
}
|
|
326
|
+
const payload = { ...(request.body as Record<string, unknown>), ${fkFieldToParent}: ${parentIdCast} as ${parentIdType} };
|
|
327
|
+
return reply.code(201).send(await request.model!.create(payload));
|
|
434
328
|
});
|
|
435
329
|
|
|
436
330
|
fastify.patch('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
437
331
|
const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
|
|
438
|
-
const
|
|
439
|
-
const ${otherFkField}: ${otherFkType} = ${otherFkCast};
|
|
440
|
-
const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
|
|
332
|
+
const compositeId = { ${fkFieldToParent}: ${parentIdCast} as ${parentIdType}, ${otherFkField}: ${otherFkCast} as ${otherFkType} };
|
|
441
333
|
const payload = request.body as Record<string, unknown>;
|
|
442
|
-
|
|
443
|
-
const model = (request as any).${className} as ${className};
|
|
444
|
-
const response = await model.update(compositeId, payload);
|
|
445
|
-
return reply.send(response);
|
|
446
|
-
} catch (error: any) {
|
|
447
|
-
const response = QueryBuilder.errorHandler(error, payload);
|
|
448
|
-
return reply.code(response.status_code).send(response);
|
|
449
|
-
}
|
|
334
|
+
return reply.send(await request.model!.update(compositeId, payload));
|
|
450
335
|
});
|
|
451
336
|
|
|
452
337
|
fastify.delete('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
|
|
458
|
-
const model = (request as any).${className} as ${className};
|
|
459
|
-
await model.delete(compositeId);
|
|
460
|
-
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
461
|
-
} catch (error: any) {
|
|
462
|
-
const response = QueryBuilder.errorHandler(error);
|
|
463
|
-
return reply.code(response.status_code).send(response);
|
|
464
|
-
}
|
|
338
|
+
const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
|
|
339
|
+
const compositeId = { ${fkFieldToParent}: ${parentIdCast} as ${parentIdType}, ${otherFkField}: ${otherFkCast} as ${otherFkType} };
|
|
340
|
+
await request.model!.delete(compositeId);
|
|
341
|
+
return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
|
|
465
342
|
});
|
|
466
343
|
};
|
|
467
344
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeGenerator.js","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuKA,
|
|
1
|
+
{"version":3,"file":"routeGenerator.js","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuKA,8CAkDC;AAKD,0DA+DC;AAeD,oDAkEC;AAUD,8CAgFC;AAxcD,uCAAyB;AACzB,2CAA6B;AAG7B;;GAEG;AACH,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE3D;;GAEG;AACH,SAAS,WAAW,CAAC,SAAoB;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAcD;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,UAAkB,EAAE,SAAoB;IACnE,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IACpD,CAAC;IAED,sDAAsD;IACtD,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAChE,CAAC;QACF,IAAI,GAAG,EAAE,CAAC;YACR,eAAe,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,QAAQ;gBACjB,WAAW,EAAE,GAAG,CAAC,IAAI;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,OAAO;QACL,UAAU,EAAE,eAAe,CAAC,MAAM,KAAK,CAAC;QACxC,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACrJ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,UAAkB,EAAE,YAAoB;IACnE,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5E,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,WAAW,EAAE,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAeD;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAiC;IACzD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE1D,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,SAAS;QAEnC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;gBAAE,SAAS;YAE7C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChD,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC;gBAC/C,iBAAiB,EAAE,SAAS;gBAC5B,iBAAiB,EAAE,SAAS;gBAC5B,YAAY,EAAE,mBAAmB,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC;gBACnE,eAAe,EAAE,SAAS,CAAC,OAAO;gBAClC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,KAAK,MAAM,WAAW,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;QACjD,IAAI,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC;AAC7C,CAAC;AAED,uEAAuE;AAEvE;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAAiB,EAAE,SAAoB,EAAE,gBAAgB,GAAG,cAAc;IAC1G,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,OAAO;WACE,SAAS,YAAY,gBAAgB,WAAW,SAAS;;QAE5D,SAAS;;;;;8BAKa,SAAS;;;;;;;;;;oBAUnB,MAAM,MAAM,MAAM;;;;;;;;;;;;oBAYlB,MAAM,MAAM,MAAM;;;;;;;oBAOlB,MAAM,MAAM,MAAM;;sFAEgD,SAAS;;;;iBAI9E,SAAS;CACzB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,SAAiB,EAAE,SAAoB,EAAE,SAAyB;IACxG,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,MAAM,UAAU,GAAG,iBAAiB,CAAC;IAErC,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACzC,UAAU,EAAE,CAAC,YAAY,mBAAmB,EAAE,CAAC,YAAY,IAAI,CAChE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAC/C,wBAAwB,EAAE,CAAC,YAAY,2BAA2B,EAAE,CAAC,YAAY,OAAO,CACzF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;WACE,SAAS,YAAY,UAAU,WAAW,SAAS;EAC5D,eAAe;;QAET,SAAS;;;;;8BAKa,SAAS;;;EAGrC,qBAAqB;;;;;;;;;oBASH,MAAM,MAAM,MAAM;;;;;;;;;;;;oBAYlB,MAAM,MAAM,MAAM;;;;;;;oBAOlB,MAAM,MAAM,MAAM;;sFAEgD,SAAS;;;;iBAI9E,SAAS;CACzB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,SAAoB,EAAE,SAAiB;IAC7D,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,iBAAyB,EACzB,iBAA4B,EAC5B,eAA0B,EAC1B,eAAuB,EACvB,YAAoB;IAEpB,MAAM,SAAS,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;IACvE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IACzD,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa,CAAC;IAC7E,MAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAC;IACrE,MAAM,UAAU,GAAG,iBAAiB,CAAC;IAErC,OAAO;WACE,SAAS,YAAY,UAAU,WAAW,SAAS;;QAEtD,iBAAiB;;;;;8BAKK,SAAS;;;;;0BAKb,YAAY,MAAM,YAAY;;kEAEU,eAAe,oBAAoB,eAAe;;;;;;;gCAOpF,eAAe,KAAK,YAAY,OAAO,YAAY,KAAK,YAAY,KAAK,WAAW,OAAO,WAAW;;;;;;;0EAO5D,eAAe,KAAK,YAAY,OAAO,YAAY;;;;;;gCAM7F,eAAe,KAAK,YAAY,OAAO,YAAY,KAAK,YAAY,KAAK,WAAW,OAAO,WAAW;;;;;;;gCAOtG,eAAe,KAAK,YAAY,OAAO,YAAY,KAAK,YAAY,KAAK,WAAW,OAAO,WAAW;;sFAEhD,SAAS;;;;iBAI9E,iBAAiB;CACjC,CAAC;AACF,CAAC;AAED,uEAAuE;AAEvE;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,MAAiC,EACjC,SAAiB,EACjB,SAAqC;IAErC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAElF,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,6EAA6E;QAC7E,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,qCAAqC,SAAS,EAAE,CAAC,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,mCAAmC,SAAS,EAAE,CAAC,CAAC;YAC5D,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAEjD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAEnD,gEAAgE;YAChE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;YAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,4CAA4C,SAAS,KAAK,CAAC,CAAC;gBACxE,SAAS;YACX,CAAC;YAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,2BAA2B;YAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,WAAW,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;gBAC5E,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,WAAW,CAAC,CAAC;YACxD,CAAC;YAED,+BAA+B;YAC/B,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC;gBACpE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC;oBAC/E,SAAS;gBACX,CAAC;gBACD,MAAM,YAAY,GAAG,oBAAoB,CACvC,EAAE,CAAC,iBAAiB,EACpB,EAAE,CAAC,iBAAiB,EACpB,SAAS,EACT,EAAE,CAAC,eAAe,EAClB,EAAE,CAAC,YAAY,CAChB,CAAC;gBACF,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,SAAS,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;YAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,KAAK,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC1D,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rapidd/build",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Dynamic code generator that transforms Prisma schemas into Fastify CRUD APIs with TypeScript",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"author": "Mert Dalbudak",
|
|
47
47
|
"license": "MIT",
|
|
48
48
|
"engines": {
|
|
49
|
-
"node": ">=
|
|
49
|
+
"node": ">=22.0.0"
|
|
50
50
|
},
|
|
51
51
|
"files": [
|
|
52
52
|
"dist/",
|
|
@@ -54,16 +54,16 @@
|
|
|
54
54
|
"LICENSE"
|
|
55
55
|
],
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@prisma/internals": "^7.0
|
|
57
|
+
"@prisma/internals": "^7.8.0",
|
|
58
58
|
"commander": "^11.0.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"@types/node": "^
|
|
62
|
-
"prisma": "^7.0
|
|
61
|
+
"@types/node": "^22.12.0",
|
|
62
|
+
"prisma": "^7.8.0",
|
|
63
63
|
"tsx": "^4.0.0",
|
|
64
64
|
"typescript": "^5.5.0"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
|
-
"@prisma/client": "^7.0
|
|
67
|
+
"@prisma/client": "^7.8.0"
|
|
68
68
|
}
|
|
69
69
|
}
|