prisma-generator-express 1.7.2 → 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.
- package/README.md +50 -21
- package/package.json +2 -2
- package/{dist → src}/bin.js +0 -1
- package/{dist → src}/constants.js +0 -1
- package/src/generator.js +195 -0
- package/src/generator.ts +7 -0
- package/{dist → src}/helpers/generateAggregate.js +7 -1
- package/{dist → src}/helpers/generateCount.js +7 -1
- package/{dist → src}/helpers/generateCreate.js +6 -1
- package/{dist → src}/helpers/generateCreateMany.js +6 -1
- package/{dist → src}/helpers/generateDelete.js +7 -1
- package/{dist → src}/helpers/generateDeleteMany.js +7 -1
- package/{dist → src}/helpers/generateFindFirst.js +6 -1
- package/{dist → src}/helpers/generateFindMany.js +6 -1
- package/{dist → src}/helpers/generateFindUnique.js +6 -1
- package/{dist → src}/helpers/generateGroupBy.js +7 -1
- package/{dist → src}/helpers/generateImportPrismaStatement.js +1 -1
- package/src/helpers/generateRouteConfigType.js +32 -0
- package/src/helpers/generateRouteConfigType.ts +28 -0
- package/src/helpers/generateRouteFile.js +155 -0
- package/src/helpers/generateRouteFile.ts +96 -121
- package/{dist → src}/helpers/generateUpdate.js +6 -1
- package/{dist → src}/helpers/generateUpdateMany.js +6 -1
- package/{dist → src}/helpers/generateUpsert.js +7 -1
- package/{dist → src}/utils/formatFile.js +2 -6
- package/{dist → src}/utils/strings.js +0 -1
- package/src/utils/writeFileSafely.js +29 -0
- package/src/utils/writeFileSafely.ts +4 -3
- package/dist/bin.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/generator.js +0 -161
- package/dist/generator.js.map +0 -1
- package/dist/helpers/generateAggregate.js.map +0 -1
- package/dist/helpers/generateCount.js.map +0 -1
- package/dist/helpers/generateCreate.js.map +0 -1
- package/dist/helpers/generateCreateMany.js.map +0 -1
- package/dist/helpers/generateDelete.js.map +0 -1
- package/dist/helpers/generateDeleteMany.js.map +0 -1
- package/dist/helpers/generateFindFirst.js.map +0 -1
- package/dist/helpers/generateFindMany.js.map +0 -1
- package/dist/helpers/generateFindUnique.js.map +0 -1
- package/dist/helpers/generateGroupBy.js.map +0 -1
- package/dist/helpers/generateImportPrismaStatement.js.map +0 -1
- package/dist/helpers/generateRouteFile.js +0 -181
- package/dist/helpers/generateRouteFile.js.map +0 -1
- package/dist/helpers/generateUpdate.js.map +0 -1
- package/dist/helpers/generateUpdateMany.js.map +0 -1
- package/dist/helpers/generateUpsert.js.map +0 -1
- package/dist/utils/formatFile.js.map +0 -1
- package/dist/utils/strings.js.map +0 -1
- package/dist/utils/writeFileSafely.js +0 -21
- package/dist/utils/writeFileSafely.js.map +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
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 } from './${modelName}FindFirst';
|
|
10
|
+
import { ${modelName}FindMany } from './${modelName}FindMany';
|
|
11
|
+
import { ${modelName}FindUnique } from './${modelName}FindUnique';
|
|
12
|
+
import { ${modelName}Create } from './${modelName}Create';
|
|
13
|
+
import { ${modelName}CreateMany } from './${modelName}CreateMany';
|
|
14
|
+
import { ${modelName}Update } from './${modelName}Update';
|
|
15
|
+
import { ${modelName}UpdateMany } from './${modelName}UpdateMany';
|
|
16
|
+
import { ${modelName}Upsert } from './${modelName}Upsert';
|
|
17
|
+
import { ${modelName}Delete } from './${modelName}Delete';
|
|
18
|
+
import { ${modelName}DeleteMany } from './${modelName}DeleteMany';
|
|
19
|
+
import { ${modelName}Aggregate } from './${modelName}Aggregate';
|
|
20
|
+
import { ${modelName}Count } from './${modelName}Count';
|
|
21
|
+
import { ${modelName}GroupBy } from './${modelName}GroupBy';
|
|
22
|
+
import { RouteConfig } from "../RouteConfig";
|
|
23
|
+
|
|
24
|
+
const defaultBeforeAfter = {
|
|
25
|
+
before: [] as RequestHandler[],
|
|
26
|
+
after: [] as RequestHandler[],
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Generates an Express router for ${modelName} model.
|
|
31
|
+
* @param config Contains optional middleware to enable routes.
|
|
32
|
+
* @returns {express.Router}
|
|
33
|
+
*/
|
|
34
|
+
export function ${routerFunctionName}(config: RouteConfig<RequestHandler>) {
|
|
35
|
+
const router = express.Router();
|
|
36
|
+
const basePath = config.addModelPrefix ? '/${modelName.toLowerCase()}' : '';
|
|
37
|
+
|
|
38
|
+
const setupRoute = (
|
|
39
|
+
path: string,
|
|
40
|
+
method: "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head",
|
|
41
|
+
middlewares: RequestHandler[],
|
|
42
|
+
handler: RequestHandler
|
|
43
|
+
) => {
|
|
44
|
+
router[method](basePath + path, ...middlewares, handler);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
if (config.enableAll || config?.findFirst) {
|
|
48
|
+
const { before = [], after = [] } = config.findFirst || defaultBeforeAfter;
|
|
49
|
+
setupRoute('/first', 'get', before, ${modelName}FindFirst as RequestHandler);
|
|
50
|
+
if (after.length) {
|
|
51
|
+
router.use(basePath + '/first', ...after);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (config.enableAll || config?.findMany) {
|
|
56
|
+
const { before = [], after = [] } = config.findMany || defaultBeforeAfter;
|
|
57
|
+
setupRoute('/', 'get', before, ${modelName}FindMany as RequestHandler);
|
|
58
|
+
if (after.length) {
|
|
59
|
+
router.use(basePath + '/', ...after);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (config.enableAll || config?.findUnique) {
|
|
64
|
+
const { before = [], after = [] } = config.findUnique || defaultBeforeAfter;
|
|
65
|
+
setupRoute('/:id', 'get', before, ${modelName}FindUnique as any);
|
|
66
|
+
if (after.length) {
|
|
67
|
+
router.use(basePath + '/:id', ...after);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (config.enableAll || config?.create) {
|
|
72
|
+
const { before = [], after = [] } = config.create || defaultBeforeAfter;
|
|
73
|
+
setupRoute('/', 'post', before, ${modelName}Create as RequestHandler);
|
|
74
|
+
if (after.length) {
|
|
75
|
+
router.use(basePath + '/', ...after);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (config.enableAll || config?.createMany) {
|
|
80
|
+
const { before = [], after = [] } = config.createMany || defaultBeforeAfter;
|
|
81
|
+
setupRoute('/many', 'post', before, ${modelName}CreateMany as RequestHandler);
|
|
82
|
+
if (after.length) {
|
|
83
|
+
router.use(basePath + '/many', ...after);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (config.enableAll || config?.update) {
|
|
88
|
+
const { before = [], after = [] } = config.update || defaultBeforeAfter;
|
|
89
|
+
setupRoute('/', 'put', before, ${modelName}Update as RequestHandler);
|
|
90
|
+
if (after.length) {
|
|
91
|
+
router.use(basePath + '/', ...after);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (config.enableAll || config?.updateMany) {
|
|
96
|
+
const { before = [], after = [] } = config.updateMany || defaultBeforeAfter;
|
|
97
|
+
setupRoute('/many', 'put', before, ${modelName}UpdateMany as RequestHandler);
|
|
98
|
+
if (after.length) {
|
|
99
|
+
router.use(basePath + '/many', ...after);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if (config.enableAll || config?.upsert) {
|
|
104
|
+
const { before = [], after = [] } = config.upsert || defaultBeforeAfter;
|
|
105
|
+
setupRoute('/', 'patch', before, ${modelName}Upsert as RequestHandler);
|
|
106
|
+
if (after.length) {
|
|
107
|
+
router.use(basePath + '/', ...after);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (config.enableAll || config?.delete) {
|
|
112
|
+
const { before = [], after = [] } = config.delete || defaultBeforeAfter;
|
|
113
|
+
setupRoute('/', 'delete', before, ${modelName}Delete as RequestHandler);
|
|
114
|
+
if (after.length) {
|
|
115
|
+
router.use(basePath + '/', ...after);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
if (config.enableAll || config?.deleteMany) {
|
|
120
|
+
const { before = [], after = [] } = config.deleteMany || defaultBeforeAfter;
|
|
121
|
+
setupRoute('/many', 'delete', before, ${modelName}DeleteMany as RequestHandler);
|
|
122
|
+
if (after.length) {
|
|
123
|
+
router.use(basePath + '/many', ...after);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (config.enableAll || config?.aggregate) {
|
|
128
|
+
const { before = [], after = [] } = config.aggregate || defaultBeforeAfter;
|
|
129
|
+
setupRoute('/aggregate', 'get', before, ${modelName}Aggregate as RequestHandler);
|
|
130
|
+
if (after.length) {
|
|
131
|
+
router.use(basePath + '/aggregate', ...after);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (config.enableAll || config?.count) {
|
|
136
|
+
const { before = [], after = [] } = config.count || defaultBeforeAfter;
|
|
137
|
+
setupRoute('/count', 'get', before, ${modelName}Count as RequestHandler);
|
|
138
|
+
if (after.length) {
|
|
139
|
+
router.use(basePath + '/count', ...after);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (config.enableAll || config?.groupBy) {
|
|
144
|
+
const { before = [], after = [] } = config.groupBy || defaultBeforeAfter;
|
|
145
|
+
setupRoute('/groupby', 'get', before, ${modelName}GroupBy as RequestHandler);
|
|
146
|
+
if (after.length) {
|
|
147
|
+
router.use(basePath + '/groupby', ...after);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return router;
|
|
152
|
+
}
|
|
153
|
+
`;
|
|
154
|
+
}
|
|
155
|
+
exports.generateRouterFunction = generateRouterFunction;
|
|
@@ -10,171 +10,146 @@ export function generateRouterFunction({
|
|
|
10
10
|
|
|
11
11
|
return `
|
|
12
12
|
import express, { RequestHandler } from 'express';
|
|
13
|
-
import { ${modelName}FindFirst
|
|
14
|
-
import { ${modelName}FindMany
|
|
15
|
-
import { ${modelName}FindUnique
|
|
16
|
-
import { ${modelName}Create
|
|
17
|
-
import { ${modelName}CreateMany
|
|
18
|
-
import { ${modelName}Update
|
|
19
|
-
import { ${modelName}UpdateMany
|
|
20
|
-
import { ${modelName}Upsert
|
|
21
|
-
import { ${modelName}Delete
|
|
22
|
-
import { ${modelName}DeleteMany
|
|
23
|
-
import { ${modelName}Aggregate
|
|
24
|
-
import { ${modelName}Count
|
|
25
|
-
import { ${modelName}GroupBy
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
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
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
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
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
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
|
|
133
|
-
const
|
|
134
|
-
|
|
135
|
-
|
|
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
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
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
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
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
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
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
|
|
165
|
-
const
|
|
166
|
-
|
|
167
|
-
|
|
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
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
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;
|
|
@@ -54,4 +60,3 @@ export async function ${functionName}(req: UpdateRequest, res: Response, next: N
|
|
|
54
60
|
}`;
|
|
55
61
|
};
|
|
56
62
|
exports.generateUpdateFunction = generateUpdateFunction;
|
|
57
|
-
//# sourceMappingURL=generateUpdate.js.map
|
|
@@ -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;
|
|
@@ -54,4 +60,3 @@ export async function ${functionName}(req: UpdateManyRequest, res: Response, nex
|
|
|
54
60
|
}`;
|
|
55
61
|
};
|
|
56
62
|
exports.generateUpdateManyFunction = generateUpdateManyFunction;
|
|
57
|
-
//# sourceMappingURL=generateUpdateMany.js.map
|
|
@@ -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;
|
|
@@ -54,4 +61,3 @@ export async function ${functionName}(req: UpsertRequest, res: Response, next: N
|
|
|
54
61
|
}`;
|
|
55
62
|
};
|
|
56
63
|
exports.generateUpsertFunction = generateUpsertFunction;
|
|
57
|
-
//# sourceMappingURL=generateUpsert.js.map
|
|
@@ -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
|
|
@@ -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
|
|
12
|
+
model?: DMMF.Model
|
|
13
13
|
operation: string
|
|
14
14
|
options: GeneratorOptions
|
|
15
15
|
content: string
|
|
16
16
|
}) => {
|
|
17
|
-
const fileName =
|
|
17
|
+
const fileName =
|
|
18
|
+
operation === 'index' ? 'index' : `${model?.name || ''}${operation}`
|
|
18
19
|
const filePath = path.join(
|
|
19
20
|
options.generator.output?.value!,
|
|
20
|
-
`${model
|
|
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"}
|
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,0BAA0B,CAAA"}
|