Skip to content

Commit

Permalink
Feat: boolean support
Browse files Browse the repository at this point in the history
also fixes type for DataTypes.BLOB
  • Loading branch information
Skye-31 committed Oct 11, 2022
1 parent 9e36fad commit b214e74
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .changeset/nice-mirrors-drive.md
@@ -0,0 +1,5 @@
---
"d1-orm": patch
---

Feat: boolean support
19 changes: 13 additions & 6 deletions src/model.ts
Expand Up @@ -291,21 +291,24 @@ export enum DataTypes {
NUMERIC = "real",
REAL = "real",
BLOB = "blob",
BOOLEAN = "boolean",
}

type InferJSTypeFromModelColumn<T extends { type: DataTypes }> =
type InferFromColumn<T extends ModelColumn> =
T["type"] extends DataTypes.INTEGER
? number
: T["type"] extends DataTypes.REAL
? number
: T["type"] extends DataTypes.TEXT
? string
: T["type"] extends DataTypes.BLOB
? Uint32Array
? ArrayBuffer
: T["type"] extends DataTypes.BOOLEAN
? 1 | 0
: never;

type InferFromColumns<T extends Record<string, { type: DataTypes }>> = {
[K in keyof T]: InferJSTypeFromModelColumn<T[K]>;
type InferFromColumns<T extends Record<string, ModelColumn>> = {
[K in keyof T]: InferFromColumn<T[K]>;
};

/**
Expand All @@ -321,8 +324,12 @@ type InferFromColumns<T extends Record<string, { type: DataTypes }>> = {
* D1Orm: MyD1OrmInstance,
* },
* {
* name: DataTypes.STRING,
* age: DataTypes.NUMBER,
* name: {
* type: DataTypes.STRING
* },
* age: {
* type: DataTypes.NUMBER
* },
* }
* );
*
Expand Down

0 comments on commit b214e74

Please sign in to comment.