Trouble assigning enum as input for sqlite database.

I have an enum in typescript
export enum InsuranceStatus {
INSURANCE_NOT_REQUIRED = "insurance_not_required",
INSURANCE_PENDING_APPROVAL = "insurance_pending_approval",
INSURANCE_APPROVED = "insurance_approved",
}
export enum InsuranceStatus {
INSURANCE_NOT_REQUIRED = "insurance_not_required",
INSURANCE_PENDING_APPROVAL = "insurance_pending_approval",
INSURANCE_APPROVED = "insurance_approved",
}
and I am trying to use it for my sqlite DB
export const packageEntity = sqliteTable("packages", {
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
containerId: integer("container_id")
.notNull()
.references((): SQLiteColumn => shippingContainerEntity.id),
recipientId: integer("recipient_id").notNull().default(0),
weight: integer("weight").notNull().default(0),
value: integer("value").notNull().default(0),
insuranceStatus: text(
"insurance_status" /* , {
enum: Object.keys(InsuranceStatus),
} */,
)
.notNull()
.$type<InsuranceStatus>()
.notNull()
.default(InsuranceStatus.INSURANCE_NOT_REQUIRED),
});
export const packageEntity = sqliteTable("packages", {
id: integer("id", { mode: "number" }).primaryKey({ autoIncrement: true }),
containerId: integer("container_id")
.notNull()
.references((): SQLiteColumn => shippingContainerEntity.id),
recipientId: integer("recipient_id").notNull().default(0),
weight: integer("weight").notNull().default(0),
value: integer("value").notNull().default(0),
insuranceStatus: text(
"insurance_status" /* , {
enum: Object.keys(InsuranceStatus),
} */,
)
.notNull()
.$type<InsuranceStatus>()
.notNull()
.default(InsuranceStatus.INSURANCE_NOT_REQUIRED),
});
However as you can see I had to comment it because I am getting a weird type error.
Type 'string[]' is not assignable to type 'readonly [string, ...string[]] | [string, ...string[]] | undefined'.
Type 'string[]' is not assignable to type '[string, ...string[]]'.
Source provides no match for required element at position 0 in target.ts(2322)
Type 'string[]' is not assignable to type 'readonly [string, ...string[]] | [string, ...string[]] | undefined'.
Type 'string[]' is not assignable to type '[string, ...string[]]'.
Source provides no match for required element at position 0 in target.ts(2322)
I have tried directly using the enum name enum: InsuranceStatus I have tried declaring a string[] , const enumInsuranceStatus: string[] = Object.keys(InsuranceStatus); , and using it enum: enumInsuranceStatus and few other variations. Please help. I am using Bun:Sqlite as driver for drizzle. This is a newly scaffolded project so all packages are upgraded to latest.
1 Reply
Abhinav1217
Abhinav1217OP15mo ago
Any help please?

Did you find this page helpful?