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.
- 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 +14 -4
- package/src/helpers/generateAggregate.ts +7 -3
- package/{dist → src}/helpers/generateCount.js +14 -4
- package/src/helpers/generateCount.ts +7 -3
- package/{dist → src}/helpers/generateCreate.js +13 -4
- package/src/helpers/generateCreate.ts +7 -3
- package/{dist → src}/helpers/generateCreateMany.js +12 -3
- package/src/helpers/generateCreateMany.ts +6 -2
- package/{dist → src}/helpers/generateDelete.js +13 -3
- package/src/helpers/generateDelete.ts +6 -2
- package/{dist → src}/helpers/generateDeleteMany.js +13 -3
- package/src/helpers/generateDeleteMany.ts +6 -2
- package/{dist → src}/helpers/generateFindFirst.js +12 -3
- package/src/helpers/generateFindFirst.ts +6 -2
- package/{dist → src}/helpers/generateFindMany.js +12 -3
- package/src/helpers/generateFindMany.ts +6 -2
- package/{dist → src}/helpers/generateFindUnique.js +13 -4
- package/src/helpers/generateFindUnique.ts +7 -3
- package/{dist → src}/helpers/generateGroupBy.js +13 -3
- package/src/helpers/generateGroupBy.ts +6 -2
- 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 +12 -3
- package/src/helpers/generateUpdate.ts +6 -2
- package/{dist → src}/helpers/generateUpdateMany.js +12 -3
- package/src/helpers/generateUpdateMany.ts +6 -2
- package/{dist → src}/helpers/generateUpsert.js +13 -3
- package/src/helpers/generateUpsert.ts +6 -2
- 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
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateFindFirstFunction = void 0;
|
|
4
4
|
const strings_1 = require("../utils/strings");
|
|
5
|
+
/**
|
|
6
|
+
* Generates an Express middleware function that includes conditional output validation with Zod.
|
|
7
|
+
* This version dynamically includes the correct type for the query parameter 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 generateFindFirstFunction = (options) => {
|
|
6
12
|
const { model, prismaImportStatement } = options;
|
|
7
13
|
const modelName = model.name;
|
|
@@ -51,12 +57,15 @@ export async function ${functionName}(req: FindFirstRequest, res: Response, next
|
|
|
51
57
|
} else {
|
|
52
58
|
res.status(200).json(data);
|
|
53
59
|
}
|
|
54
|
-
} catch (error) {
|
|
60
|
+
} catch (error: unknown) {
|
|
55
61
|
console.error('Error in handling request:', error);
|
|
56
|
-
|
|
62
|
+
if (error instanceof Error) {
|
|
63
|
+
res.status(500).json({ error: error.message });
|
|
64
|
+
} else {
|
|
65
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
66
|
+
}
|
|
57
67
|
next(error);
|
|
58
68
|
}
|
|
59
69
|
}`;
|
|
60
70
|
};
|
|
61
71
|
exports.generateFindFirstFunction = generateFindFirstFunction;
|
|
62
|
-
//# sourceMappingURL=generateFindFirst.js.map
|
|
@@ -59,9 +59,13 @@ export async function ${functionName}(req: FindFirstRequest, res: Response, next
|
|
|
59
59
|
} else {
|
|
60
60
|
res.status(200).json(data);
|
|
61
61
|
}
|
|
62
|
-
} catch (error) {
|
|
62
|
+
} catch (error: unknown) {
|
|
63
63
|
console.error('Error in handling request:', error);
|
|
64
|
-
|
|
64
|
+
if (error instanceof Error) {
|
|
65
|
+
res.status(500).json({ error: error.message });
|
|
66
|
+
} else {
|
|
67
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
68
|
+
}
|
|
65
69
|
next(error);
|
|
66
70
|
}
|
|
67
71
|
}`
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateFindManyFunction = void 0;
|
|
4
4
|
const strings_1 = require("../utils/strings");
|
|
5
|
+
/**
|
|
6
|
+
* Generates an Express middleware function that handles multiple record retrieval with optional output validation using Zod.
|
|
7
|
+
* This version dynamically includes the correct type for the query parameter 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 generateFindManyFunction = (options) => {
|
|
6
12
|
const { model, prismaImportStatement } = options;
|
|
7
13
|
const modelName = model.name;
|
|
@@ -51,12 +57,15 @@ export async function ${functionName}(req: FindManyRequest, res: Response, next:
|
|
|
51
57
|
} else {
|
|
52
58
|
res.status(200).json(data);
|
|
53
59
|
}
|
|
54
|
-
} catch (error) {
|
|
60
|
+
} catch (error: unknown) {
|
|
55
61
|
console.error('Error in handling request:', error);
|
|
56
|
-
|
|
62
|
+
if (error instanceof Error) {
|
|
63
|
+
res.status(500).json({ error: error.message });
|
|
64
|
+
} else {
|
|
65
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
66
|
+
}
|
|
57
67
|
next(error);
|
|
58
68
|
}
|
|
59
69
|
}`;
|
|
60
70
|
};
|
|
61
71
|
exports.generateFindManyFunction = generateFindManyFunction;
|
|
62
|
-
//# sourceMappingURL=generateFindMany.js.map
|
|
@@ -59,9 +59,13 @@ export async function ${functionName}(req: FindManyRequest, res: Response, next:
|
|
|
59
59
|
} else {
|
|
60
60
|
res.status(200).json(data);
|
|
61
61
|
}
|
|
62
|
-
} catch (error) {
|
|
62
|
+
} catch (error: unknown) {
|
|
63
63
|
console.error('Error in handling request:', error);
|
|
64
|
-
|
|
64
|
+
if (error instanceof Error) {
|
|
65
|
+
res.status(500).json({ error: error.message });
|
|
66
|
+
} else {
|
|
67
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
68
|
+
}
|
|
65
69
|
next(error);
|
|
66
70
|
}
|
|
67
71
|
}`
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateFindUniqueFunction = void 0;
|
|
4
4
|
const strings_1 = require("../utils/strings");
|
|
5
|
+
/**
|
|
6
|
+
* Generates an Express middleware function that includes conditional output validation with Zod.
|
|
7
|
+
* This version dynamically includes the correct type for the query parameter 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 generateFindUniqueFunction = (options) => {
|
|
6
12
|
const { model, prismaImportStatement } = options;
|
|
7
13
|
const modelName = model.name;
|
|
@@ -51,12 +57,15 @@ export async function ${functionName}(req: FindUniqueRequest, res: Response, nex
|
|
|
51
57
|
} else {
|
|
52
58
|
res.status(200).json(data);
|
|
53
59
|
}
|
|
54
|
-
} catch (error) {
|
|
55
|
-
console.error(
|
|
56
|
-
|
|
60
|
+
} catch (error: unknown) {
|
|
61
|
+
console.error("Error in handling findUnique request:", error);
|
|
62
|
+
if (error instanceof Error) {
|
|
63
|
+
res.status(500).json({ error: error.message });
|
|
64
|
+
} else {
|
|
65
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
66
|
+
}
|
|
57
67
|
next(error);
|
|
58
68
|
}
|
|
59
69
|
}`;
|
|
60
70
|
};
|
|
61
71
|
exports.generateFindUniqueFunction = generateFindUniqueFunction;
|
|
62
|
-
//# sourceMappingURL=generateFindUnique.js.map
|
|
@@ -59,9 +59,13 @@ export async function ${functionName}(req: FindUniqueRequest, res: Response, nex
|
|
|
59
59
|
} else {
|
|
60
60
|
res.status(200).json(data);
|
|
61
61
|
}
|
|
62
|
-
} catch (error) {
|
|
63
|
-
console.error(
|
|
64
|
-
|
|
62
|
+
} catch (error: unknown) {
|
|
63
|
+
console.error("Error in handling findUnique request:", error);
|
|
64
|
+
if (error instanceof Error) {
|
|
65
|
+
res.status(500).json({ error: error.message });
|
|
66
|
+
} else {
|
|
67
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
68
|
+
}
|
|
65
69
|
next(error);
|
|
66
70
|
}
|
|
67
71
|
}`
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateGroupByFunction = void 0;
|
|
4
4
|
const strings_1 = require("../utils/strings");
|
|
5
|
+
/**
|
|
6
|
+
* Generates an Express middleware function that handles groupBy queries
|
|
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 generateGroupByFunction = (options) => {
|
|
6
13
|
const { model, prismaImportStatement } = options;
|
|
7
14
|
const modelName = model.name;
|
|
@@ -42,12 +49,15 @@ export async function ${functionName}(req: GroupByRequest, res: Response, next:
|
|
|
42
49
|
} else {
|
|
43
50
|
res.status(200).json(result);
|
|
44
51
|
}
|
|
45
|
-
} catch (error) {
|
|
52
|
+
} catch (error: unknown) {
|
|
46
53
|
console.error('Error in handling groupBy request:', error);
|
|
47
|
-
|
|
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.generateGroupByFunction = generateGroupByFunction;
|
|
53
|
-
//# sourceMappingURL=generateGroupBy.js.map
|
|
@@ -53,9 +53,13 @@ export async function ${functionName}(req: GroupByRequest, res: Response, next:
|
|
|
53
53
|
} else {
|
|
54
54
|
res.status(200).json(result);
|
|
55
55
|
}
|
|
56
|
-
} catch (error) {
|
|
56
|
+
} catch (error: unknown) {
|
|
57
57
|
console.error('Error in handling groupBy request:', error);
|
|
58
|
-
|
|
58
|
+
if (error instanceof Error) {
|
|
59
|
+
res.status(500).json({ error: error.message });
|
|
60
|
+
} else {
|
|
61
|
+
res.status(500).json({ error: "Unknown error occurred" });
|
|
62
|
+
}
|
|
59
63
|
next(error);
|
|
60
64
|
}
|
|
61
65
|
}`
|
|
@@ -20,7 +20,7 @@ function getImportGeneratorOptions(options) {
|
|
|
20
20
|
}
|
|
21
21
|
function generateImportPrismaStatement(generatorOptions) {
|
|
22
22
|
const options = getImportGeneratorOptions(generatorOptions);
|
|
23
|
+
// console.log('options.outputPath :>> ', options.outputPath)
|
|
23
24
|
return `import type { Prisma } from '${options.outputPath}';\nimport type { PrismaClient } from '${options.outputPath}';\n`;
|
|
24
25
|
}
|
|
25
26
|
exports.generateImportPrismaStatement = generateImportPrismaStatement;
|
|
26
|
-
//# sourceMappingURL=generateImportPrismaStatement.js.map
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateRouteConfigType = void 0;
|
|
4
|
+
function generateRouteConfigType() {
|
|
5
|
+
return `import { RequestHandler } from 'express';
|
|
6
|
+
|
|
7
|
+
interface MiddlewareConfig<M> {
|
|
8
|
+
before?: M[];
|
|
9
|
+
after?: RequestHandler[];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface RouteConfig<M> {
|
|
13
|
+
findFirst?: MiddlewareConfig<M>;
|
|
14
|
+
findMany?: MiddlewareConfig<M>;
|
|
15
|
+
findUnique?: MiddlewareConfig<M>;
|
|
16
|
+
create?: MiddlewareConfig<M>;
|
|
17
|
+
createMany?: MiddlewareConfig<M>;
|
|
18
|
+
update?: MiddlewareConfig<M>;
|
|
19
|
+
updateMany?: MiddlewareConfig<M>;
|
|
20
|
+
upsert?: MiddlewareConfig<M>;
|
|
21
|
+
delete?: MiddlewareConfig<M>;
|
|
22
|
+
deleteMany?: MiddlewareConfig<M>;
|
|
23
|
+
aggregate?: MiddlewareConfig<M>;
|
|
24
|
+
count?: MiddlewareConfig<M>;
|
|
25
|
+
groupBy?: MiddlewareConfig<M>;
|
|
26
|
+
addModelPrefix?: boolean;
|
|
27
|
+
enableAll?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default RouteConfig;`;
|
|
31
|
+
}
|
|
32
|
+
exports.generateRouteConfigType = generateRouteConfigType;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function generateRouteConfigType() {
|
|
2
|
+
return `import { RequestHandler } from 'express';
|
|
3
|
+
|
|
4
|
+
interface MiddlewareConfig<M> {
|
|
5
|
+
before?: M[];
|
|
6
|
+
after?: RequestHandler[];
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface RouteConfig<M> {
|
|
10
|
+
findFirst?: MiddlewareConfig<M>;
|
|
11
|
+
findMany?: MiddlewareConfig<M>;
|
|
12
|
+
findUnique?: MiddlewareConfig<M>;
|
|
13
|
+
create?: MiddlewareConfig<M>;
|
|
14
|
+
createMany?: MiddlewareConfig<M>;
|
|
15
|
+
update?: MiddlewareConfig<M>;
|
|
16
|
+
updateMany?: MiddlewareConfig<M>;
|
|
17
|
+
upsert?: MiddlewareConfig<M>;
|
|
18
|
+
delete?: MiddlewareConfig<M>;
|
|
19
|
+
deleteMany?: MiddlewareConfig<M>;
|
|
20
|
+
aggregate?: MiddlewareConfig<M>;
|
|
21
|
+
count?: MiddlewareConfig<M>;
|
|
22
|
+
groupBy?: MiddlewareConfig<M>;
|
|
23
|
+
addModelPrefix?: boolean;
|
|
24
|
+
enableAll?: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export default RouteConfig;`
|
|
28
|
+
}
|
|
@@ -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;
|