@setupless/drizzle 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -10
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/mysql/createdAt.d.ts +7 -0
- package/dist/cjs/mysql/createdAt.js +16 -0
- package/dist/cjs/mysql/deletedAt.d.ts +8 -0
- package/dist/cjs/mysql/deletedAt.js +14 -0
- package/dist/cjs/mysql/id.d.ts +10 -0
- package/dist/cjs/mysql/id.js +21 -0
- package/dist/cjs/mysql/index.d.ts +5 -0
- package/dist/cjs/mysql/index.js +13 -0
- package/dist/cjs/mysql/timestamps.d.ts +7 -0
- package/dist/cjs/mysql/timestamps.js +14 -0
- package/dist/cjs/mysql/updatedAt.d.ts +8 -0
- package/dist/cjs/mysql/updatedAt.js +18 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/mysql/createdAt.d.ts +7 -0
- package/dist/mysql/createdAt.js +13 -0
- package/dist/mysql/deletedAt.d.ts +8 -0
- package/dist/mysql/deletedAt.js +11 -0
- package/dist/mysql/id.d.ts +10 -0
- package/dist/mysql/id.js +18 -0
- package/dist/mysql/index.d.ts +5 -0
- package/dist/mysql/index.js +5 -0
- package/dist/mysql/timestamps.d.ts +7 -0
- package/dist/mysql/timestamps.js +11 -0
- package/dist/mysql/updatedAt.d.ts +8 -0
- package/dist/mysql/updatedAt.js +15 -0
- package/package.json +11 -1
package/README.md
CHANGED
|
@@ -7,14 +7,14 @@ npm install @setupless/drizzle drizzle-orm
|
|
|
7
7
|
# or: bun add @setupless/drizzle drizzle-orm
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
| Function | Description | Databases
|
|
11
|
-
| -------------- | ----------------------------------------------- |
|
|
12
|
-
| `id()` | Auto-incrementing integer primary key | PostgreSQL, SQLite |
|
|
13
|
-
| `id("uuid")` | Generated UUID primary key | PostgreSQL, SQLite |
|
|
14
|
-
| `createdAt()` | Timestamp with the current time as its default | PostgreSQL, SQLite |
|
|
15
|
-
| `updatedAt()` | Timestamp set on insert and Drizzle-run updates | PostgreSQL, SQLite |
|
|
16
|
-
| `deletedAt()` | Nullable timestamp for soft deletion | PostgreSQL, SQLite |
|
|
17
|
-
| `timestamps()` | `createdAt()` and `updatedAt()` columns | PostgreSQL, SQLite |
|
|
10
|
+
| Function | Description | Databases |
|
|
11
|
+
| -------------- | ----------------------------------------------- | ------------------------- |
|
|
12
|
+
| `id()` | Auto-incrementing integer primary key | PostgreSQL, SQLite, MySQL |
|
|
13
|
+
| `id("uuid")` | Generated UUID primary key | PostgreSQL, SQLite, MySQL |
|
|
14
|
+
| `createdAt()` | Timestamp with the current time as its default | PostgreSQL, SQLite, MySQL |
|
|
15
|
+
| `updatedAt()` | Timestamp set on insert and Drizzle-run updates | PostgreSQL, SQLite, MySQL |
|
|
16
|
+
| `deletedAt()` | Nullable timestamp for soft deletion | PostgreSQL, SQLite, MySQL |
|
|
17
|
+
| `timestamps()` | `createdAt()` and `updatedAt()` columns | PostgreSQL, SQLite, MySQL |
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
20
|
import { pgTable } from "drizzle-orm/pg-core";
|
|
@@ -27,8 +27,8 @@ export const users = pgTable("users", {
|
|
|
27
27
|
});
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
Import from `/sqlite` for SQLite. The package root also
|
|
31
|
-
`sqlite` namespaces. `updatedAt()` uses Drizzle's `$onUpdate` callback; it does
|
|
30
|
+
Import from `/sqlite` for SQLite or `/mysql` for MySQL. The package root also
|
|
31
|
+
exports `pg`, `sqlite`, and `mysql` namespaces. `updatedAt()` uses Drizzle's `$onUpdate` callback; it does
|
|
32
32
|
not create a database trigger for updates made outside Drizzle.
|
|
33
33
|
|
|
34
34
|
`deletedAt()` adds a nullable `deleted_at` column with no default or automatic
|
|
@@ -38,4 +38,29 @@ Queries must filter out soft-deleted rows explicitly.
|
|
|
38
38
|
PostgreSQL timestamp helpers accept a `withTimezone` option. SQLite stores the
|
|
39
39
|
timestamps as text and does not accept this option.
|
|
40
40
|
|
|
41
|
+
MySQL helpers require MySQL 8.0.13+ and use `DATETIME(3)` with JavaScript `Date`
|
|
42
|
+
values and millisecond precision. They do not accept `withTimezone`.
|
|
43
|
+
`createdAt()` and `updatedAt()` default to `(utc_timestamp(3))`, and Drizzle
|
|
44
|
+
updates use `utc_timestamp(3)`. These values stay in UTC regardless of the
|
|
45
|
+
MySQL session timezone, matching Drizzle's UTC date mapping. Expression defaults
|
|
46
|
+
require MySQL 8.0.13+ and a supporting storage engine such as InnoDB.
|
|
47
|
+
|
|
48
|
+
`DATETIME` stores no timezone information. Pass JavaScript `Date` values through
|
|
49
|
+
Drizzle when setting dates explicitly, including `deletedAt`. External writers
|
|
50
|
+
must supply UTC values, for example with `UTC_TIMESTAMP(3)` rather than `NOW(3)`.
|
|
51
|
+
|
|
52
|
+
```ts
|
|
53
|
+
import { mysqlTable } from "drizzle-orm/mysql-core";
|
|
54
|
+
import { deletedAt, id, timestamps } from "@setupless/drizzle/mysql";
|
|
55
|
+
|
|
56
|
+
export const users = mysqlTable("users", {
|
|
57
|
+
...id(),
|
|
58
|
+
...timestamps(),
|
|
59
|
+
...deletedAt(),
|
|
60
|
+
});
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
MySQL `id("uuid")` uses `CHAR(36)` and generates UUIDs in Drizzle through
|
|
64
|
+
`$defaultFn`. Inserts outside Drizzle must supply their own UUID.
|
|
65
|
+
|
|
41
66
|
Licensed under [Apache 2.0](LICENSE).
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sqlite = exports.pg = void 0;
|
|
3
|
+
exports.sqlite = exports.pg = exports.mysql = void 0;
|
|
4
|
+
exports.mysql = require("./mysql/index.js");
|
|
4
5
|
exports.pg = require("./pg/index.js");
|
|
5
6
|
exports.sqlite = require("./sqlite/index.js");
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a non-null `createdAt` DATETIME(3) column with a database default of
|
|
3
|
+
* `utc_timestamp(3)`, independent of the session timezone. Requires MySQL 8.0.13+.
|
|
4
|
+
*/
|
|
5
|
+
export default function createdAt(): {
|
|
6
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"created_at">>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = createdAt;
|
|
4
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
5
|
+
const mysql_core_1 = require("drizzle-orm/mysql-core");
|
|
6
|
+
/**
|
|
7
|
+
* Defines a non-null `createdAt` DATETIME(3) column with a database default of
|
|
8
|
+
* `utc_timestamp(3)`, independent of the session timezone. Requires MySQL 8.0.13+.
|
|
9
|
+
*/
|
|
10
|
+
function createdAt() {
|
|
11
|
+
return {
|
|
12
|
+
createdAt: (0, mysql_core_1.datetime)("created_at", { mode: "date", fsp: 3 })
|
|
13
|
+
.notNull()
|
|
14
|
+
.default((0, drizzle_orm_1.sql) `(utc_timestamp(3))`),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a nullable `deletedAt` DATETIME(3) column named `deleted_at` for soft deletion.
|
|
3
|
+
* Has no default or automatic update. Set the timestamp when deleting a row.
|
|
4
|
+
* Pass a JavaScript Date through Drizzle, or supply UTC values in raw SQL.
|
|
5
|
+
*/
|
|
6
|
+
export default function deletedAt(): {
|
|
7
|
+
deletedAt: import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"deleted_at">;
|
|
8
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = deletedAt;
|
|
4
|
+
const mysql_core_1 = require("drizzle-orm/mysql-core");
|
|
5
|
+
/**
|
|
6
|
+
* Defines a nullable `deletedAt` DATETIME(3) column named `deleted_at` for soft deletion.
|
|
7
|
+
* Has no default or automatic update. Set the timestamp when deleting a row.
|
|
8
|
+
* Pass a JavaScript Date through Drizzle, or supply UTC values in raw SQL.
|
|
9
|
+
*/
|
|
10
|
+
function deletedAt() {
|
|
11
|
+
return {
|
|
12
|
+
deletedAt: (0, mysql_core_1.datetime)("deleted_at", { mode: "date", fsp: 3 }),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines an `id` primary-key column.
|
|
3
|
+
*
|
|
4
|
+
* Drizzle generates UUID values in the application through `$defaultFn`.
|
|
5
|
+
*/
|
|
6
|
+
export default function id(strategy?: "auto" | "uuid"): {
|
|
7
|
+
id: import("drizzle-orm").IsAutoincrement<import("drizzle-orm").HasDefault<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlIntBuilderInitial<"id">>>>>;
|
|
8
|
+
} | {
|
|
9
|
+
id: import("drizzle-orm").HasRuntimeDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlCharBuilderInitial<"id", [string, ...string[]], 36>>>>>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = id;
|
|
4
|
+
const mysql_core_1 = require("drizzle-orm/mysql-core");
|
|
5
|
+
/**
|
|
6
|
+
* Defines an `id` primary-key column.
|
|
7
|
+
*
|
|
8
|
+
* Drizzle generates UUID values in the application through `$defaultFn`.
|
|
9
|
+
*/
|
|
10
|
+
function id(strategy = "auto") {
|
|
11
|
+
switch (strategy) {
|
|
12
|
+
case "auto":
|
|
13
|
+
return { id: (0, mysql_core_1.int)("id").primaryKey().autoincrement() };
|
|
14
|
+
case "uuid":
|
|
15
|
+
return {
|
|
16
|
+
id: (0, mysql_core_1.char)("id", { length: 36 })
|
|
17
|
+
.primaryKey()
|
|
18
|
+
.$defaultFn(() => crypto.randomUUID()),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updatedAt = exports.timestamps = exports.id = exports.deletedAt = exports.createdAt = void 0;
|
|
4
|
+
var createdAt_js_1 = require("./createdAt.js");
|
|
5
|
+
Object.defineProperty(exports, "createdAt", { enumerable: true, get: function () { return createdAt_js_1.default; } });
|
|
6
|
+
var deletedAt_js_1 = require("./deletedAt.js");
|
|
7
|
+
Object.defineProperty(exports, "deletedAt", { enumerable: true, get: function () { return deletedAt_js_1.default; } });
|
|
8
|
+
var id_js_1 = require("./id.js");
|
|
9
|
+
Object.defineProperty(exports, "id", { enumerable: true, get: function () { return id_js_1.default; } });
|
|
10
|
+
var timestamps_js_1 = require("./timestamps.js");
|
|
11
|
+
Object.defineProperty(exports, "timestamps", { enumerable: true, get: function () { return timestamps_js_1.default; } });
|
|
12
|
+
var updatedAt_js_1 = require("./updatedAt.js");
|
|
13
|
+
Object.defineProperty(exports, "updatedAt", { enumerable: true, get: function () { return updatedAt_js_1.default; } });
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines non-null `createdAt` and `updatedAt` timestamp columns.
|
|
3
|
+
*/
|
|
4
|
+
export default function timestamps(): {
|
|
5
|
+
updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core/index.js").MySqlDateTimeBuilderInitial<"updated_at">>>>;
|
|
6
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core/index.js").MySqlDateTimeBuilderInitial<"created_at">>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = timestamps;
|
|
4
|
+
const createdAt_js_1 = require("./createdAt.js");
|
|
5
|
+
const updatedAt_js_1 = require("./updatedAt.js");
|
|
6
|
+
/**
|
|
7
|
+
* Defines non-null `createdAt` and `updatedAt` timestamp columns.
|
|
8
|
+
*/
|
|
9
|
+
function timestamps() {
|
|
10
|
+
return {
|
|
11
|
+
...(0, createdAt_js_1.default)(),
|
|
12
|
+
...(0, updatedAt_js_1.default)(),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a non-null `updatedAt` DATETIME(3) column. The database supplies the
|
|
3
|
+
* insert default, and Drizzle supplies UTC values for updates it executes.
|
|
4
|
+
* Requires MySQL 8.0.13+ for the UTC expression default.
|
|
5
|
+
*/
|
|
6
|
+
export default function updatedAt(): {
|
|
7
|
+
updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"updated_at">>>>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = updatedAt;
|
|
4
|
+
const drizzle_orm_1 = require("drizzle-orm");
|
|
5
|
+
const mysql_core_1 = require("drizzle-orm/mysql-core");
|
|
6
|
+
/**
|
|
7
|
+
* Defines a non-null `updatedAt` DATETIME(3) column. The database supplies the
|
|
8
|
+
* insert default, and Drizzle supplies UTC values for updates it executes.
|
|
9
|
+
* Requires MySQL 8.0.13+ for the UTC expression default.
|
|
10
|
+
*/
|
|
11
|
+
function updatedAt() {
|
|
12
|
+
return {
|
|
13
|
+
updatedAt: (0, mysql_core_1.datetime)("updated_at", { mode: "date", fsp: 3 })
|
|
14
|
+
.notNull()
|
|
15
|
+
.default((0, drizzle_orm_1.sql) `(utc_timestamp(3))`)
|
|
16
|
+
.$onUpdate(() => (0, drizzle_orm_1.sql) `utc_timestamp(3)`),
|
|
17
|
+
};
|
|
18
|
+
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a non-null `createdAt` DATETIME(3) column with a database default of
|
|
3
|
+
* `utc_timestamp(3)`, independent of the session timezone. Requires MySQL 8.0.13+.
|
|
4
|
+
*/
|
|
5
|
+
export default function createdAt(): {
|
|
6
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"created_at">>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { sql } from "drizzle-orm";
|
|
2
|
+
import { datetime } from "drizzle-orm/mysql-core";
|
|
3
|
+
/**
|
|
4
|
+
* Defines a non-null `createdAt` DATETIME(3) column with a database default of
|
|
5
|
+
* `utc_timestamp(3)`, independent of the session timezone. Requires MySQL 8.0.13+.
|
|
6
|
+
*/
|
|
7
|
+
export default function createdAt() {
|
|
8
|
+
return {
|
|
9
|
+
createdAt: datetime("created_at", { mode: "date", fsp: 3 })
|
|
10
|
+
.notNull()
|
|
11
|
+
.default(sql `(utc_timestamp(3))`),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a nullable `deletedAt` DATETIME(3) column named `deleted_at` for soft deletion.
|
|
3
|
+
* Has no default or automatic update. Set the timestamp when deleting a row.
|
|
4
|
+
* Pass a JavaScript Date through Drizzle, or supply UTC values in raw SQL.
|
|
5
|
+
*/
|
|
6
|
+
export default function deletedAt(): {
|
|
7
|
+
deletedAt: import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"deleted_at">;
|
|
8
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { datetime } from "drizzle-orm/mysql-core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines a nullable `deletedAt` DATETIME(3) column named `deleted_at` for soft deletion.
|
|
4
|
+
* Has no default or automatic update. Set the timestamp when deleting a row.
|
|
5
|
+
* Pass a JavaScript Date through Drizzle, or supply UTC values in raw SQL.
|
|
6
|
+
*/
|
|
7
|
+
export default function deletedAt() {
|
|
8
|
+
return {
|
|
9
|
+
deletedAt: datetime("deleted_at", { mode: "date", fsp: 3 }),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines an `id` primary-key column.
|
|
3
|
+
*
|
|
4
|
+
* Drizzle generates UUID values in the application through `$defaultFn`.
|
|
5
|
+
*/
|
|
6
|
+
export default function id(strategy?: "auto" | "uuid"): {
|
|
7
|
+
id: import("drizzle-orm").IsAutoincrement<import("drizzle-orm").HasDefault<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlIntBuilderInitial<"id">>>>>;
|
|
8
|
+
} | {
|
|
9
|
+
id: import("drizzle-orm").HasRuntimeDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlCharBuilderInitial<"id", [string, ...string[]], 36>>>>>;
|
|
10
|
+
};
|
package/dist/mysql/id.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { char, int } from "drizzle-orm/mysql-core";
|
|
2
|
+
/**
|
|
3
|
+
* Defines an `id` primary-key column.
|
|
4
|
+
*
|
|
5
|
+
* Drizzle generates UUID values in the application through `$defaultFn`.
|
|
6
|
+
*/
|
|
7
|
+
export default function id(strategy = "auto") {
|
|
8
|
+
switch (strategy) {
|
|
9
|
+
case "auto":
|
|
10
|
+
return { id: int("id").primaryKey().autoincrement() };
|
|
11
|
+
case "uuid":
|
|
12
|
+
return {
|
|
13
|
+
id: char("id", { length: 36 })
|
|
14
|
+
.primaryKey()
|
|
15
|
+
.$defaultFn(() => crypto.randomUUID()),
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines non-null `createdAt` and `updatedAt` timestamp columns.
|
|
3
|
+
*/
|
|
4
|
+
export default function timestamps(): {
|
|
5
|
+
updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"updated_at">>>>;
|
|
6
|
+
createdAt: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"created_at">>>;
|
|
7
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import createdAt from "./createdAt.js";
|
|
2
|
+
import updatedAt from "./updatedAt.js";
|
|
3
|
+
/**
|
|
4
|
+
* Defines non-null `createdAt` and `updatedAt` timestamp columns.
|
|
5
|
+
*/
|
|
6
|
+
export default function timestamps() {
|
|
7
|
+
return {
|
|
8
|
+
...createdAt(),
|
|
9
|
+
...updatedAt(),
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a non-null `updatedAt` DATETIME(3) column. The database supplies the
|
|
3
|
+
* insert default, and Drizzle supplies UTC values for updates it executes.
|
|
4
|
+
* Requires MySQL 8.0.13+ for the UTC expression default.
|
|
5
|
+
*/
|
|
6
|
+
export default function updatedAt(): {
|
|
7
|
+
updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/mysql-core").MySqlDateTimeBuilderInitial<"updated_at">>>>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { sql } from "drizzle-orm";
|
|
2
|
+
import { datetime } from "drizzle-orm/mysql-core";
|
|
3
|
+
/**
|
|
4
|
+
* Defines a non-null `updatedAt` DATETIME(3) column. The database supplies the
|
|
5
|
+
* insert default, and Drizzle supplies UTC values for updates it executes.
|
|
6
|
+
* Requires MySQL 8.0.13+ for the UTC expression default.
|
|
7
|
+
*/
|
|
8
|
+
export default function updatedAt() {
|
|
9
|
+
return {
|
|
10
|
+
updatedAt: datetime("updated_at", { mode: "date", fsp: 3 })
|
|
11
|
+
.notNull()
|
|
12
|
+
.default(sql `(utc_timestamp(3))`)
|
|
13
|
+
.$onUpdate(() => sql `utc_timestamp(3)`),
|
|
14
|
+
};
|
|
15
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@setupless/drizzle",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Small, typed helpers for defining Drizzle ORM schemas",
|
|
5
5
|
"homepage": "https://github.com/Setupless/drizzle#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -49,6 +49,16 @@
|
|
|
49
49
|
"types": "./dist/cjs/sqlite/index.d.ts",
|
|
50
50
|
"default": "./dist/cjs/sqlite/index.js"
|
|
51
51
|
}
|
|
52
|
+
},
|
|
53
|
+
"./mysql": {
|
|
54
|
+
"import": {
|
|
55
|
+
"types": "./dist/mysql/index.d.ts",
|
|
56
|
+
"default": "./dist/mysql/index.js"
|
|
57
|
+
},
|
|
58
|
+
"require": {
|
|
59
|
+
"types": "./dist/cjs/mysql/index.d.ts",
|
|
60
|
+
"default": "./dist/cjs/mysql/index.js"
|
|
61
|
+
}
|
|
52
62
|
}
|
|
53
63
|
},
|
|
54
64
|
"publishConfig": {
|