Skip to content

Commit 677c77c

Browse files
committed
🐞 fix: inverted additional properties flag
1 parent 3f3c3f9 commit 677c77c

File tree

5 files changed

+17
-16
lines changed

5 files changed

+17
-16
lines changed

prisma/schema.prisma

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ model User {
7474
id String @id @default(uuid())
7575
createdAt DateTime @default(now())
7676
updatedAt DateTime @updatedAt
77-
/// @prismabox.typeOverwrite=CustomName
7877
name String
79-
/// @prismabox.typeOverwrite=CustomConferenceMember
8078
conferenceMemberships ConferenceMember[]
8179
committeeMemberships CommitteeMember[]
8280
messages Message[]

src/annotations/options.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,24 @@ import { type extractAnnotations, isOptionsVariant } from "./annotations";
33

44
export function generateTypeboxOptions({
55
input,
6-
exludeAdditionalProperties = false,
6+
exludeAdditionalProperties,
77
}: {
88
input?: ReturnType<typeof extractAnnotations>;
99
exludeAdditionalProperties?: boolean;
1010
} = {}): string {
11+
if(exludeAdditionalProperties === undefined) {
12+
exludeAdditionalProperties = !getConfig().additionalProperties
13+
}
14+
15+
1116
const stringifiedOptions: string[] = [];
1217
for (const annotation of input?.annotations ?? []) {
1318
if (isOptionsVariant(annotation)) {
1419
stringifiedOptions.push(annotation.value);
1520
}
1621
}
1722

18-
if (!exludeAdditionalProperties) {
23+
if (exludeAdditionalProperties) {
1924
stringifiedOptions.push(
2025
`additionalProperties: ${getConfig().additionalProperties}`,
2126
);

src/generators/plain.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function processPlain(models: DMMF.Model[] | Readonly<DMMF.Model[]>) {
3131
export function stringifyPlain(
3232
data: DMMF.Model,
3333
isInputModelCreate = false,
34-
isInputModelUpdate = false,
34+
isInputModelUpdate = false
3535
) {
3636
const annotations = extractAnnotations(data.documentation);
3737

@@ -105,13 +105,16 @@ export function stringifyPlain(
105105
} else {
106106
stringifiedType = stringifyPrimitiveType({
107107
fieldType: field.type as PrimitivePrismaFieldType,
108-
options: generateTypeboxOptions({ input: annotations }),
108+
options: generateTypeboxOptions({
109+
input: annotations,
110+
exludeAdditionalProperties: false,
111+
}),
109112
});
110113
}
111114
} else if (processedEnums.find((e) => e.name === field.type)) {
112115
// biome-ignore lint/style/noNonNullAssertion: we checked this manually
113116
stringifiedType = processedEnums.find(
114-
(e) => e.name === field.type,
117+
(e) => e.name === field.type
115118
)!.stringRepresentation;
116119
} else {
117120
return undefined;

src/generators/primitiveField.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ export function stringifyPrimitiveType({
2828
fieldType: PrimitivePrismaFieldType;
2929
options: string;
3030
}) {
31-
// Remove `additionalProperties` from options for primitives
32-
const optionsObject = JSON.parse(options);
33-
optionsObject.additionalProperties = undefined;
34-
options = JSON.stringify(optionsObject);
35-
3631
if (["Int", "BigInt"].includes(fieldType)) {
3732
return `${getConfig().typeboxImportVariableName}.Integer(${options})`;
3833
}

src/generators/where.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export function stringifyWhere(data: DMMF.Model) {
5353
stringifiedType = stringifyPrimitiveType({
5454
fieldType: field.type as PrimitivePrismaFieldType,
5555
options: generateTypeboxOptions({
56-
exludeAdditionalProperties: true,
56+
exludeAdditionalProperties: false,
5757
input: annotations,
5858
}),
5959
});
@@ -136,7 +136,7 @@ export function stringifyWhereUnique(data: DMMF.Model) {
136136
stringifiedType = stringifyPrimitiveType({
137137
fieldType: f.type as PrimitivePrismaFieldType,
138138
options: generateTypeboxOptions({
139-
exludeAdditionalProperties: true,
139+
exludeAdditionalProperties: false,
140140
input: annotations,
141141
}),
142142
});
@@ -180,7 +180,7 @@ export function stringifyWhereUnique(data: DMMF.Model) {
180180
stringifiedType = stringifyPrimitiveType({
181181
fieldType: field.type as PrimitivePrismaFieldType,
182182
options: generateTypeboxOptions({
183-
exludeAdditionalProperties: true,
183+
exludeAdditionalProperties: false,
184184
input: annotations,
185185
}),
186186
});
@@ -221,7 +221,7 @@ export function stringifyWhereUnique(data: DMMF.Model) {
221221
stringifiedType = stringifyPrimitiveType({
222222
fieldType: field.type as PrimitivePrismaFieldType,
223223
options: generateTypeboxOptions({
224-
exludeAdditionalProperties: true,
224+
exludeAdditionalProperties: false,
225225
input: annotations,
226226
}),
227227
});

0 commit comments

Comments
 (0)