Skip to content

Commit 33599c8

Browse files
authored
Merge pull request #12 from TLDMain/master
feat: documentation hints
2 parents 0e2dde1 + 2e383fe commit 33599c8

File tree

9 files changed

+287
-227
lines changed

9 files changed

+287
-227
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": "prisma-typebox-generator",
3-
"version": "2.0.2",
3+
"version": "3.0.0",
44
"main": "dist/index.js",
55
"license": "MIT",
66
"files": [

prisma/schema.prisma

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ datasource db {
1111
url = env("DATABASE_URL")
1212
}
1313

14+
/// model description
1415
model User {
1516
id Int @id @default(autoincrement())
1617
createdAt DateTime @default(now())
@@ -21,14 +22,27 @@ model User {
2122
successorId Int?
2223
role Role @default(USER)
2324
posts Post[]
25+
/// @docs.opt minLength: 3
26+
/// @docs.listopt maxItems: 10
2427
keywords String[]
28+
/// field description
2529
biography Json
30+
/// ignored description
31+
/// @docs.opt description: "used description"
2632
decimal Decimal
33+
/// multiline
34+
/// description
2735
biginteger BigInt
36+
/// @docs.opt minimum: 0
37+
/// @docs.type Integer
38+
unsigned Int
39+
/// @docs.hide
40+
hidden Int
2841
}
2942

3043
model Post {
3144
id Int @id @default(autoincrement())
45+
/// @docs.hide
3246
user User? @relation(fields: [userId], references: [id])
3347
userId Int?
3448
}

prisma/typebox/Post.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,7 @@
11
import { Type, Static } from "@sinclair/typebox";
2-
import { Role } from "./Role";
32

43
export const Post = Type.Object({
54
id: Type.Number(),
6-
user: Type.Optional(
7-
Type.Object({
8-
id: Type.Number(),
9-
createdAt: Type.Optional(Type.String()),
10-
email: Type.String(),
11-
weight: Type.Optional(Type.Number()),
12-
is18: Type.Optional(Type.Boolean()),
13-
name: Type.Optional(Type.String()),
14-
successorId: Type.Optional(Type.Number()),
15-
role: Type.Optional(Role),
16-
keywords: Type.Array(Type.String()),
17-
biography: Type.String(),
18-
decimal: Type.Number(),
19-
biginteger: Type.Integer(),
20-
})
21-
),
225
userId: Type.Optional(Type.Number()),
236
});
247

prisma/typebox/PostInput.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,7 @@
11
import { Type, Static } from "@sinclair/typebox";
2-
import { Role } from "./Role";
32

43
export const PostInput = Type.Object({
54
id: Type.Optional(Type.Number()),
6-
user: Type.Optional(
7-
Type.Object({
8-
id: Type.Optional(Type.Number()),
9-
createdAt: Type.Optional(Type.String()),
10-
email: Type.String(),
11-
weight: Type.Optional(Type.Number()),
12-
is18: Type.Optional(Type.Boolean()),
13-
name: Type.Optional(Type.String()),
14-
successorId: Type.Optional(Type.Number()),
15-
role: Type.Optional(Role),
16-
keywords: Type.Array(Type.String()),
17-
biography: Type.String(),
18-
decimal: Type.Number(),
19-
biginteger: Type.Integer(),
20-
})
21-
),
225
userId: Type.Optional(Type.Number()),
236
});
247

prisma/typebox/User.ts

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
import { Type, Static } from "@sinclair/typebox";
22
import { Role } from "./Role";
33

4-
export const User = Type.Object({
5-
id: Type.Number(),
6-
createdAt: Type.Optional(Type.String()),
7-
email: Type.String(),
8-
weight: Type.Optional(Type.Number()),
9-
is18: Type.Optional(Type.Boolean()),
10-
name: Type.Optional(Type.String()),
11-
successorId: Type.Optional(Type.Number()),
12-
role: Type.Optional(Role),
13-
posts: Type.Array(
14-
Type.Object({
15-
id: Type.Number(),
16-
userId: Type.Optional(Type.Number()),
17-
})
18-
),
19-
keywords: Type.Array(Type.String()),
20-
biography: Type.String(),
21-
decimal: Type.Number(),
22-
biginteger: Type.Integer(),
23-
});
4+
export const User = Type.Object(
5+
{
6+
id: Type.Number(),
7+
createdAt: Type.Optional(Type.String()),
8+
email: Type.String(),
9+
weight: Type.Optional(Type.Number()),
10+
is18: Type.Optional(Type.Boolean()),
11+
name: Type.Optional(Type.String()),
12+
successorId: Type.Optional(Type.Number()),
13+
role: Type.Optional(Role),
14+
posts: Type.Array(
15+
Type.Object({
16+
id: Type.Number(),
17+
userId: Type.Optional(Type.Number()),
18+
})
19+
),
20+
keywords: Type.Array(Type.String({ minLength: 3 }), { maxItems: 10 }),
21+
biography: Type.String({ description: "field description" }),
22+
decimal: Type.Number({ description: "used description" }),
23+
biginteger: Type.Integer({ description: "multiline\ndescription" }),
24+
unsigned: Type.Integer({ minimum: 0 }),
25+
},
26+
{ description: "model description" }
27+
);
2428

2529
export type UserType = Static<typeof User>;

prisma/typebox/UserInput.ts

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,29 @@
11
import { Type, Static } from "@sinclair/typebox";
22
import { Role } from "./Role";
33

4-
export const UserInput = Type.Object({
5-
id: Type.Optional(Type.Number()),
6-
createdAt: Type.Optional(Type.String()),
7-
email: Type.String(),
8-
weight: Type.Optional(Type.Number()),
9-
is18: Type.Optional(Type.Boolean()),
10-
name: Type.Optional(Type.String()),
11-
successorId: Type.Optional(Type.Number()),
12-
role: Type.Optional(Role),
13-
posts: Type.Array(
14-
Type.Object({
15-
id: Type.Optional(Type.Number()),
16-
userId: Type.Optional(Type.Number()),
17-
})
18-
),
19-
keywords: Type.Array(Type.String()),
20-
biography: Type.String(),
21-
decimal: Type.Number(),
22-
biginteger: Type.Integer(),
23-
});
4+
export const UserInput = Type.Object(
5+
{
6+
id: Type.Optional(Type.Number()),
7+
createdAt: Type.Optional(Type.String()),
8+
email: Type.String(),
9+
weight: Type.Optional(Type.Number()),
10+
is18: Type.Optional(Type.Boolean()),
11+
name: Type.Optional(Type.String()),
12+
successorId: Type.Optional(Type.Number()),
13+
role: Type.Optional(Role),
14+
posts: Type.Array(
15+
Type.Object({
16+
id: Type.Optional(Type.Number()),
17+
userId: Type.Optional(Type.Number()),
18+
})
19+
),
20+
keywords: Type.Array(Type.String({ minLength: 3 }), { maxItems: 10 }),
21+
biography: Type.String({ description: "field description" }),
22+
decimal: Type.Number({ description: "used description" }),
23+
biginteger: Type.Integer({ description: "multiline\ndescription" }),
24+
unsigned: Type.Integer({ minimum: 0 }),
25+
},
26+
{ description: "model description" }
27+
);
2428

2529
export type UserInputType = Static<typeof UserInput>;

prisma/typebox/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export * from './User';
2+
export * from './UserInput';
3+
export * from './Post';
4+
export * from './PostInput';
5+
export * from './Role';

0 commit comments

Comments
 (0)