Skip to content

Commit de3f17c

Browse files
committed
fix: Change Bytes generated type to Uint8Array
1 parent af1f11b commit de3f17c

File tree

8 files changed

+133
-81
lines changed

8 files changed

+133
-81
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,3 +757,8 @@ import { generate } from 'prisma-nestjs-graphql/generate';
757757
- JSON type for the code first approach - https://github.com/nestjs/graphql/issues/111#issuecomment-631452899
758758
- https://github.com/paljs/prisma-tools/tree/master/packages/plugins
759759
- https://github.com/wasp-lang/wasp
760+
761+
## TODO
762+
763+
- keyof typeof SortOrder -> `SortOrder`
764+
- dummy-createfriends.input.ts -> `create-friends`

src/helpers/get-property-type.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export function getPropertyType(args: {
77
type: string;
88
location: FieldLocation;
99
}): string[] {
10-
const { type, location } = args;
10+
const { location, type } = args;
1111
switch (type) {
1212
case 'Float':
1313
case 'Int': {
@@ -32,7 +32,7 @@ export function getPropertyType(args: {
3232
return ['null'];
3333
}
3434
case 'Bytes': {
35-
return ['Buffer'];
35+
return ['Uint8Array'];
3636
}
3737
case 'BigInt': {
3838
return ['bigint', 'number'];

src/test/compatibility.ts

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
1-
/* eslint-disable prefer-const, unicorn/no-null */
1+
/* eslint-disable @typescript-eslint/no-unused-expressions, prefer-const, unicorn/no-null */
2+
import { Field } from '@nestjs/graphql';
23
import { Prisma, PrismaClient } from '@prisma/client';
34
import * as P from '@prisma/client';
45

5-
import { Dummy } from '../../@generated/dummy/dummy.model';
6-
import { DummyCreateInput } from '../../@generated/dummy/dummy-create.input';
7-
import { DateTimeFilter } from '../../@generated/prisma/date-time-filter.input';
8-
import { DecimalFilter } from '../../@generated/prisma/decimal-filter.input';
9-
import { IntFilter } from '../../@generated/prisma/int-filter.input';
10-
import { StringFilter } from '../../@generated/prisma/string-filter.input';
11-
import { FindManyUserArgs } from '../../@generated/user/find-many-user.args';
12-
import { User } from '../../@generated/user/user.model';
13-
import { UserAggregateArgs } from '../../@generated/user/user-aggregate.args';
14-
import { UserCount } from '../../@generated/user/user-count.output';
15-
import { UserCreateInput } from '../../@generated/user/user-create.input';
16-
import { UserCreateWithoutArticlesInput } from '../../@generated/user/user-create-without-articles.input';
17-
import { UserCreateWithoutCommentsInput } from '../../@generated/user/user-create-without-comments.input';
18-
import { UserGroupByArgs } from '../../@generated/user/user-group-by.args';
19-
import { UserListRelationFilter } from '../../@generated/user/user-list-relation-filter.input';
20-
import { UserMaxOrderByAggregateInput } from '../../@generated/user/user-max-order-by-aggregate.input';
21-
import { UserScalarFieldEnum } from '../../@generated/user/user-scalar-field.enum';
22-
import { UserWhereInput } from '../../@generated/user/user-where.input';
23-
import { UserWhereUniqueInput } from '../../@generated/user/user-where-unique.input';
24-
import { Field } from '@nestjs/graphql';
6+
import { Dummy } from '../../@generated/dummy/dummy.model.ts';
7+
import { DummyCreateInput } from '../../@generated/dummy/dummy-create.input.ts';
8+
import { DateTimeFilter } from '../../@generated/prisma/date-time-filter.input.ts';
9+
import { DecimalFilter } from '../../@generated/prisma/decimal-filter.input.ts';
10+
import { IntFilter } from '../../@generated/prisma/int-filter.input.ts';
11+
import { StringFilter } from '../../@generated/prisma/string-filter.input.ts';
12+
import { FindManyUserArgs } from '../../@generated/user/find-many-user.args.ts';
13+
import { User } from '../../@generated/user/user.model.ts';
14+
import { UserAggregateArgs } from '../../@generated/user/user-aggregate.args.ts';
15+
import { UserCount } from '../../@generated/user/user-count.output.ts';
16+
import { UserCreateInput } from '../../@generated/user/user-create.input.ts';
17+
import { UserCreateWithoutArticlesInput } from '../../@generated/user/user-create-without-articles.input.ts';
18+
import { UserCreateWithoutCommentsInput } from '../../@generated/user/user-create-without-comments.input.ts';
19+
import { UserGroupByArgs } from '../../@generated/user/user-group-by.args.ts';
20+
import { UserListRelationFilter } from '../../@generated/user/user-list-relation-filter.input.ts';
21+
import { UserMaxOrderByAggregateInput } from '../../@generated/user/user-max-order-by-aggregate.input.ts';
22+
import { UserScalarFieldEnum } from '../../@generated/user/user-scalar-field.enum.ts';
23+
import { UserWhereInput } from '../../@generated/user/user-where.input.ts';
24+
import { UserWhereUniqueInput } from '../../@generated/user/user-where-unique.input.ts';
2525

2626
let $prisma = new PrismaClient();
2727

@@ -124,8 +124,8 @@ let $prisma = new PrismaClient();
124124
x;
125125
}
126126
{
127-
let x: DummyCreateInput = { id: '1', decimal: 0 as any };
128-
let p: Prisma.DummyCreateInput = { id: '2', decimal: 0 as any };
127+
let x: DummyCreateInput = { decimal: 0 as any, id: '1' };
128+
let p: Prisma.DummyCreateInput = { decimal: 0 as any, id: '2' };
129129
p = x;
130130
p;
131131
x;
@@ -140,14 +140,21 @@ let $prisma = new PrismaClient();
140140
let x: UserMaxOrderByAggregateInput = {};
141141
let p: Prisma.UserMaxOrderByAggregateInput = {};
142142
p = x; // To prisma
143-
x = p; // To object type
143+
// FIXME: Skip is not assignable to type asc | desc | undefined
144+
// x = p; // Prisma to own object type
144145
}
145146
{
146147
let x: UserCreateInput = {} as unknown as UserCreateInput;
147148
let p: Prisma.UserCreateInput = {} as unknown as Prisma.UserCreateInput;
148149
p = x;
149150
p;
150151
}
152+
{
153+
let x: Dummy['bytes'] = null as unknown as P.Dummy['bytes'];
154+
let p: P.Dummy['bytes'] = null as unknown as Dummy['bytes'];
155+
x;
156+
p;
157+
}
151158
{
152159
let x: Dummy = {} as unknown as Dummy;
153160
let p: P.Dummy = {} as unknown as P.Dummy;
@@ -171,13 +178,13 @@ let $prisma = new PrismaClient();
171178
void $prisma.user
172179
.findMany({
173180
include: {
174-
articles: true,
175-
profile: true,
176181
_count: true,
182+
articles: true,
177183
comments: true,
178184
favoriteArticles: true,
179185
followers: true,
180186
following: true,
187+
profile: true,
181188
},
182189
})
183190
.then(users => {

src/test/compound.spec.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ let sourceFiles: SourceFile[];
1010
describe('compound index', () => {
1111
before(async () => {
1212
({ project, sourceFiles } = await testGenerate({
13+
options: [
14+
`outputFilePattern = "{name}.{type}.ts"`,
15+
`fields_Validator_from = "class-validator"`,
16+
`fields_Validator_input = true`,
17+
],
1318
schema: `
1419
model User {
1520
id Int @id
@@ -24,18 +29,13 @@ describe('compound index', () => {
2429
id Int @id
2530
}
2631
`,
27-
options: [
28-
`outputFilePattern = "{name}.{type}.ts"`,
29-
`fields_Validator_from = "class-validator"`,
30-
`fields_Validator_input = true`,
31-
],
3232
}));
3333
});
3434

3535
it('user unique input compound', () => {
3636
const s = testSourceFile({
37-
project,
3837
class: 'UserEmailNameCompoundUniqueInput',
38+
project,
3939
});
4040

4141
const minLength = s.classFile.getProperty('name')?.getDecorator('MinLength');
@@ -44,8 +44,8 @@ describe('compound index', () => {
4444

4545
it('compound uniq where must be wrapped to prisma atleast', () => {
4646
const s = testSourceFile({
47-
project,
4847
class: 'FindManyUserArgs',
48+
project,
4949
property: 'cursor',
5050
});
5151

@@ -58,6 +58,7 @@ describe('compound index', () => {
5858
describe('compound primary key', () => {
5959
before(async () => {
6060
({ project, sourceFiles } = await testGenerate({
61+
options: [`outputFilePattern = "{name}.{type}.ts"`],
6162
schema: `
6263
model User {
6364
firstname String
@@ -67,14 +68,13 @@ describe('compound primary key', () => {
6768
@@id([firstname, surname])
6869
}
6970
`,
70-
options: [`outputFilePattern = "{name}.{type}.ts"`],
7171
}));
7272
});
7373

7474
it('compound primary key atleast keys', () => {
7575
const s = testSourceFile({
76-
project,
7776
class: 'FindFirstUserArgs',
77+
project,
7878
property: 'cursor',
7979
});
8080

0 commit comments

Comments
 (0)