prisma-generator-express 1.7.1 → 1.8.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 (65) hide show
  1. package/README.md +50 -21
  2. package/package.json +2 -2
  3. package/{dist → src}/bin.js +0 -1
  4. package/{dist → src}/constants.js +0 -1
  5. package/src/generator.js +195 -0
  6. package/src/generator.ts +7 -0
  7. package/{dist → src}/helpers/generateAggregate.js +14 -4
  8. package/src/helpers/generateAggregate.ts +7 -3
  9. package/{dist → src}/helpers/generateCount.js +14 -4
  10. package/src/helpers/generateCount.ts +7 -3
  11. package/{dist → src}/helpers/generateCreate.js +13 -4
  12. package/src/helpers/generateCreate.ts +7 -3
  13. package/{dist → src}/helpers/generateCreateMany.js +12 -3
  14. package/src/helpers/generateCreateMany.ts +6 -2
  15. package/{dist → src}/helpers/generateDelete.js +13 -3
  16. package/src/helpers/generateDelete.ts +6 -2
  17. package/{dist → src}/helpers/generateDeleteMany.js +13 -3
  18. package/src/helpers/generateDeleteMany.ts +6 -2
  19. package/{dist → src}/helpers/generateFindFirst.js +12 -3
  20. package/src/helpers/generateFindFirst.ts +6 -2
  21. package/{dist → src}/helpers/generateFindMany.js +12 -3
  22. package/src/helpers/generateFindMany.ts +6 -2
  23. package/{dist → src}/helpers/generateFindUnique.js +13 -4
  24. package/src/helpers/generateFindUnique.ts +7 -3
  25. package/{dist → src}/helpers/generateGroupBy.js +13 -3
  26. package/src/helpers/generateGroupBy.ts +6 -2
  27. package/{dist → src}/helpers/generateImportPrismaStatement.js +1 -1
  28. package/src/helpers/generateRouteConfigType.js +32 -0
  29. package/src/helpers/generateRouteConfigType.ts +28 -0
  30. package/src/helpers/generateRouteFile.js +155 -0
  31. package/src/helpers/generateRouteFile.ts +96 -121
  32. package/{dist → src}/helpers/generateUpdate.js +12 -3
  33. package/src/helpers/generateUpdate.ts +6 -2
  34. package/{dist → src}/helpers/generateUpdateMany.js +12 -3
  35. package/src/helpers/generateUpdateMany.ts +6 -2
  36. package/{dist → src}/helpers/generateUpsert.js +13 -3
  37. package/src/helpers/generateUpsert.ts +6 -2
  38. package/{dist → src}/utils/formatFile.js +2 -6
  39. package/{dist → src}/utils/strings.js +0 -1
  40. package/src/utils/writeFileSafely.js +29 -0
  41. package/src/utils/writeFileSafely.ts +4 -3
  42. package/dist/bin.js.map +0 -1
  43. package/dist/constants.js.map +0 -1
  44. package/dist/generator.js +0 -161
  45. package/dist/generator.js.map +0 -1
  46. package/dist/helpers/generateAggregate.js.map +0 -1
  47. package/dist/helpers/generateCount.js.map +0 -1
  48. package/dist/helpers/generateCreate.js.map +0 -1
  49. package/dist/helpers/generateCreateMany.js.map +0 -1
  50. package/dist/helpers/generateDelete.js.map +0 -1
  51. package/dist/helpers/generateDeleteMany.js.map +0 -1
  52. package/dist/helpers/generateFindFirst.js.map +0 -1
  53. package/dist/helpers/generateFindMany.js.map +0 -1
  54. package/dist/helpers/generateFindUnique.js.map +0 -1
  55. package/dist/helpers/generateGroupBy.js.map +0 -1
  56. package/dist/helpers/generateImportPrismaStatement.js.map +0 -1
  57. package/dist/helpers/generateRouteFile.js +0 -181
  58. package/dist/helpers/generateRouteFile.js.map +0 -1
  59. package/dist/helpers/generateUpdate.js.map +0 -1
  60. package/dist/helpers/generateUpdateMany.js.map +0 -1
  61. package/dist/helpers/generateUpsert.js.map +0 -1
  62. package/dist/utils/formatFile.js.map +0 -1
  63. package/dist/utils/strings.js.map +0 -1
  64. package/dist/utils/writeFileSafely.js +0 -21
  65. package/dist/utils/writeFileSafely.js.map +0 -1
