prisma-generator-express 1.1.0 → 1.3.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 (53) hide show
  1. package/README.md +2 -1
  2. package/dist/helpers/generateAggregate.js +6 -4
  3. package/dist/helpers/generateAggregate.js.map +1 -1
  4. package/dist/helpers/generateCount.js +6 -4
  5. package/dist/helpers/generateCount.js.map +1 -1
  6. package/dist/helpers/generateCreate.js +2 -1
  7. package/dist/helpers/generateCreate.js.map +1 -1
  8. package/dist/helpers/generateCreateMany.js +2 -1
  9. package/dist/helpers/generateCreateMany.js.map +1 -1
  10. package/dist/helpers/generateDelete.js +2 -1
  11. package/dist/helpers/generateDelete.js.map +1 -1
  12. package/dist/helpers/generateDeleteMany.js +2 -1
  13. package/dist/helpers/generateDeleteMany.js.map +1 -1
  14. package/dist/helpers/generateFindFirst.js +2 -1
  15. package/dist/helpers/generateFindFirst.js.map +1 -1
  16. package/dist/helpers/generateFindMany.js +2 -1
  17. package/dist/helpers/generateFindMany.js.map +1 -1
  18. package/dist/helpers/generateFindUnique.js +2 -1
  19. package/dist/helpers/generateFindUnique.js.map +1 -1
  20. package/dist/helpers/generateGroupBy.js +7 -4
  21. package/dist/helpers/generateGroupBy.js.map +1 -1
  22. package/dist/helpers/generateRouteFile.js +10 -10
  23. package/dist/helpers/generateUpdate.js +2 -4
  24. package/dist/helpers/generateUpdate.js.map +1 -1
  25. package/dist/helpers/generateUpdateMany.js +2 -1
  26. package/dist/helpers/generateUpdateMany.js.map +1 -1
  27. package/dist/helpers/generateUpsert.js +2 -1
  28. package/dist/helpers/generateUpsert.js.map +1 -1
  29. package/dist/utils/strings.js +12 -0
  30. package/dist/utils/strings.js.map +1 -0
  31. package/package.json +11 -3
  32. package/src/bin.ts +2 -0
  33. package/src/constants.ts +1 -0
  34. package/src/generator.ts +174 -0
  35. package/src/helpers/generateAggregate.ts +60 -0
  36. package/src/helpers/generateCount.ts +60 -0
  37. package/src/helpers/generateCreate.ts +58 -0
  38. package/src/helpers/generateCreateMany.ts +58 -0
  39. package/src/helpers/generateDelete.ts +60 -0
  40. package/src/helpers/generateDeleteMany.ts +58 -0
  41. package/src/helpers/generateFindFirst.ts +68 -0
  42. package/src/helpers/generateFindMany.ts +68 -0
  43. package/src/helpers/generateFindUnique.ts +68 -0
  44. package/src/helpers/generateGroupBy.ts +62 -0
  45. package/src/helpers/generateImportPrismaStatement.ts +38 -0
  46. package/src/helpers/generateRouteFile.ts +183 -0
  47. package/src/helpers/generateUpdate.ts +59 -0
  48. package/src/helpers/generateUpdateMany.ts +59 -0
  49. package/src/helpers/generateUpsert.ts +60 -0
  50. package/src/utils/formatFile.ts +22 -0
  51. package/src/utils/strings.ts +7 -0
  52. package/src/utils/writeFileSafely.ts +28 -0
  53. package/CHANGELOG.md +0 -14
package/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # Prisma Generator Express
2
2
 
