Skip to content

Commit 56e8055

Browse files
committed
✨ feat: update version to 0.5.0 and enhance ResultDataVo type safety
1 parent 0327f0a commit 56e8055

File tree

3 files changed

+28
-29
lines changed

3 files changed

+28
-29
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@gylove1994/npg",
3-
"version": "0.4.6",
3+
"version": "0.5.0",
44
"description": "A command-line tool for generating NestJS code form schema.prisma file.",
55
"main": "dist/index.js",
66
"scripts": {

src/generateResultDataVo.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import { ApiProperty } from "@nestjs/swagger";
55
import { type Type, applyDecorators } from "@nestjs/common";
66
import { ApiOkResponse, getSchemaPath } from "@nestjs/swagger";
77
8-
export class ResultDataVo {
9-
constructor(resultData: { code?: number; message?: string; data?: any }) {
8+
export class ResultDataVo<T = any> {
9+
constructor(resultData: { code?: number; message?: string; data?: T }) {
1010
const { code = 200, message, data } = resultData;
1111
this.code = code;
1212
this.message = message ?? "ok";
@@ -25,26 +25,26 @@ export class ResultDataVo {
2525
type: "string",
2626
default: "ok",
2727
})
28-
message?: string;
28+
message: string;
2929
30-
data?: any;
30+
data: T;
3131
32-
static ok(resultData: {
32+
static ok<T = any>(resultData: {
3333
code?: number;
3434
message?: string;
35-
data?: any;
36-
}): ResultDataVo {
35+
data?: T;
36+
}): ResultDataVo<T> {
3737
const { code = 200, message = "ok", data } = resultData;
38-
return new ResultDataVo({ code, message, data });
38+
return new ResultDataVo<T>({ code, message, data });
3939
}
4040
41-
static fail(resultData: {
41+
static fail<T = any>(resultData: {
4242
code?: number;
4343
message?: string;
44-
data?: any;
45-
}): ResultDataVo {
46-
const { code = 200, message = "fail", data } = resultData;
47-
return new ResultDataVo({ code, message, data });
44+
data?: T;
45+
}): ResultDataVo<T> {
46+
const { code = 500, message = "fail", data } = resultData;
47+
return new ResultDataVo<T>({ code, message, data });
4848
}
4949
}
5050

src/generateService.ts

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ import type { {_@modelNameCapitalize@_}IdExistDto, {_@modelNameCapitalize@_}Crea
1616
export class {_@modelNameCapitalize@_}Service {
1717
constructor(private readonly prisma: PrismaService) {}
1818
19-
async findAll(): Promise<unknown> {
19+
async findAll() {
2020
const res = await this.prisma.{_@modelName@_}.findMany();
2121
{__@returnResultDataVo@__}
2222
}
2323
24-
async findOne(dto: {_@modelNameCapitalize@_}IdExistDto): Promise<unknown> {
24+
async findOne(dto: {_@modelNameCapitalize@_}IdExistDto) {
2525
const res = await this.prisma.{_@modelName@_}.findUnique({ where: { id: dto.id } });
2626
{__@returnResultDataVo@__}
2727
}
2828
29-
async create(dto: {_@modelNameCapitalize@_}CreateDto): Promise<unknown> {
29+
async create(dto: {_@modelNameCapitalize@_}CreateDto) {
3030
const { {_@CreateDtoIdFields@_} ...rest} = dto;
3131
const data: Prisma.{_@modelNameCapitalize@_}CreateArgs["data"] = {
3232
...rest,
@@ -36,7 +36,7 @@ export class {_@modelNameCapitalize@_}Service {
3636
{__@returnResultDataVo@__}
3737
}
3838
39-
async update(dto: {_@modelNameCapitalize@_}UpdateDto): Promise<unknown> {
39+
async update(dto: {_@modelNameCapitalize@_}UpdateDto) {
4040
const { id, {_@CreateDtoIdFields@_} ...rest } = dto;
4141
const data: Prisma.{_@modelNameCapitalize@_}UpdateArgs["data"] = {
4242
...rest,
@@ -47,7 +47,7 @@ export class {_@modelNameCapitalize@_}Service {
4747
}
4848
4949
50-
async delete(dto: {_@modelNameCapitalize@_}IdExistDto): Promise<unknown> {
50+
async delete(dto: {_@modelNameCapitalize@_}IdExistDto) {
5151
try {
5252
await this.prisma.{_@modelName@_}.delete({ where: { id: dto.id } });
5353
const res = "success";
@@ -58,19 +58,18 @@ export class {_@modelNameCapitalize@_}Service {
5858
}
5959
}
6060
61-
async list(dto: Pagination{_@modelNameCapitalize@_}Dto): Promise<unknown> {
61+
async list(dto: Pagination{_@modelNameCapitalize@_}Dto) {
6262
const { page, pageSize, ...rest } = dto;
63+
const where: Prisma.{_@modelNameCapitalize@_}WhereInput = {
64+
{_@PaginationWhere@_}
65+
};
6366
const res = await this.prisma.{_@modelName@_}.findMany({
6467
take: pageSize,
6568
skip: (page - 1) * pageSize,
66-
where: {
67-
{_@PaginationWhere@_}
68-
}
69-
});
69+
where,
70+
});
7071
const total = await this.prisma.{_@modelName@_}.count({
71-
where: {
72-
{_@PaginationWhere@_}
73-
}
72+
where,
7473
});
7574
{__@returnResultDataVoList@__}
7675
}
@@ -105,13 +104,13 @@ export function generateService(model: Schema, useResultDataVo: boolean) {
105104
.replace(
106105
/{__@returnResultDataVo@__}/g,
107106
useResultDataVo
108-
? "return ResultDataVo.ok({data: res});"
107+
? "return ResultDataVo.ok<typeof res>({data: res});"
109108
: "return res;",
110109
)
111110
.replace(
112111
/{__@returnResultDataVoList@__}/g,
113112
useResultDataVo
114-
? "return ResultDataVo.ok({data: { list:res, total, page, pageSize }});"
113+
? "const data = { list:res, total, page, pageSize };\n\t\treturn ResultDataVo.ok<typeof data>({data});"
115114
: "return res;",
116115
),
117116
};

0 commit comments

Comments
 (0)