@@ -10,171 +10,146 @@ export function generateRouterFunction({
10
10
 
11
11
  return `
12
12
  import express, { RequestHandler } from 'express';
13
- import { ${modelName}FindFirst, type FindFirstMiddleware } from './${modelName}FindFirst';
14
- import { ${modelName}FindMany, type FindManyMiddleware } from './${modelName}FindMany';
15
- import { ${modelName}FindUnique, type FindUniqueMiddleware } from './${modelName}FindUnique';
16
- import { ${modelName}Create, type CreateMiddleware } from './${modelName}Create';
17
- import { ${modelName}CreateMany, type CreateManyMiddleware } from './${modelName}CreateMany';
18
- import { ${modelName}Update, type UpdateMiddleware } from './${modelName}Update';
19
- import { ${modelName}UpdateMany, type UpdateManyMiddleware } from './${modelName}UpdateMany';
20
- import { ${modelName}Upsert, type UpsertMiddleware } from './${modelName}Upsert';
21
- import { ${modelName}Delete, type DeleteMiddleware } from './${modelName}Delete';
22
- import { ${modelName}DeleteMany, type DeleteManyMiddleware } from './${modelName}DeleteMany';
23
- import { ${modelName}Aggregate, type AggregateMiddleware } from './${modelName}Aggregate';
24
- import { ${modelName}Count, type CountMiddleware } from './${modelName}Count';
25
- import { ${modelName}GroupBy, type GroupByMiddleware } from './${modelName}GroupBy';
26
-
27
- interface RouteConfig {
28
- findFirstMiddleware?: FindFirstMiddleware[]
29
- findFirstNextMiddleware?: RequestHandler[]
30
-
31
- findManyMiddleware?: FindManyMiddleware[]
32
- findManyNextMiddleware?: RequestHandler[]
33
-
34
- findUniqueMiddleware?: FindUniqueMiddleware[]
35
- findUniqueNextMiddleware?: RequestHandler[]
36
-
37
- createMiddleware?: CreateMiddleware[]
38
- createNextMiddleware?: RequestHandler[]
39
-
40
- createManyMiddleware?: CreateManyMiddleware[]
41
- createManyNextMiddleware?: RequestHandler[]
42
-
43
- updateMiddleware?: UpdateMiddleware[]
44
- updateNextMiddleware?: RequestHandler[]
45
-
46
- updateManyMiddleware?: UpdateManyMiddleware[]
47
- updateManyNextMiddleware?: RequestHandler[]
48
-
49
- upsertMiddleware?: UpsertMiddleware[]
50
- upsertNextMiddleware?: RequestHandler[]
51
-
52
- deleteMiddleware?: DeleteMiddleware[]
53
- deleteNextMiddleware?: RequestHandler[]
54
-
55
- deleteManyMiddleware?: DeleteManyMiddleware[]
56
- deleteManyNextMiddleware?: RequestHandler[]
57
-
58
- aggregateMiddleware?: AggregateMiddleware[]
59
- aggregateNextMiddleware?: RequestHandler[]
60
-
61
- countMiddleware?: CountMiddleware[]
62
- countNextMiddleware?: RequestHandler[]
63
-
64
- groupByMiddleware?: GroupByMiddleware[]
65
- groupByNextMiddleware?: RequestHandler[]
66
- }
13
+ import { ${modelName}FindFirst } from './${modelName}FindFirst';
14
+ import { ${modelName}FindMany } from './${modelName}FindMany';
15
+ import { ${modelName}FindUnique } from './${modelName}FindUnique';
16
+ import { ${modelName}Create } from './${modelName}Create';
17
+ import { ${modelName}CreateMany } from './${modelName}CreateMany';
18
+ import { ${modelName}Update } from './${modelName}Update';
19
+ import { ${modelName}UpdateMany } from './${modelName}UpdateMany';
20
+ import { ${modelName}Upsert } from './${modelName}Upsert';
21
+ import { ${modelName}Delete } from './${modelName}Delete';
22
+ import { ${modelName}DeleteMany } from './${modelName}DeleteMany';
23
+ import { ${modelName}Aggregate } from './${modelName}Aggregate';
24
+ import { ${modelName}Count } from './${modelName}Count';
25
+ import { ${modelName}GroupBy } from './${modelName}GroupBy';
26
+ import { RouteConfig } from "../RouteConfig";
27
+
28
+ const defaultBeforeAfter = {
29
+ before: [] as RequestHandler[],
30
+ after: [] as RequestHandler[],
31
+ };
67
32
 
68
33
  /**
69
34
  * Generates an Express router for ${modelName} model.
70
35
  * @param config Contains optional middleware to enable routes.
71
36
  * @returns {express.Router}
72
37
  */
73
- export function ${routerFunctionName}(config: RouteConfig) {
38
+ export function ${routerFunctionName}(config: RouteConfig<RequestHandler>) {
74
39
  const router = express.Router();
75
-
76
- if (config?.findFirstMiddleware && config?.findFirstMiddleware.length) {
77
- const middlewares = [...config.findFirstMiddleware, ${modelName}FindFirst]
78
- if (config.findFirstNextMiddleware) {
79
- middlewares.push(...config.findFirstNextMiddleware);
40
+ const basePath = config.addModelPrefix ? '/${modelName.toLowerCase()}' : '';
41
+
42
+ const setupRoute = (
43
+ path: string,
44
+ method: "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head",
45
+ middlewares: RequestHandler[],
46
+ handler: RequestHandler
47
+ ) => {
48
+ router[method](basePath + path, ...middlewares, handler);
49
+ };
50
+
51
+ if (config.enableAll || config?.findFirst) {
52
+ const { before = [], after = [] } = config.findFirst || defaultBeforeAfter;
53
+ setupRoute('/first', 'get', before, ${modelName}FindFirst as RequestHandler);
54
+ if (after.length) {
55
+ router.use(basePath + '/first', ...after);
80
56
  }
81
- router.get('/first', ...middlewares as FindFirstMiddleware[]);
82
57
  }
83
58
 
84
- if (config?.findManyMiddleware && config?.findManyMiddleware.length) {
85
- const middlewares = [...config.findManyMiddleware, ${modelName}FindMany]
86
- if (config.findManyNextMiddleware) {
87
- middlewares.push(...config.findManyNextMiddleware);
59
+ if (config.enableAll || config?.findMany) {
60
+ const { before = [], after = [] } = config.findMany || defaultBeforeAfter;
61
+ setupRoute('/', 'get', before, ${modelName}FindMany as RequestHandler);
62
+ if (after.length) {
63
+ router.use(basePath + '/', ...after);
88
64
  }
89
- router.get('/', ...middlewares as FindManyMiddleware[]);
90
65
  }
91
66
 
92
- if (config?.findUniqueMiddleware && config?.findUniqueMiddleware.length) {
93
- const middlewares = [...config.findUniqueMiddleware, ${modelName}FindUnique]
94
- if (config.findUniqueNextMiddleware) {
95
- middlewares.push(...config.findUniqueNextMiddleware);
67
+ if (config.enableAll || config?.findUnique) {
68
+ const { before = [], after = [] } = config.findUnique || defaultBeforeAfter;
69
+ setupRoute('/:id', 'get', before, ${modelName}FindUnique as any);
70
+ if (after.length) {
71
+ router.use(basePath + '/:id', ...after);
96
72
  }
97
- router.get('/:id', ...middlewares as FindUniqueMiddleware[]);
98
73
  }
99
74
 
100
- if (config?.createMiddleware && config?.createMiddleware.length) {
101
- const middlewares = [...config.createMiddleware, ${modelName}Create]
102
- if (config.createNextMiddleware) {
103
- middlewares.push(...config.createNextMiddleware);
75
+ if (config.enableAll || config?.create) {
76
+ const { before = [], after = [] } = config.create || defaultBeforeAfter;
77
+ setupRoute('/', 'post', before, ${modelName}Create as RequestHandler);
78
+ if (after.length) {
79
+ router.use(basePath + '/', ...after);
104
80
  }
105
- router.post('/', ...middlewares as CreateMiddleware[]);
106
81
  }
107
82
 
108
- if (config?.createManyMiddleware && config?.createManyMiddleware.length) {
109
- const middlewares = [...config.createManyMiddleware, ${modelName}CreateMany]
110
- if (config.createManyNextMiddleware) {
111
- middlewares.push(...config.createManyNextMiddleware);
83
+ if (config.enableAll || config?.createMany) {
84
+ const { before = [], after = [] } = config.createMany || defaultBeforeAfter;
85
+ setupRoute('/many', 'post', before, ${modelName}CreateMany as RequestHandler);
86
+ if (after.length) {
87
+ router.use(basePath + '/many', ...after);
112
88
  }
113
- router.post('/many', ...middlewares as CreateManyMiddleware[]);
114
89
  }
115
90
 
116
- if (config?.updateMiddleware && config?.updateMiddleware.length) {
117
- const middlewares = [...config.updateMiddleware, ${modelName}Update]
118
- if (config.updateNextMiddleware) {
119
- middlewares.push(...config.updateNextMiddleware);
91
+ if (config.enableAll || config?.update) {
92
+ const { before = [], after = [] } = config.update || defaultBeforeAfter;
93
+ setupRoute('/', 'put', before, ${modelName}Update as RequestHandler);
94
+ if (after.length) {
95
+ router.use(basePath + '/', ...after);
120
96
  }
121
- router.put('/', ...middlewares as UpdateMiddleware[]);
122
97
  }
123
98
 
124
- if (config?.updateManyMiddleware && config?.updateManyMiddleware.length) {
125
- const middlewares = [...config.updateManyMiddleware, ${modelName}UpdateMany]
126
- if (config.updateManyNextMiddleware) {
127
- middlewares.push(...config.updateManyNextMiddleware);
99
+ if (config.enableAll || config?.updateMany) {
100
+ const { before = [], after = [] } = config.updateMany || defaultBeforeAfter;
101
+ setupRoute('/many', 'put', before, ${modelName}UpdateMany as RequestHandler);
102
+ if (after.length) {
103
+ router.use(basePath + '/many', ...after);
128
104
  }
129
- router.put('/many', ...middlewares as UpdateManyMiddleware[]);
130
105
  }
131
106
 
132
- if (config?.upsertMiddleware && config?.upsertMiddleware.length) {
133
- const middlewares = [...config.upsertMiddleware, ${modelName}Upsert]
134
- if (config.upsertNextMiddleware) {
135
- middlewares.push(...config.upsertNextMiddleware);
107
+ if (config.enableAll || config?.upsert) {
108
+ const { before = [], after = [] } = config.upsert || defaultBeforeAfter;
109
+ setupRoute('/', 'patch', before, ${modelName}Upsert as RequestHandler);
110
+ if (after.length) {
111
+ router.use(basePath + '/', ...after);
136
112
  }
137
- router.patch('/', ...middlewares as UpsertMiddleware[]);
138
113
  }
139
114
 
140
- if (config?.deleteMiddleware && config?.deleteMiddleware.length) {
141
- const middlewares = [...config.deleteMiddleware, ${modelName}Delete]
142
- if (config.deleteNextMiddleware) {
143
- middlewares.push(...config.deleteNextMiddleware);
115
+ if (config.enableAll || config?.delete) {
116
+ const { before = [], after = [] } = config.delete || defaultBeforeAfter;
117
+ setupRoute('/', 'delete', before, ${modelName}Delete as RequestHandler);
118
+ if (after.length) {
119
+ router.use(basePath + '/', ...after);
144
120
  }
145
- router.delete('/', ...middlewares as DeleteMiddleware[]);
146
121
  }
147
122
 
148
- if (config?.deleteManyMiddleware && config?.deleteManyMiddleware.length) {
149
- const middlewares = [...config.deleteManyMiddleware, ${modelName}DeleteMany]
150
- if (config.deleteManyNextMiddleware) {
151
- middlewares.push(...config.deleteManyNextMiddleware);
123
+ if (config.enableAll || config?.deleteMany) {
124
+ const { before = [], after = [] } = config.deleteMany || defaultBeforeAfter;
125
+ setupRoute('/many', 'delete', before, ${modelName}DeleteMany as RequestHandler);
126
+ if (after.length) {
127
+ router.use(basePath + '/many', ...after);
152
128
  }
153
- router.delete('/many', ...middlewares as DeleteManyMiddleware[]);
154
129
  }
155
130
 
156
- if (config?.aggregateMiddleware && config?.aggregateMiddleware.length) {
157
- const middlewares = [...config.aggregateMiddleware, ${modelName}Aggregate]
158
- if (config.aggregateNextMiddleware) {
159
- middlewares.push(...config.aggregateNextMiddleware);
131
+ if (config.enableAll || config?.aggregate) {
132
+ const { before = [], after = [] } = config.aggregate || defaultBeforeAfter;
133
+ setupRoute('/aggregate', 'get', before, ${modelName}Aggregate as RequestHandler);
134
+ if (after.length) {
135
+ router.use(basePath + '/aggregate', ...after);
160
136
  }
161
- router.get('/aggregate', ...middlewares as AggregateMiddleware[]);
162
137
  }
163
138
 
164
- if (config?.countMiddleware && config?.countMiddleware.length) {
165
- const middlewares = [...config.countMiddleware, ${modelName}Count]
166
- if (config.countNextMiddleware) {
167
- middlewares.push(...config.countNextMiddleware);
139
+ if (config.enableAll || config?.count) {
140
+ const { before = [], after = [] } = config.count || defaultBeforeAfter;
141
+ setupRoute('/count', 'get', before, ${modelName}Count as RequestHandler);
142
+ if (after.length) {
143
+ router.use(basePath + '/count', ...after);
168
144
  }
169
- router.get('/count', ...middlewares as CountMiddleware[]);
170
145
  }
171
146
 
172
- if (config?.groupByMiddleware && config?.groupByMiddleware.length) {
173
- const middlewares = [...config.groupByMiddleware, ${modelName}GroupBy]
174
- if (config.groupByNextMiddleware) {
175
- middlewares.push(...config.groupByNextMiddleware);
147
+ if (config.enableAll || config?.groupBy) {
148
+ const { before = [], after = [] } = config.groupBy || defaultBeforeAfter;
149
+ setupRoute('/groupby', 'get', before, ${modelName}GroupBy as RequestHandler);
150
+ if (after.length) {
151
+ router.use(basePath + '/groupby', ...after);
176
152
  }
177
- router.get('/groupby', ...middlewares as GroupByMiddleware[]);
178
153
  }
179
154
 
180
155
  return router;
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpdateFunction = void 0;
4
4
  const strings_1 = require("../utils/strings");
5
+ /**
6
+ * Generates an Express middleware function that handles updating records and includes conditional output validation with Zod.
7
+ * This version dynamically includes the correct type for the arguments based on the Prisma model.
8
+ * @param options - The options containing the model name and the import statement for Prisma types.
9
+ * @returns {string} - The generated middleware function as a string.
10
+ */
5
11
  const generateUpdateFunction = (options) => {
6
12
  const { model, prismaImportStatement } = options;
7
13
  const modelName = model.name;
@@ -42,12 +48,15 @@ export async function ${functionName}(req: UpdateRequest, res: Response, next: N
42
48
  } else {
43
49
  res.status(200).json(data);
44
50
  }
45
- } catch (error) {
51
+ } catch (error: unknown) {
46
52
  console.error('Error in handling update request:', error);
47
- res.status(500).json({ error: error.message });
53
+ if (error instanceof Error) {
54
+ res.status(500).json({ error: error.message });
55
+ } else {
56
+ res.status(500).json({ error: "Unknown error occurred" });
57
+ }
48
58
  next(error);
49
59
  }
50
60
  }`;
51
61
  };
52
62
  exports.generateUpdateFunction = generateUpdateFunction;
53
- //# sourceMappingURL=generateUpdate.js.map
@@ -50,9 +50,13 @@ export async function ${functionName}(req: UpdateRequest, res: Response, next: N
50
50
  } else {
51
51
  res.status(200).json(data);
52
52
  }
53
- } catch (error) {
53
+ } catch (error: unknown) {
54
54
  console.error('Error in handling update request:', error);
55
- res.status(500).json({ error: error.message });
55
+ if (error instanceof Error) {
56
+ res.status(500).json({ error: error.message });
57
+ } else {
58
+ res.status(500).json({ error: "Unknown error occurred" });
59
+ }
56
60
  next(error);
57
61
  }
