prisma-generator-express 1.0.2 → 1.0.4

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 (50) hide show
  1. package/package.json +6 -2
  2. package/CHANGELOG.md +0 -6
  3. package/LICENSE +0 -21
  4. package/README.md +0 -179
  5. package/dist/bin.js.map +0 -1
  6. package/dist/constants.js +0 -5
  7. package/dist/constants.js.map +0 -1
  8. package/dist/generator.js.map +0 -1
  9. package/dist/helpers/genEnum.js +0 -9
  10. package/dist/helpers/genEnum.js.map +0 -1
  11. package/dist/helpers/generateAggregate.js +0 -50
  12. package/dist/helpers/generateAggregate.js.map +0 -1
  13. package/dist/helpers/generateCount.js +0 -50
  14. package/dist/helpers/generateCount.js.map +0 -1
  15. package/dist/helpers/generateCreate.js +0 -51
  16. package/dist/helpers/generateCreate.js.map +0 -1
  17. package/dist/helpers/generateCreateMany.js +0 -51
  18. package/dist/helpers/generateCreateMany.js.map +0 -1
  19. package/dist/helpers/generateDelete.js +0 -52
  20. package/dist/helpers/generateDelete.js.map +0 -1
  21. package/dist/helpers/generateDeleteMany.js +0 -50
  22. package/dist/helpers/generateDeleteMany.js.map +0 -1
  23. package/dist/helpers/generateFindFirst.js +0 -61
  24. package/dist/helpers/generateFindFirst.js.map +0 -1
  25. package/dist/helpers/generateFindMany.js +0 -61
  26. package/dist/helpers/generateFindMany.js.map +0 -1
  27. package/dist/helpers/generateFindUnique copy.js +0 -49
  28. package/dist/helpers/generateFindUnique copy.js.map +0 -1
  29. package/dist/helpers/generateFindUnique.js +0 -61
  30. package/dist/helpers/generateFindUnique.js.map +0 -1
  31. package/dist/helpers/generateGroupBy.js +0 -50
  32. package/dist/helpers/generateGroupBy.js.map +0 -1
  33. package/dist/helpers/generateImportPrismaStatement.js +0 -26
  34. package/dist/helpers/generateImportPrismaStatement.js.map +0 -1
  35. package/dist/helpers/generatePrismaImport.js +0 -2
  36. package/dist/helpers/generatePrismaImport.js.map +0 -1
  37. package/dist/helpers/generateRouteFile.js +0 -181
  38. package/dist/helpers/generateRouteFile.js.map +0 -1
  39. package/dist/helpers/generateUpdate.js +0 -55
  40. package/dist/helpers/generateUpdate.js.map +0 -1
  41. package/dist/helpers/generateUpdateMany.js +0 -52
  42. package/dist/helpers/generateUpdateMany.js.map +0 -1
  43. package/dist/helpers/generateUpsert.js +0 -52
  44. package/dist/helpers/generateUpsert.js.map +0 -1
  45. package/dist/utils/formatFile.js +0 -26
  46. package/dist/utils/formatFile.js.map +0 -1
  47. package/dist/utils/getGeneratorOptions.js +0 -14
  48. package/dist/utils/getGeneratorOptions.js.map +0 -1
  49. package/dist/utils/writeFileSafely.js +0 -21
  50. package/dist/utils/writeFileSafely.js.map +0 -1
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFindFirstFunction = void 0;
4
- const generateFindFirstFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}FindFirst`;
8
- const queryTypeName = `Prisma.${modelName}FindFirstArgs`;
9
- return `
10
- ${prismaImportStatement.replace('{ Prisma }', `{ Prisma, ${modelName} }`)}
11
- import { Request, Response, NextFunction } from 'express'
12
- import {
13
- RequestHandler,
14
- ParamsDictionary,
15
- } from 'express-serve-static-core'
16
- import { ParsedQs } from 'qs';
17
- import { ZodTypeAny } from 'zod';
18
-
19
- export interface FindFirstRequest extends Request {
20
- prisma: PrismaClient;
21
- query: ${queryTypeName} & ParsedQs;
22
- outputValidation?: ZodTypeAny;
23
- omitOutputValidation?: boolean;
24
- passToNext?: boolean;
25
- locals: {
26
- data?: ${modelName} | null
27
- }
28
- }
29
- export type FindFirstMiddleware = RequestHandler<ParamsDictionary, any, any, ${queryTypeName} & ParsedQs, Record<string, any>>
30
-
31
- export async function ${functionName}(req: FindFirstRequest, res: Response, next: NextFunction) {
32
- try {
33
- if (!req.outputValidation && !req.omitOutputValidation) {
34
- throw new Error('Output validation schema or omission flag must be provided.');
35
- }
36
-
37
- const data = await req.prisma.${modelName.toLowerCase()}.findFirst(req.query as ${queryTypeName});
38
- if (req.passToNext) {
39
- req.locals.data = data;
40
- next();
41
- } else if (!req.omitOutputValidation && req.outputValidation) {
42
- const validationResult = req.outputValidation.safeParse(data);
43
- if (validationResult.success) {
44
- res.status(200).json(validationResult.data);
45
- } else {
46
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
47
- }
48
- } else if (!req.omitOutputValidation) {
49
- throw new Error('Output validation schema must be provided unless explicitly omitted. Attach omitOutputValidation = true to request to suppress this error.');
50
- } else {
51
- res.status(200).json(data);
52
- }
53
- } catch (error) {
54
- console.error('Error in handling request:', error);
55
- res.status(500).json({ error: error.message });
56
- next(error);
57
- }
58
- }`;
59
- };
60
- exports.generateFindFirstFunction = generateFindFirstFunction;
61
- //# sourceMappingURL=generateFindFirst.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateFindFirst.js","sourceRoot":"","sources":["../../src/helpers/generateFindFirst.ts"],"names":[],"mappings":";;;AAQO,MAAM,yBAAyB,GAAG,CAAC,OAGzC,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,WAAW,CAAA;IAC5C,MAAM,aAAa,GAAG,UAAU,SAAS,eAAe,CAAA;IAExD,OAAO;EACP,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,SAAS,IAAI,CAAC;;;;;;;;;;;WAW9D,aAAa;;;;;aAKX,SAAS;;;+EAGyD,aAAa;;wBAEpE,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE,2BAA2B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqBjG,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,yBAAyB,6BA2DrC"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFindManyFunction = void 0;
4
- const generateFindManyFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}FindMany`;
8
- const queryTypeName = `Prisma.${modelName}FindManyArgs`;
9
- return `
10
- ${prismaImportStatement.replace('{ Prisma }', `{ Prisma, ${modelName} }`)}
11
- import { Request, Response, NextFunction } from 'express'
12
- import {
13
- RequestHandler,
14
- ParamsDictionary,
15
- } from 'express-serve-static-core'
16
- import { ParsedQs } from 'qs';
17
- import { ZodTypeAny } from 'zod';
18
-
19
- export interface FindManyRequest extends Request {
20
- prisma: PrismaClient;
21
- query: ${queryTypeName} & ParsedQs;
22
- outputValidation?: ZodTypeAny;
23
- omitOutputValidation?: boolean;
24
- passToNext?: boolean;
25
- locals: {
26
- data?: ${modelName}[]
27
- }
28
- }
29
- export type FindManyMiddleware = RequestHandler<ParamsDictionary, any, any, ${queryTypeName} & ParsedQs, Record<string, any>>
30
-
31
- export async function ${functionName}(req: FindManyRequest, res: Response, next: NextFunction) {
32
- try {
33
- if (!req.outputValidation && !req.omitOutputValidation) {
34
- throw new Error('Output validation schema or omission flag must be provided.');
35
- }
36
-
37
- const data = await req.prisma.${modelName.toLowerCase()}.findMany(req.query as ${queryTypeName});
38
- if (req.passToNext) {
39
- req.locals.data = data;
40
- next();
41
- } else if (!req.omitOutputValidation && req.outputValidation) {
42
- const validationResult = req.outputValidation.safeParse(data);
43
- if (validationResult.success) {
44
- res.status(200).json(validationResult.data);
45
- } else {
46
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
47
- }
48
- } else if (!req.omitOutputValidation) {
49
- throw new Error('Output validation schema must be provided unless explicitly omitted. Attach omitOutputValidation = true to request to suppress this error.');
50
- } else {
51
- res.status(200).json(data);
52
- }
53
- } catch (error) {
54
- console.error('Error in handling request:', error);
55
- res.status(500).json({ error: error.message });
56
- next(error);
57
- }
58
- }`;
59
- };
60
- exports.generateFindManyFunction = generateFindManyFunction;
61
- //# sourceMappingURL=generateFindMany.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateFindMany.js","sourceRoot":"","sources":["../../src/helpers/generateFindMany.ts"],"names":[],"mappings":";;;AAQO,MAAM,wBAAwB,GAAG,CAAC,OAGxC,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,UAAU,CAAA;IAC3C,MAAM,aAAa,GAAG,UAAU,SAAS,cAAc,CAAA;IAEvD,OAAO;EACP,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,SAAS,IAAI,CAAC;;;;;;;;;;;WAW9D,aAAa;;;;;aAKX,SAAS;;;8EAGwD,aAAa;;wBAEnE,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE,0BAA0B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqBhG,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,wBAAwB,4BA2DpC"}
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFindUniqueFunction = void 0;
4
- const generateFindUniqueFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}FindUnique`;
8
- const queryTypeName = `Prisma.${modelName}FindUniqueArgs`;
9
- return `
10
- ${prismaImportStatement}
11
- import { Request, Response, NextFunction } from 'express';
12
- import { ParsedQs } from 'qs';
13
- import { ZodTypeAny } from 'zod';
14
-
15
- interface PrismaRequest extends Request {
16
- prisma: PrismaClient;
17
- query: ${queryTypeName} & ParsedQs;
18
- outputValidation?: ZodTypeAny;
19
- omitOutputValidation?: boolean;
20
- }
21
-
22
- export async function ${functionName}(req: PrismaRequest, res: Response, next: NextFunction) {
23
- try {
24
- if (!req.outputValidation && !req.omitOutputValidation) {
25
- throw new Error('Output validation schema or omission flag must be provided.');
26
- }
27
-
28
- const data = await req.prisma.${modelName.toLowerCase()}.findUnique(req.query as ${queryTypeName});
29
- if (!req.omitOutputValidation && req.outputValidation) {
30
- const validationResult = req.outputValidation.safeParse(data);
31
- if (validationResult.success) {
32
- res.status(200).json(validationResult.data);
33
- } else {
34
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
35
- }
36
- } else if (!req.omitOutputValidation) {
37
- throw new Error('Output validation schema must be provided unless explicitly omitted. Attach omitOutputValidation = true to request to suppress this error.');
38
- } else {
39
- res.status(200).json(data);
40
- }
41
- } catch (error) {
42
- console.error('Error in handling request:', error);
43
- res.status(500).json({ error: error.message });
44
- next(error);
45
- }
46
- }`;
47
- };
48
- exports.generateFindUniqueFunction = generateFindUniqueFunction;
49
- //# sourceMappingURL=generateFindUnique%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateFindUnique copy.js","sourceRoot":"","sources":["../../src/helpers/generateFindUnique copy.ts"],"names":[],"mappings":";;;AAQO,MAAM,0BAA0B,GAAG,CAAC,OAG1C,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,YAAY,CAAA;IAC7C,MAAM,aAAa,GAAG,UAAU,SAAS,gBAAgB,CAAA;IAEzD,OAAO;EACP,qBAAqB;;;;;;;WAOZ,aAAa;;;;;wBAKA,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE,4BAA4B,aAAa;;;;;;;;;;;;;;;;;;EAkBlG,CAAA;AACF,CAAC,CAAA;AA/CY,QAAA,0BAA0B,8BA+CtC"}
@@ -1,61 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateFindUniqueFunction = void 0;
4
- const generateFindUniqueFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}FindUnique`;
8
- const queryTypeName = `Prisma.${modelName}FindUniqueArgs`;
9
- return `
10
- ${prismaImportStatement.replace('{ Prisma }', `{ Prisma, ${modelName} }`)}
11
- import { Request, Response, NextFunction } from 'express'
12
- import {
13
- RequestHandler,
14
- ParamsDictionary,
15
- } from 'express-serve-static-core'
16
- import { ParsedQs } from 'qs';
17
- import { ZodTypeAny } from 'zod';
18
-
19
- export interface FindUniqueRequest extends Request {
20
- prisma: PrismaClient;
21
- query: ${queryTypeName} & ParsedQs;
22
- outputValidation?: ZodTypeAny;
23
- omitOutputValidation?: boolean;
24
- passToNext?: boolean;
25
- locals: {
26
- data?: ${modelName} | null
27
- }
28
- }
29
- export type FindUniqueMiddleware = RequestHandler<ParamsDictionary, any, any, ${queryTypeName} & ParsedQs, Record<string, any>>
30
-
31
- export async function ${functionName}(req: FindUniqueRequest, res: Response, next: NextFunction) {
32
- try {
33
- if (!req.outputValidation && !req.omitOutputValidation) {
34
- throw new Error('Output validation schema or omission flag must be provided.');
35
- }
36
-
37
- const data = await req.prisma.${modelName.toLowerCase()}.findUnique(req.query as ${queryTypeName});
38
- if (req.passToNext) {
39
- req.locals.data = data;
40
- next();
41
- } else if (!req.omitOutputValidation && req.outputValidation) {
42
- const validationResult = req.outputValidation.safeParse(data);
43
- if (validationResult.success) {
44
- res.status(200).json(validationResult.data);
45
- } else {
46
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
47
- }
48
- } else if (!req.omitOutputValidation) {
49
- throw new Error('Output validation schema must be provided unless explicitly omitted. Attach omitOutputValidation = true to request to suppress this error.');
50
- } else {
51
- res.status(200).json(data);
52
- }
53
- } catch (error) {
54
- console.error('Error in handling request:', error);
55
- res.status(500).json({ error: error.message });
56
- next(error);
57
- }
58
- }`;
59
- };
60
- exports.generateFindUniqueFunction = generateFindUniqueFunction;
61
- //# sourceMappingURL=generateFindUnique.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateFindUnique.js","sourceRoot":"","sources":["../../src/helpers/generateFindUnique.ts"],"names":[],"mappings":";;;AAQO,MAAM,0BAA0B,GAAG,CAAC,OAG1C,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,YAAY,CAAA;IAC7C,MAAM,aAAa,GAAG,UAAU,SAAS,gBAAgB,CAAA;IAEzD,OAAO;EACP,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,SAAS,IAAI,CAAC;;;;;;;;;;;WAW9D,aAAa;;;;;aAKX,SAAS;;;gFAG0D,aAAa;;wBAErE,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE,4BAA4B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqBlG,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,0BAA0B,8BA2DtC"}
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateGroupByFunction = void 0;
4
- const generateGroupByFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}GroupBy`;
8
- const argsTypeName = `Prisma.${modelName}GroupByArgs`;
9
- return `
10
- ${prismaImportStatement}
11
- import { Request, Response, NextFunction } from 'express';
12
- import { RequestHandler, ParamsDictionary } from 'express-serve-static-core'
13
- import { ZodTypeAny } from 'zod';
14
-
15
- interface GroupByRequest extends Request {
16
- prisma: PrismaClient;
17
- body: ${argsTypeName};
18
- outputValidation?: ZodTypeAny;
19
- omitOutputValidation?: boolean;
20
- }
21
-
22
- export type GroupByMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>;
23
-
24
- export async function ${functionName}(req: GroupByRequest, res: Response, next: NextFunction) {
25
- try {
26
- if (!req.outputValidation && !req.omitOutputValidation) {
27
- throw new Error('Output validation schema or omission flag must be provided.');
28
- }
29
-
30
- const result = await req.prisma.${modelName.toLowerCase()}.groupBy(req.body);
31
-
32
- if (!req.omitOutputValidation && req.outputValidation) {
33
- const validationResult = req.outputValidation.safeParse(result);
34
- if (validationResult.success) {
35
- res.status(200).json(validationResult.data);
36
- } else {
37
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
38
- }
39
- } else {
40
- res.status(200).json(result);
41
- }
42
- } catch (error) {
43
- console.error('Error in handling groupBy request:', error);
44
- res.status(500).json({ error: error.message });
45
- next(error);
46
- }
47
- }`;
48
- };
49
- exports.generateGroupByFunction = generateGroupByFunction;
50
- //# sourceMappingURL=generateGroupBy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateGroupBy.js","sourceRoot":"","sources":["../../src/helpers/generateGroupBy.ts"],"names":[],"mappings":";;;AASO,MAAM,uBAAuB,GAAG,CAAC,OAGvC,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,SAAS,CAAA;IAC1C,MAAM,YAAY,GAAG,UAAU,SAAS,aAAa,CAAA;IAErD,OAAO;EACP,qBAAqB;;;;;;;UAOb,YAAY;;;;;wEAKkD,YAAY;;wBAE5D,YAAY;;;;;;sCAME,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;EAiB3D,CAAA;AACF,CAAC,CAAA;AAhDY,QAAA,uBAAuB,2BAgDnC"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateImportPrismaStatement = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- function getImportGeneratorOptions(options) {
9
- var _a, _b;
10
- const clientGenerator = options.otherGenerators.find((gen) => gen.name === 'client');
11
- if (!clientGenerator || !((_a = clientGenerator.output) === null || _a === void 0 ? void 0 : _a.value)) {
12
- throw new Error('Prisma client generator not found.');
13
- }
14
- const modelDirPath = path_1.default.join((_b = options.generator.output) === null || _b === void 0 ? void 0 : _b.value, 'modelFolder');
15
- const clientOutputPath = clientGenerator.output.value;
16
- const relativeImportPath = path_1.default.relative(modelDirPath, clientOutputPath);
17
- return {
18
- outputPath: relativeImportPath.split(path_1.default.sep).join(path_1.default.posix.sep),
19
- };
20
- }
21
- function generateImportPrismaStatement(generatorOptions) {
22
- const options = getImportGeneratorOptions(generatorOptions);
23
- return `import type { Prisma } from '${options.outputPath}';\nimport type { PrismaClient } from '${options.outputPath}';\n`;
24
- }
25
- exports.generateImportPrismaStatement = generateImportPrismaStatement;
26
- //# sourceMappingURL=generateImportPrismaStatement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateImportPrismaStatement.js","sourceRoot":"","sources":["../../src/helpers/generateImportPrismaStatement.ts"],"names":[],"mappings":";;;;;;AACA,gDAAuB;AAMvB,SAAS,yBAAyB,CAChC,OAAyB;;IAEzB,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAClD,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,CAC/B,CAAA;IAED,IAAI,CAAC,eAAe,IAAI,CAAC,CAAA,MAAA,eAAe,CAAC,MAAM,0CAAE,KAAK,CAAA,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAC5B,MAAA,OAAO,CAAC,SAAS,CAAC,MAAM,0CAAE,KAAM,EAChC,aAAa,CACd,CAAA;IACD,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,KAAK,CAAA;IAErD,MAAM,kBAAkB,GAAG,cAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAA;IAExE,OAAO;QACL,UAAU,EAAE,kBAAkB,CAAC,KAAK,CAAC,cAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAI,CAAC,KAAK,CAAC,GAAG,CAAC;KACpE,CAAA;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,gBAAkC;IAElC,MAAM,OAAO,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAA;IAE3D,OAAO,gCAAgC,OAAO,CAAC,UAAU,0CAA0C,OAAO,CAAC,UAAU,MAAM,CAAA;AAC7H,CAAC;AAND,sEAMC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=generatePrismaImport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generatePrismaImport.js","sourceRoot":"","sources":["../../src/helpers/generatePrismaImport.ts"],"names":[],"mappings":""}
@@ -1,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateRouterFunction = void 0;
4
- function generateRouterFunction({ model, }) {
5
- const modelName = model.name;
6
- const routerFunctionName = `${modelName}Router`;
7
- return `
8
- import express, { RequestHandler } from 'express';
9
- import { ${modelName}FindFirst, type FindFirstMiddleware } from './${modelName}FindFirst';
10
- import { ${modelName}FindMany, type FindManyMiddleware } from './${modelName}FindMany';
11
- import { ${modelName}FindUnique, type FindUniqueMiddleware } from './${modelName}FindUnique';
12
- import { ${modelName}Create, type CreateMiddleware } from './${modelName}Create';
13
- import { ${modelName}CreateMany, type CreateManyMiddleware } from './${modelName}CreateMany';
14
- import { ${modelName}Update, type UpdateMiddleware } from './${modelName}Update';
15
- import { ${modelName}UpdateMany, type UpdateManyMiddleware } from './${modelName}UpdateMany';
16
- import { ${modelName}Upsert, type UpsertMiddleware } from './${modelName}Upsert';
17
- import { ${modelName}Delete, type DeleteMiddleware } from './${modelName}Delete';
18
- import { ${modelName}DeleteMany, type DeleteManyMiddleware } from './${modelName}DeleteMany';
19
- import { ${modelName}Aggregate, type AggregateMiddleware } from './${modelName}Aggregate';
20
- import { ${modelName}Count, type CountMiddleware } from './${modelName}Count';
21
- import { ${modelName}GroupBy, type GroupByMiddleware } from './${modelName}GroupBy';
22
-
23
- interface RouteConfig {
24
- findFirstMiddleware?: FindFirstMiddleware[]
25
- findFirstNextMiddleware?: RequestHandler[]
26
-
27
- findManyMiddleware?: FindManyMiddleware[]
28
- findManyNextMiddleware?: RequestHandler[]
29
-
30
- findUniqueMiddleware?: FindUniqueMiddleware[]
31
- findUniqueNextMiddleware?: RequestHandler[]
32
-
33
- createMiddleware?: CreateMiddleware[]
34
- createNextMiddleware?: RequestHandler[]
35
-
36
- createManyMiddleware?: CreateManyMiddleware[]
37
- createManyNextMiddleware?: RequestHandler[]
38
-
39
- updateMiddleware?: UpdateMiddleware[]
40
- updateNextMiddleware?: RequestHandler[]
41
-
42
- updateManyMiddleware?: UpdateManyMiddleware[]
43
- updateManyNextMiddleware?: RequestHandler[]
44
-
45
- upsertMiddleware?: UpsertMiddleware[]
46
- upsertNextMiddleware?: RequestHandler[]
47
-
48
- deleteMiddleware?: DeleteMiddleware[]
49
- deleteNextMiddleware?: RequestHandler[]
50
-
51
- deleteManyMiddleware?: DeleteManyMiddleware[]
52
- deleteManyNextMiddleware?: RequestHandler[]
53
-
54
- aggregateMiddleware?: AggregateMiddleware[]
55
- aggregateNextMiddleware?: RequestHandler[]
56
-
57
- countMiddleware?: CountMiddleware[]
58
- countNextMiddleware?: RequestHandler[]
59
-
60
- groupByMiddleware?: GroupByMiddleware[]
61
- groupByNextMiddleware?: RequestHandler[]
62
- }
63
-
64
- /**
65
- * Generates an Express router for ${modelName} model.
66
- * @param config Contains optional middleware to enable routes.
67
- * @returns {express.Router}
68
- */
69
- export function ${routerFunctionName}(config: RouteConfig) {
70
- const router = express.Router();
71
-
72
- if (config?.findFirstMiddleware && config?.findFirstMiddleware.length) {
73
- const middlewares = [...config.findFirstMiddleware, ${modelName}FindFirst]
74
- if (config.findFirstNextMiddleware) {
75
- middlewares.push(...config.findFirstNextMiddleware);
76
- }
77
- router.get('/first', ...middlewares as FindFirstMiddleware[]);
78
- }
79
-
80
- if (config?.findManyMiddleware && config?.findManyMiddleware.length) {
81
- const middlewares = [...config.findManyMiddleware, ${modelName}FindMany]
82
- if (config.findManyNextMiddleware) {
83
- middlewares.push(...config.findManyNextMiddleware);
84
- }
85
- router.get('/', ...middlewares as FindManyMiddleware[]);
86
- }
87
-
88
- if (config?.findUniqueMiddleware && config?.findUniqueMiddleware.length) {
89
- const middlewares = [...config.findUniqueMiddleware, ${modelName}FindUnique]
90
- if (config.findUniqueNextMiddleware) {
91
- middlewares.push(...config.findUniqueNextMiddleware);
92
- }
93
- router.get('/:id', ...middlewares as FindUniqueMiddleware[]);
94
- }
95
-
96
- if (config?.createMiddleware && config?.createMiddleware.length) {
97
- const middlewares = [...config.createMiddleware, ${modelName}Create]
98
- if (config.createNextMiddleware) {
99
- middlewares.push(...config.createNextMiddleware);
100
- }
101
- router.post('/', ...middlewares);
102
- }
103
-
104
- if (config?.createManyMiddleware && config?.createManyMiddleware.length) {
105
- const middlewares = [...config.createManyMiddleware, ${modelName}CreateMany]
106
- if (config.createManyNextMiddleware) {
107
- middlewares.push(...config.createManyNextMiddleware);
108
- }
109
- router.post('/many', ...middlewares);
110
- }
111
-
112
- if (config?.updateMiddleware && config?.updateMiddleware.length) {
113
- const middlewares = [...config.updateMiddleware, ${modelName}Update]
114
- if (config.updateNextMiddleware) {
115
- middlewares.push(...config.updateNextMiddleware);
116
- }
117
- router.put('/', ...middlewares);
118
- }
119
-
120
- if (config?.updateManyMiddleware && config?.updateManyMiddleware.length) {
121
- const middlewares = [...config.updateManyMiddleware, ${modelName}UpdateMany]
122
- if (config.updateManyNextMiddleware) {
123
- middlewares.push(...config.updateManyNextMiddleware);
124
- }
125
- router.put('/many', ...middlewares);
126
- }
127
-
128
- if (config?.upsertMiddleware && config?.upsertMiddleware.length) {
129
- const middlewares = [...config.upsertMiddleware, ${modelName}Upsert]
130
- if (config.upsertNextMiddleware) {
131
- middlewares.push(...config.upsertNextMiddleware);
132
- }
133
- router.patch('/', ...middlewares);
134
- }
135
-
136
- if (config?.deleteMiddleware && config?.deleteMiddleware.length) {
137
- const middlewares = [...config.deleteMiddleware, ${modelName}Delete]
138
- if (config.deleteNextMiddleware) {
139
- middlewares.push(...config.deleteNextMiddleware);
140
- }
141
- router.delete('/', ...middlewares);
142
- }
143
-
144
- if (config?.deleteManyMiddleware && config?.deleteManyMiddleware.length) {
145
- const middlewares = [...config.deleteManyMiddleware, ${modelName}DeleteMany]
146
- if (config.deleteManyNextMiddleware) {
147
- middlewares.push(...config.deleteManyNextMiddleware);
148
- }
149
- router.delete('/many', ...middlewares);
150
- }
151
-
152
- if (config?.aggregateMiddleware && config?.aggregateMiddleware.length) {
153
- const middlewares = [...config.aggregateMiddleware, ${modelName}Aggregate]
154
- if (config.aggregateNextMiddleware) {
155
- middlewares.push(...config.aggregateNextMiddleware);
156
- }
157
- router.get('/aggregate', ...middlewares);
158
- }
159
-
160
- if (config?.countMiddleware && config?.countMiddleware.length) {
161
- const middlewares = [...config.countMiddleware, ${modelName}Count]
162
- if (config.countNextMiddleware) {
163
- middlewares.push(...config.countNextMiddleware);
164
- }
165
- router.get('/count', ...middlewares);
166
- }
167
-
168
- if (config?.groupByMiddleware && config?.groupByMiddleware.length) {
169
- const middlewares = [...config.groupByMiddleware, ${modelName}GroupBy]
170
- if (config.groupByNextMiddleware) {
171
- middlewares.push(...config.groupByNextMiddleware);
172
- }
173
- router.get('/groupby', ...middlewares);
174
- }
175
-
176
- return router;
177
- }
178
- `;
179
- }
180
- exports.generateRouterFunction = generateRouterFunction;
181
- //# sourceMappingURL=generateRouteFile.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateRouteFile.js","sourceRoot":"","sources":["../../src/helpers/generateRouteFile.ts"],"names":[],"mappings":";;;AAEA,SAAgB,sBAAsB,CAAC,EACrC,KAAK,GAGN;IACC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,kBAAkB,GAAG,GAAG,SAAS,QAAQ,CAAA;IAE/C,OAAO;;WAEE,SAAS,iDAAiD,SAAS;WACnE,SAAS,+CAA+C,SAAS;WACjE,SAAS,mDAAmD,SAAS;WACrE,SAAS,2CAA2C,SAAS;WAC7D,SAAS,mDAAmD,SAAS;WACrE,SAAS,2CAA2C,SAAS;WAC7D,SAAS,mDAAmD,SAAS;WACrE,SAAS,2CAA2C,SAAS;WAC7D,SAAS,2CAA2C,SAAS;WAC7D,SAAS,mDAAmD,SAAS;WACrE,SAAS,iDAAiD,SAAS;WACnE,SAAS,yCAAyC,SAAS;WAC3D,SAAS,6CAA6C,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA4CrC,SAAS;;;;kBAI5B,kBAAkB;;;;0DAIsB,SAAS;;;;;;;;yDAQV,SAAS;;;;;;;;2DAQP,SAAS;;;;;;;;uDAQb,SAAS;;;;;;;;2DAQL,SAAS;;;;;;;;uDAQb,SAAS;;;;;;;;2DAQL,SAAS;;;;;;;;uDAQb,SAAS;;;;;;;;uDAQT,SAAS;;;;;;;;2DAQL,SAAS;;;;;;;;0DAQV,SAAS;;;;;;;;sDAQb,SAAS;;;;;;;;wDAQP,SAAS;;;;;;;;;CAShE,CAAA;AACD,CAAC;AApLD,wDAoLC"}
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateUpdateFunction = void 0;
4
- const generateUpdateFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}Update`;
8
- const argsTypeName = `Prisma.${modelName}UpdateArgs`;
9
- return `
10
- ${prismaImportStatement}
11
- import { Request, Response, NextFunction } from 'express';
12
- import { RequestHandler, ParamsDictionary } from 'express-serve-static-core';
13
- import { ZodTypeAny } from 'zod';
14
-
15
- interface UpdateRequest extends Request {
16
- prisma: PrismaClient;
17
- body: ${argsTypeName};
18
- outputValidation?: ZodTypeAny;
19
- omitOutputValidation?: boolean;
20
- }
21
-
22
- export type UpdateMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>
23
-
24
- export async function ${functionName}(req: UpdateRequest, res: Response, next: NextFunction) {
25
- try {
26
- if (!req.outputValidation && !req.omitOutputValidation) {
27
- throw new Error('Output validation schema or omission flag must be provided.');
28
- }
29
-
30
- const data = await req.prisma.${modelName.toLowerCase()}.update({
31
- where: { id: parseInt(req.params.id) },
32
- data: req.body
33
- });
34
-
35
- if (!req.omitOutputValidation && req.outputValidation) {
36
- const validationResult = req.outputValidation.safeParse(data);
37
- if (validationResult.success) {
38
- res.status(200).json(validationResult.data);
39
- } else {
40
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
41
- }
42
- } else if (!req.omitOutputValidation) {
43
- throw new Error('Output validation schema must be provided unless explicitly omitted.');
44
- } else {
45
- res.status(200).json(data);
46
- }
47
- } catch (error) {
48
- console.error('Error in handling update request:', error);
49
- res.status(500).json({ error: error.message });
50
- next(error);
51
- }
52
- }`;
53
- };
54
- exports.generateUpdateFunction = generateUpdateFunction;
55
- //# sourceMappingURL=generateUpdate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateUpdate.js","sourceRoot":"","sources":["../../src/helpers/generateUpdate.ts"],"names":[],"mappings":";;;AAQO,MAAM,sBAAsB,GAAG,CAAC,OAGtC,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,QAAQ,CAAA;IACzC,MAAM,YAAY,GAAG,UAAU,SAAS,YAAY,CAAA;IAEpD,OAAO;EACP,qBAAqB;;;;;;;UAOb,YAAY;;;;;uEAKiD,YAAY;;wBAE3D,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;EAsBzD,CAAA;AACF,CAAC,CAAA;AArDY,QAAA,sBAAsB,0BAqDlC"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateUpdateManyFunction = void 0;
4
- const generateUpdateManyFunction = (options) => {
5
- const { model, prismaImportStatement } = options;
6
- const modelName = model.name;
7
- const functionName = `${modelName}UpdateMany`;
8
- const argsTypeName = `Prisma.${modelName}UpdateManyArgs`;
9
- return `
10
- ${prismaImportStatement}
11
- import { Request, Response, NextFunction } from 'express';
12
- import { RequestHandler, ParamsDictionary } from 'express-serve-static-core';
13
- import { ZodTypeAny } from 'zod';
14
-
15
- interface UpdateManyRequest extends Request {
16
- prisma: PrismaClient;
17
- body: ${argsTypeName};
18
- outputValidation?: ZodTypeAny;
19
- omitOutputValidation?: boolean;
20
- }
21
-
22
- export type UpdateManyMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>
23
-
24
- export async function ${functionName}(req: UpdateManyRequest, res: Response, next: NextFunction) {
25
- try {
26
- if (!req.outputValidation && !req.omitOutputValidation) {
27
- throw new Error('Output validation schema or omission flag must be provided.');
28
- }
29
-
30
- const data = await req.prisma.${modelName.toLowerCase()}.updateMany(req.body);
31
-
32
- if (!req.omitOutputValidation && req.outputValidation) {
33
- const validationResult = req.outputValidation.safeParse(data);
34
- if (validationResult.success) {
35
- res.status(200).json({ count: validationResult.data.count });
36
- } else {
37
- res.status(400).json({ error: 'Invalid data format', details: validationResult.error });
38
- }
39
- } else if (!req.omitOutputValidation) {
40
- throw new Error('Output validation schema must be provided unless explicitly omitted.');
41
- } else {
42
- res.status(200).json({ count: data.count });
43
- }
44
- } catch (error) {
45
- console.error('Error in handling updateMany request:', error);
46
- res.status(500).json({ error: error.message });
47
- next(error);
48
- }
49
- }`;
50
- };
51
- exports.generateUpdateManyFunction = generateUpdateManyFunction;
52
- //# sourceMappingURL=generateUpdateMany.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateUpdateMany.js","sourceRoot":"","sources":["../../src/helpers/generateUpdateMany.ts"],"names":[],"mappings":";;;AAQO,MAAM,0BAA0B,GAAG,CAAC,OAG1C,EAAU,EAAE;IACX,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;IAC5B,MAAM,YAAY,GAAG,GAAG,SAAS,YAAY,CAAA;IAC7C,MAAM,YAAY,GAAG,UAAU,SAAS,gBAAgB,CAAA;IAExD,OAAO;EACP,qBAAqB;;;;;;;UAOb,YAAY;;;;;2EAKqD,YAAY;;wBAE/D,YAAY;;;;;;oCAMA,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;EAmBzD,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,0BAA0B,8BAkDtC"}