Skip to content

Commit

Permalink
fix: nullable columns aren't optional in select, rip
Browse files Browse the repository at this point in the history
  • Loading branch information
rintaun committed Dec 10, 2022
1 parent 1ccbcd5 commit cc3408d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 38 deletions.
40 changes: 20 additions & 20 deletions src/generator/__tests__/__snapshots__/Generator.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -124,16 +124,16 @@ export const TableWithNullableFields$Metadata = {
}
} as const;
export const TableWithNullableFields$SelectSchema = z.object({
nullable: z.string().nullish(),
nullable_with_default: z.string().nullish(),
nullable_array: z.array(z.string()).nullish(),
nullable_array_with_default: z.array(z.string()).nullish()
nullable: z.string().nullable(),
nullable_with_default: z.string().nullable(),
nullable_array: z.array(z.string()).nullable(),
nullable_array_with_default: z.array(z.string()).nullable()
});
export const TableWithNullableFields$InsertSchema = z.object({
nullable: z.string().nullish(),
nullable_with_default: z.string().nullish().or(z.literal(DEFAULT)),
nullable_array: z.array(z.string()).nullish(),
nullable_array_with_default: z.array(z.string()).nullish().or(z.literal(DEFAULT))
nullable: z.string().nullable().optional(),
nullable_with_default: z.string().nullable().optional().or(z.literal(DEFAULT)),
nullable_array: z.array(z.string()).nullable().optional(),
nullable_array_with_default: z.array(z.string()).nullable().optional().or(z.literal(DEFAULT))
});
export const TableWithJsonJsonb$Metadata = {
json: {
Expand All @@ -147,11 +147,11 @@ export const TableWithJsonJsonb$Metadata = {
} as const;
export const TableWithJsonJsonb$SelectSchema = z.object({
json: z.unknown(),
jsonb: z.unknown().nullish()
jsonb: z.unknown().nullable()
});
export const TableWithJsonJsonb$InsertSchema = z.object({
json: z.unknown(),
jsonb: z.unknown().nullish().or(z.literal(DEFAULT))
jsonb: z.unknown().nullable().optional().or(z.literal(DEFAULT))
});
"
`;
Expand Down Expand Up @@ -244,16 +244,16 @@ export const TableWithNullableFields$Metadata = {
}
} as const;
export const TableWithNullableFields$SelectSchema = z.object({
nullable: z.string().nullish(),
nullableWithDefault: z.string().nullish(),
nullableArray: z.array(z.string()).nullish(),
nullableArrayWithDefault: z.array(z.string()).nullish()
nullable: z.string().nullable(),
nullableWithDefault: z.string().nullable(),
nullableArray: z.array(z.string()).nullable(),
nullableArrayWithDefault: z.array(z.string()).nullable()
});
export const TableWithNullableFields$InsertSchema = z.object({
nullable: z.string().nullish(),
nullableWithDefault: z.string().nullish().or(z.literal(DEFAULT)),
nullableArray: z.array(z.string()).nullish(),
nullableArrayWithDefault: z.array(z.string()).nullish().or(z.literal(DEFAULT))
nullable: z.string().nullable().optional(),
nullableWithDefault: z.string().nullable().optional().or(z.literal(DEFAULT)),
nullableArray: z.array(z.string()).nullable().optional(),
nullableArrayWithDefault: z.array(z.string()).nullable().optional().or(z.literal(DEFAULT))
});
export const TableWithJsonJsonb$Metadata = {
json: {
Expand All @@ -267,11 +267,11 @@ export const TableWithJsonJsonb$Metadata = {
} as const;
export const TableWithJsonJsonb$SelectSchema = z.object({
json: z.unknown(),
jsonb: z.unknown().nullish()
jsonb: z.unknown().nullable()
});
export const TableWithJsonJsonb$InsertSchema = z.object({
json: z.unknown(),
jsonb: z.unknown().nullish().or(z.literal(DEFAULT))
jsonb: z.unknown().nullable().optional().or(z.literal(DEFAULT))
});
"
`;
Expand Down
32 changes: 16 additions & 16 deletions src/generator/__tests__/__snapshots__/integration.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ export const TestTableOrder$Metadata = {
}
} as const;
export const TestTableOrder$SelectSchema = z.object({
subsequent_table_type: z.lazy(() => TestTableStandard$SelectSchema.nullish())
subsequent_table_type: z.lazy(() => TestTableStandard$SelectSchema.nullable())
});
export const TestTableOrder$InsertSchema = z.object({
subsequent_table_type: z.lazy(() => TestTableStandard$InsertSchema.nullish())
subsequent_table_type: z.lazy(() => TestTableStandard$InsertSchema.nullable().optional())
});
export interface TestTableOrder {
subsequent_table_type: TestTableStandard | null;
Expand Down Expand Up @@ -108,26 +108,26 @@ export const TestTableStandard$Metadata = {
}
} as const;
export const TestTableStandard$SelectSchema = z.object({
arr_test: z.array(z.string()).nullish(),
caseTest_upper: z.string().nullish(),
casetest_lower: z.string().nullish(),
arr_test: z.array(z.string()).nullable(),
caseTest_upper: z.string().nullable(),
casetest_lower: z.string().nullable(),
created_at: z.date(),
domain_test: z.string().nullish(),
enum_arr_test: z.lazy(() => z.array(z.nativeEnum(TestTypeEnum)).nullish()),
domain_test: z.string().nullable(),
enum_arr_test: z.lazy(() => z.array(z.nativeEnum(TestTypeEnum)).nullable()),
enum_test: z.lazy(() => z.nativeEnum(TestTypeEnum)),
id: z.number(),
jsonb_test: z.unknown().nullish()
jsonb_test: z.unknown().nullable()
});
export const TestTableStandard$InsertSchema = z.object({
arr_test: z.array(z.string()).nullish(),
caseTest_upper: z.string().nullish(),
casetest_lower: z.string().nullish(),
arr_test: z.array(z.string()).nullable().optional(),
caseTest_upper: z.string().nullable().optional(),
casetest_lower: z.string().nullable().optional(),
created_at: z.date().optional().or(z.literal(DEFAULT)),
domain_test: z.string().nullish(),
enum_arr_test: z.lazy(() => z.array(z.nativeEnum(TestTypeEnum)).nullish()),
domain_test: z.string().nullable().optional(),
enum_arr_test: z.lazy(() => z.array(z.nativeEnum(TestTypeEnum)).nullable().optional()),
enum_test: z.lazy(() => z.nativeEnum(TestTypeEnum)),
id: z.number().optional().or(z.literal(DEFAULT)),
jsonb_test: z.unknown().nullish()
jsonb_test: z.unknown().nullable().optional()
});
export interface TestTableStandard<TJsonbTest = SerializableValueType> {
arr_test: string[] | null;
Expand Down Expand Up @@ -179,12 +179,12 @@ export const TestTableTypes$Metadata = {
export const TestTableTypes$SelectSchema = z.object({
id: z.string(),
table_arr_test: z.lazy(() => z.array(TestTableStandard$SelectSchema)),
table_test: z.lazy(() => TestTableStandard$SelectSchema.nullish())
table_test: z.lazy(() => TestTableStandard$SelectSchema.nullable())
});
export const TestTableTypes$InsertSchema = z.object({
id: z.string(),
table_arr_test: z.lazy(() => z.array(TestTableStandard$InsertSchema).optional().or(z.literal(DEFAULT))),
table_test: z.lazy(() => TestTableStandard$InsertSchema.nullish())
table_test: z.lazy(() => TestTableStandard$InsertSchema.nullable().optional())
});
export interface TestTableTypes {
id: string;
Expand Down
2 changes: 1 addition & 1 deletion src/generator/builders/InsertSchemaBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export default class InsertSchemaBuilder extends SelectSchemaBuilder {
const [name, origValue, type] = super.buildSinglePropertyEntry(columnInfo)
let value = origValue

if (columnInfo.hasDefault && !columnInfo.nullable) {
if (columnInfo.hasDefault || columnInfo.nullable) {
value = factory.createCallExpression(
factory.createPropertyAccessExpression(value, 'optional'),
undefined,
Expand Down
2 changes: 1 addition & 1 deletion src/generator/builders/SelectSchemaBuilder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export default class SelectSchemaBuilder extends TypeBuilder<VariableStatement>

if (columnInfo.nullable) {
value = factory.createCallExpression(
factory.createPropertyAccessExpression(value, 'nullish'),
factory.createPropertyAccessExpression(value, 'nullable'),
undefined,
undefined
)
Expand Down

0 comments on commit cc3408d

Please sign in to comment.