58
62
  }`
@@ -2,6 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpdateManyFunction = void 0;
4
4
  const strings_1 = require("../utils/strings");
5
+ /**
6
+ * Generates an Express middleware function that handles updating multiple records and includes conditional output validation with Zod.
7
+ * This version dynamically includes the correct type for the arguments based on the Prisma model.
8
+ * @param options - The options containing the model name and the import statement for Prisma types.
9
+ * @returns {string} - The generated middleware function as a string.
10
+ */
5
11
  const generateUpdateManyFunction = (options) => {
6
12
  const { model, prismaImportStatement } = options;
7
13
  const modelName = model.name;
@@ -42,12 +48,15 @@ export async function ${functionName}(req: UpdateManyRequest, res: Response, nex
42
48
  } else {
43
49
  res.status(200).json({ count: data.count });
44
50
  }
45
- } catch (error) {
51
+ } catch (error: unknown) {
46
52
  console.error('Error in handling updateMany request:', error);
47
- res.status(500).json({ error: error.message });
53
+ if (error instanceof Error) {
54
+ res.status(500).json({ error: error.message });
55
+ } else {
56
+ res.status(500).json({ error: "Unknown error occurred" });
57
+ }
48
58
  next(error);
49
59
  }
50
60
  }`;
51
61
  };
