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",
}


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),
});


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)

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.
Was this page helpful?