3
- [![npm version](https://badge.fury.io/js/prisma-generator-express.svg)](https://badge.fury.io/js/prisma-generator-express)
3
+ [![npm version](https://img.shields.io/npm/v/prisma-generator-express.svg)](https://www.npmjs.com/package/prisma-generator-express)
4
4
  [![npm](https://img.shields.io/npm/dt/prisma-generator-express.svg)](https://www.npmjs.com/package/prisma-generator-express)
5
+ [![npm](https://img.shields.io/npm/types/prisma-generator-express)](https://www.npmjs.com/package/prisma-generator-express)
5
6
  [![HitCount](https://hits.dwyl.com/multipliedtwice/prisma-generator-express.svg?style=flat)](http://hits.dwyl.com/multipliedtwice/prisma-generator-express)
6
7
  [![npm](https://img.shields.io/npm/l/prisma-generator-express.svg)](LICENSE)
7
8
 
@@ -1,25 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateAggregateFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateAggregateFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
7
8
  const functionName = `${modelName}Aggregate`;
8
- const argsTypeName = `Prisma.${modelName}AggregateArgs`;
9
+ const argsTypeName = `Prisma.${(0, strings_1.capitalize)(modelName)}AggregateArgs`;
9
10
  return `
10
11
  ${prismaImportStatement}
11
12
  import { Request, Response, NextFunction } from 'express';
12
13
  import { RequestHandler, ParamsDictionary } from 'express-serve-static-core'
14
+ import { ParsedQs } from 'qs'
13
15
  import { ZodTypeAny } from 'zod';
14
16
 
15
17
  interface AggregateRequest extends Request {
16
18
  prisma: PrismaClient;
17
- body: ${argsTypeName};
19
+ query: Partial<${argsTypeName}> & ParsedQs;
18
20
  outputValidation?: ZodTypeAny;
19
21
  omitOutputValidation?: boolean;
20
22
  }
21
23
 
22
- export type AggregateMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>;
24
+ export type AggregateMiddleware = RequestHandler<ParamsDictionary, any, Partial<${argsTypeName}>, Record<string, any>>;
23
25
 
24
26
  export async function ${functionName}(req: AggregateRequest, res: Response, next: NextFunction) {
25
27
  try {
@@ -27,7 +29,7 @@ export async function ${functionName}(req: AggregateRequest, res: Response, next
27
29
  throw new Error('Output validation schema or omission flag must be provided.');
28
30
  }
29
31
 
30
- const result = await req.prisma.${modelName.toLowerCase()}.aggregate(req.body);
32
+ const result = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.aggregate(req.query as ${argsTypeName});
31
33
 
32
34
  if (!req.omitOutputValidation && req.outputValidation) {
33
35
  const validationResult = req.outputValidation.safeParse(result);
@@ -1 +1 @@
1
- {"version":3,"file":"generateAggregate.js","sourceRoot":"","sources":["../../src/helpers/generateAggregate.ts"],"names":[],"mappings":";;;AASO,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,YAAY,GAAG,UAAU,SAAS,eAAe,CAAA;IAEvD,OAAO;EACP,qBAAqB;;;;;;;UAOb,YAAY;;;;;0EAKoD,YAAY;;wBAE9D,YAAY;;;;;;sCAME,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;EAiB3D,CAAA;AACF,CAAC,CAAA;AAhDY,QAAA,yBAAyB,6BAgDrC"}
1
+ {"version":3,"file":"generateAggregate.js","sourceRoot":"","sources":["../../src/helpers/generateAggregate.ts"],"names":[],"mappings":";;;AACA,8CAAmE;AAS5D,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,YAAY,GAAG,UAAU,IAAA,oBAAU,EAAC,SAAS,CAAC,eAAe,CAAA;IAEnE,OAAO;EACP,qBAAqB;;;;;;;;mBAQJ,YAAY;;;;;kFAKmD,YAAY;;wBAEtE,YAAY;;;;;;sCAME,IAAA,8BAAoB,EAAC,SAAS,CAAC,2BAA2B,YAAY;;;;;;;;;;;;;;;;;EAiB1G,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,yBAAyB,6BAiDrC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateCountFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateCountFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -9,17 +10,18 @@ const generateCountFunction = (options) => {
9
10
  return `
10
11
  ${prismaImportStatement}
11
12
  import { Request, Response, NextFunction } from 'express';
12
- import { RequestHandler, ParamsDictionary } from 'express-serve-static-core'
13
+ import { RequestHandler, ParamsDictionary } from 'express-serve-static-core';
14
+ import { ParsedQs } from 'qs';
13
15
  import { ZodTypeAny } from 'zod';
14
16
 
15
17
  interface CountRequest extends Request {
16
18
  prisma: PrismaClient;
17
- body: ${argsTypeName};
19
+ query: Partial<${argsTypeName}> & ParsedQs;
18
20
  outputValidation?: ZodTypeAny;
19
21
  omitOutputValidation?: boolean;
20
22
  }
21
23
 
22
- export type CountMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>;
24
+ export type CountMiddleware = RequestHandler<ParamsDictionary, any, {}, ParsedQs>;
23
25
 
24
26
  export async function ${functionName}(req: CountRequest, res: Response, next: NextFunction) {
25
27
  try {
@@ -27,7 +29,7 @@ export async function ${functionName}(req: CountRequest, res: Response, next: Ne
27
29
  throw new Error('Output validation schema or omission flag must be provided.');
28
30
  }
29
31
 
30
- const result = await req.prisma.${modelName.toLowerCase()}.count(req.body);
32
+ const result = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.count(req.query as ${argsTypeName});
31
33
 
32
34
  if (!req.omitOutputValidation && req.outputValidation) {
33
35
  const validationResult = req.outputValidation.safeParse(result);
@@ -1 +1 @@
1
- {"version":3,"file":"generateCount.js","sourceRoot":"","sources":["../../src/helpers/generateCount.ts"],"names":[],"mappings":";;;AASO,MAAM,qBAAqB,GAAG,CAAC,OAGrC,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,OAAO,CAAA;IACxC,MAAM,YAAY,GAAG,UAAU,SAAS,WAAW,CAAA;IAEnD,OAAO;EACP,qBAAqB;;;;;;;UAOb,YAAY;;;;;sEAKgD,YAAY;;wBAE1D,YAAY;;;;;;sCAME,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;EAiB3D,CAAA;AACF,CAAC,CAAA;AAhDY,QAAA,qBAAqB,yBAgDjC"}
1
+ {"version":3,"file":"generateCount.js","sourceRoot":"","sources":["../../src/helpers/generateCount.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAShD,MAAM,qBAAqB,GAAG,CAAC,OAGrC,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,OAAO,CAAA;IACxC,MAAM,YAAY,GAAG,UAAU,SAAS,WAAW,CAAA;IAEnD,OAAO;EACP,qBAAqB;;;;;;;;mBAQJ,YAAY;;;;;;;wBAOP,YAAY;;;;;;sCAME,IAAA,8BAAoB,EAAC,SAAS,CAAC,uBAAuB,YAAY;;;;;;;;;;;;;;;;;EAiBtG,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,qBAAqB,yBAiDjC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateCreateFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateCreateFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: CreateRequest, res: Response, next: N
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.create(req.body);
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.create(req.body);
31
32
  if (!req.omitOutputValidation && req.outputValidation) {
32
33
  const validationResult = req.outputValidation.safeParse(data);
33
34
  if (validationResult.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"generateCreate.js","sourceRoot":"","sources":["../../src/helpers/generateCreate.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;;;;;;;;;;;;;;;;;;EAkBzD,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,sBAAsB,0BAiDlC"}
1
+ {"version":3,"file":"generateCreate.js","sourceRoot":"","sources":["../../src/helpers/generateCreate.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;EAkBjE,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,sBAAsB,0BAiDlC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateCreateManyFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateCreateManyFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: CreateManyRequest, res: Response, nex
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.createMany(req.body);
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.createMany(req.body);
31
32
  if (!req.omitOutputValidation && req.outputValidation) {
32
33
  const validationResult = req.outputValidation.safeParse(data);
33
34
  if (validationResult.success) {
@@ -1 +1 @@
1
- {"version":3,"file":"generateCreateMany.js","sourceRoot":"","sources":["../../src/helpers/generateCreateMany.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;;;;;;;;;;;;;;;;;;EAkBzD,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,0BAA0B,8BAiDtC"}
1
+ {"version":3,"file":"generateCreateMany.js","sourceRoot":"","sources":["../../src/helpers/generateCreateMany.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;EAkBjE,CAAA;AACF,CAAC,CAAA;AAjDY,QAAA,0BAA0B,8BAiDtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDeleteFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateDeleteFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: DeleteRequest, res: Response, next: N
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.delete(req.body);
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.delete(req.body);
31
32
 
32
33
  if (!req.omitOutputValidation && req.outputValidation) {
33
34
  const validationResult = req.outputValidation.safeParse(data);
@@ -1 +1 @@
1
- {"version":3,"file":"generateDelete.js","sourceRoot":"","sources":["../../src/helpers/generateDelete.ts"],"names":[],"mappings":";;;AASO,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;;;;;;;;;;;;;;;;;;;EAmBzD,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,sBAAsB,0BAkDlC"}
1
+ {"version":3,"file":"generateDelete.js","sourceRoot":"","sources":["../../src/helpers/generateDelete.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAQhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAmBjE,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,sBAAsB,0BAkDlC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateDeleteManyFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateDeleteManyFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: DeleteManyRequest, res: Response, nex
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const result = await req.prisma.${modelName.toLowerCase()}.deleteMany(req.body);
31
+ const result = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.deleteMany(req.body);
31
32
 
32
33
  if (!req.omitOutputValidation && req.outputValidation) {
33
34
  const validationResult = req.outputValidation.safeParse(result);
@@ -1 +1 @@
1
- {"version":3,"file":"generateDeleteMany.js","sourceRoot":"","sources":["../../src/helpers/generateDeleteMany.ts"],"names":[],"mappings":";;;AASO,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;;;;;kFAK4D,SAAS;;wBAEnE,YAAY;;;;;;sCAME,SAAS,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;EAiB3D,CAAA;AACF,CAAC,CAAA;AAhDY,QAAA,0BAA0B,8BAgDtC"}
1
+ {"version":3,"file":"generateDeleteMany.js","sourceRoot":"","sources":["../../src/helpers/generateDeleteMany.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAQhD,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;;;;;kFAK4D,SAAS;;wBAEnE,YAAY;;;;;;sCAME,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;EAiBnE,CAAA;AACF,CAAC,CAAA;AAhDY,QAAA,0BAA0B,8BAgDtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateFindFirstFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateFindFirstFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -34,7 +35,7 @@ export async function ${functionName}(req: FindFirstRequest, res: Response, next
34
35
  throw new Error('Output validation schema or omission flag must be provided.');
35
36
  }
36
37
 
37
- const data = await req.prisma.${modelName.toLowerCase()}.findFirst(req.query as ${queryTypeName});
38
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.findFirst(req.query as ${queryTypeName});
38
39
  if (req.passToNext) {
39
40
  req.locals.data = data;
40
41
  next();
@@ -1 +1 @@
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
+ {"version":3,"file":"generateFindFirst.js","sourceRoot":"","sources":["../../src/helpers/generateFindFirst.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC,2BAA2B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqBzG,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,yBAAyB,6BA2DrC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateFindManyFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateFindManyFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -34,7 +35,7 @@ export async function ${functionName}(req: FindManyRequest, res: Response, next:
34
35
  throw new Error('Output validation schema or omission flag must be provided.');
35
36
  }
36
37
 
37
- const data = await req.prisma.${modelName.toLowerCase()}.findMany(req.query as ${queryTypeName});
38
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.findMany(req.query as ${queryTypeName});
38
39
  if (req.passToNext) {
39
40
  req.locals.data = data;
40
41
  next();
@@ -1 +1 @@
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
+ {"version":3,"file":"generateFindMany.js","sourceRoot":"","sources":["../../src/helpers/generateFindMany.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC,0BAA0B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqBxG,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,wBAAwB,4BA2DpC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateFindUniqueFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateFindUniqueFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -34,7 +35,7 @@ export async function ${functionName}(req: FindUniqueRequest, res: Response, nex
34
35
  throw new Error('Output validation schema or omission flag must be provided.');
35
36
  }
36
37
 
37
- const data = await req.prisma.${modelName.toLowerCase()}.findUnique(req.query as ${queryTypeName});
38
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.findUnique(req.query as ${queryTypeName});
38
39
  if (req.passToNext) {
39
40
  req.locals.data = data;
40
41
  next();
@@ -1 +1 @@
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
+ {"version":3,"file":"generateFindUnique.js","sourceRoot":"","sources":["../../src/helpers/generateFindUnique.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC,4BAA4B,aAAa;;;;;;;;;;;;;;;;;;;;;EAqB1G,CAAA;AACF,CAAC,CAAA;AA3DY,QAAA,0BAA0B,8BA2DtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateGroupByFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateGroupByFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -9,17 +10,18 @@ const generateGroupByFunction = (options) => {
9
10
  return `
10
11
  ${prismaImportStatement}
11
12
  import { Request, Response, NextFunction } from 'express';
12
- import { RequestHandler, ParamsDictionary } from 'express-serve-static-core'
13
+ import { RequestHandler, ParamsDictionary } from 'express-serve-static-core';
14
+ import { ParsedQs } from 'qs';
13
15
  import { ZodTypeAny } from 'zod';
14
16
 
15
17
  interface GroupByRequest extends Request {
16
18
  prisma: PrismaClient;
17
- body: ${argsTypeName};
19
+ query: Partial<${argsTypeName}> & ParsedQs;
18
20
  outputValidation?: ZodTypeAny;
19
21
  omitOutputValidation?: boolean;
20
22
  }
21
23
 
22
- export type GroupByMiddleware = RequestHandler<ParamsDictionary, any, ${argsTypeName}, Record<string, any>>;
24
+ export type GroupByMiddleware = RequestHandler<ParamsDictionary, any, {}, ParsedQs>;
23
25
 
24
26
  export async function ${functionName}(req: GroupByRequest, res: Response, next: NextFunction) {
25
27
  try {
@@ -27,7 +29,8 @@ export async function ${functionName}(req: GroupByRequest, res: Response, next:
27
29
  throw new Error('Output validation schema or omission flag must be provided.');
28
30
  }
29
31
 
30
- const result = await req.prisma.${modelName.toLowerCase()}.groupBy(req.body);
32
+ // @ts-ignore
33
+ const result = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.groupBy(req.query);
31
34
 
32
35
  if (!req.omitOutputValidation && req.outputValidation) {
33
36
  const validationResult = req.outputValidation.safeParse(result);
@@ -1 +1 @@
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
+ {"version":3,"file":"generateGroupBy.js","sourceRoot":"","sources":["../../src/helpers/generateGroupBy.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAUhD,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;;;;;;;;mBAQJ,YAAY;;;;;;;wBAOP,YAAY;;;;;;;sCAOE,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;EAiBnE,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,uBAAuB,2BAkDnC"}
@@ -98,7 +98,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
98
98
  if (config.createNextMiddleware) {
99
99
  middlewares.push(...config.createNextMiddleware);
100
100
  }
101
- router.post('/', ...middlewares);
101
+ router.post('/', ...middlewares as CreateMiddleware[]);
102
102
  }
103
103
 
104
104
  if (config?.createManyMiddleware && config?.createManyMiddleware.length) {
@@ -106,7 +106,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
106
106
  if (config.createManyNextMiddleware) {
107
107
  middlewares.push(...config.createManyNextMiddleware);
108
108
  }
109
- router.post('/many', ...middlewares);
109
+ router.post('/many', ...middlewares as CreateManyMiddleware[]);
110
110
  }
111
111
 
112
112
  if (config?.updateMiddleware && config?.updateMiddleware.length) {
@@ -114,7 +114,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
114
114
  if (config.updateNextMiddleware) {
115
115
  middlewares.push(...config.updateNextMiddleware);
116
116
  }
117
- router.put('/', ...middlewares);
117
+ router.put('/', ...middlewares as UpdateMiddleware[]);
118
118
  }
119
119
 
120
120
  if (config?.updateManyMiddleware && config?.updateManyMiddleware.length) {
@@ -122,7 +122,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
122
122
  if (config.updateManyNextMiddleware) {
123
123
  middlewares.push(...config.updateManyNextMiddleware);
124
124
  }
125
- router.put('/many', ...middlewares);
125
+ router.put('/many', ...middlewares as UpdateManyMiddleware[]);
126
126
  }
127
127
 
128
128
  if (config?.upsertMiddleware && config?.upsertMiddleware.length) {
@@ -130,7 +130,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
130
130
  if (config.upsertNextMiddleware) {
131
131
  middlewares.push(...config.upsertNextMiddleware);
132
132
  }
133
- router.patch('/', ...middlewares);
133
+ router.patch('/', ...middlewares as UpsertMiddleware[]);
134
134
  }
135
135
 
136
136
  if (config?.deleteMiddleware && config?.deleteMiddleware.length) {
@@ -138,7 +138,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
138
138
  if (config.deleteNextMiddleware) {
139
139
  middlewares.push(...config.deleteNextMiddleware);
140
140
  }
141
- router.delete('/', ...middlewares);
141
+ router.delete('/', ...middlewares as DeleteMiddleware[]);
142
142
  }
143
143
 
144
144
  if (config?.deleteManyMiddleware && config?.deleteManyMiddleware.length) {
@@ -146,7 +146,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
146
146
  if (config.deleteManyNextMiddleware) {
147
147
  middlewares.push(...config.deleteManyNextMiddleware);
148
148
  }
149
- router.delete('/many', ...middlewares);
149
+ router.delete('/many', ...middlewares as DeleteManyMiddleware[]);
150
150
  }
151
151
 
152
152
  if (config?.aggregateMiddleware && config?.aggregateMiddleware.length) {
@@ -154,7 +154,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
154
154
  if (config.aggregateNextMiddleware) {
155
155
  middlewares.push(...config.aggregateNextMiddleware);
156
156
  }
157
- router.get('/aggregate', ...middlewares);
157
+ router.get('/aggregate', ...middlewares as AggregateMiddleware[]);
158
158
  }
159
159
 
160
160
  if (config?.countMiddleware && config?.countMiddleware.length) {
@@ -162,7 +162,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
162
162
  if (config.countNextMiddleware) {
163
163
  middlewares.push(...config.countNextMiddleware);
164
164
  }
165
- router.get('/count', ...middlewares);
165
+ router.get('/count', ...middlewares as CountMiddleware[]);
166
166
  }
167
167
 
168
168
  if (config?.groupByMiddleware && config?.groupByMiddleware.length) {
@@ -170,7 +170,7 @@ export function ${routerFunctionName}(config: RouteConfig) {
170
170
  if (config.groupByNextMiddleware) {
171
171
  middlewares.push(...config.groupByNextMiddleware);
172
172
  }
173
- router.get('/groupby', ...middlewares);
173
+ router.get('/groupby', ...middlewares as GroupByMiddleware[]);
174
174
  }
175
175
 
176
176
  return router;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpdateFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateUpdateFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,10 +28,7 @@ export async function ${functionName}(req: UpdateRequest, res: Response, next: N
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.update({
31
- where: { id: parseInt(req.params.id) },
32
- data: req.body
33
- });
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.update(req.body);
34
32
 
35
33
  if (!req.omitOutputValidation && req.outputValidation) {
36
34
  const validationResult = req.outputValidation.safeParse(data);
@@ -1 +1 @@
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
+ {"version":3,"file":"generateUpdate.js","sourceRoot":"","sources":["../../src/helpers/generateUpdate.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAmBjE,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,sBAAsB,0BAkDlC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpdateManyFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateUpdateManyFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: UpdateManyRequest, res: Response, nex
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.updateMany(req.body);
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.updateMany(req.body);
31
32
 
32
33
  if (!req.omitOutputValidation && req.outputValidation) {
33
34
  const validationResult = req.outputValidation.safeParse(data);
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"generateUpdateMany.js","sourceRoot":"","sources":["../../src/helpers/generateUpdateMany.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAOhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAmBjE,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,0BAA0B,8BAkDtC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpsertFunction = void 0;
4
+ const strings_1 = require("../utils/strings");
4
5
  const generateUpsertFunction = (options) => {
5
6
  const { model, prismaImportStatement } = options;
6
7
  const modelName = model.name;
@@ -27,7 +28,7 @@ export async function ${functionName}(req: UpsertRequest, res: Response, next: N
27
28
  throw new Error('Output validation schema or omission flag must be provided.');
28
29
  }
29
30
 
30
- const data = await req.prisma.${modelName.toLowerCase()}.upsert(req.body);
31
+ const data = await req.prisma.${(0, strings_1.lowercaseFirstLetter)(modelName)}.upsert(req.body);
31
32
 
32
33
  if (!req.omitOutputValidation && req.outputValidation) {
33
34
  const validationResult = req.outputValidation.safeParse(data);
@@ -1 +1 @@
1
- {"version":3,"file":"generateUpsert.js","sourceRoot":"","sources":["../../src/helpers/generateUpsert.ts"],"names":[],"mappings":";;;AASO,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;;;;;;;;;;;;;;;;;;;EAmBzD,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,sBAAsB,0BAkDlC"}
1
+ {"version":3,"file":"generateUpsert.js","sourceRoot":"","sources":["../../src/helpers/generateUpsert.ts"],"names":[],"mappings":";;;AACA,8CAAuD;AAQhD,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,IAAA,8BAAoB,EAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;EAmBjE,CAAA;AACF,CAAC,CAAA;AAlDY,QAAA,sBAAsB,0BAkDlC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.lowercaseFirstLetter = exports.capitalize = void 0;
4
+ const capitalize = (str) => str.charAt(0).toUpperCase() + str.slice(1);
5
+ exports.capitalize = capitalize;
6
+ function lowercaseFirstLetter(str) {
7
+ if (!str)
8
+ return str;
9
+ return str.charAt(0).toLowerCase() + str.slice(1);
10
+ }
11
+ exports.lowercaseFirstLetter = lowercaseFirstLetter;
12
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../src/utils/strings.ts"],"names":[],"mappings":";;;AAAO,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACxC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAD/B,QAAA,UAAU,cACqB;AAE5C,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IACpB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACnD,CAAC;AAHD,oDAGC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "prisma-generator-express",
3
3
  "description": "Prisma generator of Express CRUD API",
4
- "version": "1.1.0",
4
+ "version": "1.3.0",
5
5
  "main": "dist/generator.js",
6
6
  "license": "MIT",
7
7
  "bin": {
@@ -15,7 +15,8 @@
15
15
  "dev": "npx tsc -w",
16
16
  "build": "npx tsc",
17
17
  "prepack": "yarn build",
18
- "test": "jest"
18
+ "test": "jest",
19
+ "prepublishOnly": "node copy.js "
19
20
  },
20
21
  "dependencies": {
21
22
  "@prisma/client": "5.14.0",
@@ -26,6 +27,7 @@
26
27
  "zod": "^3.23.8"
27
28
  },
28
29
  "devDependencies": {
30
+ "@prisma/internals": "^5.14.0",
29
31
  "@semantic-release/changelog": "^6.0.3",
30
32
  "@semantic-release/git": "^10.0.1",
31
33
  "@types/express": "^4.17.21",
@@ -41,7 +43,7 @@
41
43
  "homepage": "https://github.com/multipliedtwice/prisma-generator-express/blob/master/README.md",
42
44
  "repository": {
43
45
  "type": "git",
44
- "url": "https://github.com/multipliedtwice/prisma-generator-express"
46
+ "url": "git+https://github.com/multipliedtwice/prisma-generator-express.git"
45
47
  },
46
48
  "author": "multipliedtwice",
47
49
  "keywords": [
@@ -50,6 +52,12 @@
50
52
  "crud",
51
53
  "generator"
52
54
  ],
55
+ "files": [
56
+ "dist/**/*",
57
+ "src/**/*",
58
+ "../../README.md",
59
+ "../../LICENSE"
60
+ ],
53
61
  "release": {
54
62
  "branches": [
55
63
  "master"
package/src/bin.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import './generator'
@@ -0,0 +1 @@
1
+ export const GENERATOR_NAME = 'prisma-generator-express'