52
62
  exports.generateUpdateManyFunction = generateUpdateManyFunction;
53
- //# sourceMappingURL=generateUpdateMany.js.map
@@ -50,9 +50,13 @@ export async function ${functionName}(req: UpdateManyRequest, res: Response, nex
50
50
  } else {
51
51
  res.status(200).json({ count: data.count });
52
52
  }
53
- } catch (error) {
53
+ } catch (error: unknown) {
54
54
  console.error('Error in handling updateMany request:', error);
55
- res.status(500).json({ error: error.message });
55
+ if (error instanceof Error) {
56
+ res.status(500).json({ error: error.message });
57
+ } else {
58
+ res.status(500).json({ error: "Unknown error occurred" });
59
+ }
56
60
  next(error);
57
61
  }
58
62
  }`
@@ -2,6 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generateUpsertFunction = void 0;
4
4
  const strings_1 = require("../utils/strings");
5
+ /**
6
+ * Generates an Express middleware function that handles the upsert operation (create or update)
7
+ * and includes conditional output validation with Zod.
8
+ * This version dynamically includes the correct type for the arguments based on the Prisma model.
9
+ * @param options - The options containing the model name and the import statement for Prisma types.
10
+ * @returns {string} - The generated middleware function as a string.
11
+ */
5
12
  const generateUpsertFunction = (options) => {
6
13
  const { model, prismaImportStatement } = options;
7
14
  const modelName = model.name;
@@ -42,12 +49,15 @@ export async function ${functionName}(req: UpsertRequest, res: Response, next: N
42
49
  } else {
43
50
  res.status(200).json(data);
44
51
  }
45
- } catch (error) {
52
+ } catch (error: unknown) {
46
53
  console.error('Error in handling upsert request:', error);
47
- res.status(500).json({ error: error.message });
54
+ if (error instanceof Error) {
55
+ res.status(500).json({ error: error.message });
56
+ } else {
57
+ res.status(500).json({ error: "Unknown error occurred" });
58
+ }
48
59
  next(error);
49
60
  }
50
61
  }`;
51
62
  };
52
63
  exports.generateUpsertFunction = generateUpsertFunction;
53
- //# sourceMappingURL=generateUpsert.js.map
@@ -51,9 +51,13 @@ export async function ${functionName}(req: UpsertRequest, res: Response, next: N
51
51
  } else {
52
52
  res.status(200).json(data);
53
53
  }
54
- } catch (error) {
54
+ } catch (error: unknown) {
55
55
  console.error('Error in handling upsert request:', error);
56
- res.status(500).json({ error: error.message });
56
+ if (error instanceof Error) {
57
+ res.status(500).json({ error: error.message });
58
+ } else {
59
+ res.status(500).json({ error: "Unknown error occurred" });
60
+ }
57
61
  next(error);
58
62
  }
59
63
  }`
@@ -8,13 +8,10 @@ const prettier_1 = __importDefault(require("prettier"));
8
8
  const formatFile = (content) => {
9
9
  return new Promise((res, rej) => prettier_1.default.resolveConfig(process.cwd()).then((options) => {
10
10
  if (!options) {
11
- res(content);
11
+ res(content); // no prettier config was found, no need to format
12
12
  }
13
13
  try {
14
- const formatted = prettier_1.default.format(content, {
15
- ...options,
16
- parser: 'typescript',
17
- });
14
+ const formatted = prettier_1.default.format(content, Object.assign(Object.assign({}, options), { parser: 'typescript' }));
18
15
  res(formatted);
19
16
  }
20
17
  catch (error) {
@@ -23,4 +20,3 @@ const formatFile = (content) => {
23
20
  }));
24
21
  };
25
22
  exports.formatFile = formatFile;
26
- //# sourceMappingURL=formatFile.js.map
@@ -9,4 +9,3 @@ function lowercaseFirstLetter(str) {
9
9
  return str.charAt(0).toLowerCase() + str.slice(1);
10
10
  }
11
11
  exports.lowercaseFirstLetter = lowercaseFirstLetter;
12
- //# sourceMappingURL=strings.js.map
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.writeFileSafely = void 0;
16
+ const promises_1 = __importDefault(require("fs/promises"));
17
+ const path_1 = __importDefault(require("path"));
18
+ const formatFile_1 = require("./formatFile");
19
+ const writeFileSafely = (_a) => __awaiter(void 0, [_a], void 0, function* ({ model, operation, options, content, }) {
20
+ var _b;
21
+ const fileName = operation === 'index' ? 'index' : `${(model === null || model === void 0 ? void 0 : model.name) || ''}${operation}`;
22
+ const filePath = path_1.default.join((_b = options.generator.output) === null || _b === void 0 ? void 0 : _b.value, model ? `${model === null || model === void 0 ? void 0 : model.name}/${fileName}.ts` : `/${fileName}.ts`);
23
+ console.log('filePath :>> ', filePath);
24
+ yield promises_1.default.mkdir(path_1.default.dirname(filePath), {
25
+ recursive: true,
26
+ });
27
+ yield promises_1.default.writeFile(filePath, yield (0, formatFile_1.formatFile)(content));
28
+ });
29
+ exports.writeFileSafely = writeFileSafely;
@@ -9,15 +9,16 @@ export const writeFileSafely = async ({
9
9
  options,
10
10
  content,
11
11
  }: {
12
- model: DMMF.Model
12
+ model?: DMMF.Model
13
13
  operation: string
14
14
  options: GeneratorOptions
15
15
  content: string
16
16
  }) => {
17
- const fileName = operation === 'index' ? 'index' : `${model.name}${operation}`
17
+ const fileName =
18
+ operation === 'index' ? 'index' : `${model?.name || ''}${operation}`
18
19
  const filePath = path.join(
19
20
  options.generator.output?.value!,
20
- `${model.name}/${fileName}.ts`,
21
+ model ? `${model?.name}/${fileName}.ts` : `/${fileName}.ts`,
21
22
  )
22
23
  console.log('filePath :>> ', filePath)
23
24
  await fs.mkdir(path.dirname(filePath), {
package/dist/bin.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";;;AACA,uBAAoB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,0BAA0B,CAAA"}