peta-orm 0.1.0 → 0.1.2
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 -3
- package/dist/builder/delete-builder.d.ts.map +1 -1
- package/dist/builder/update-builder.d.ts.map +1 -1
- package/dist/errors/errors.d.ts +7 -0
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +137 -24
- package/dist/model/model.d.ts.map +1 -1
- package/dist/peta.d.ts +2 -1
- package/dist/peta.d.ts.map +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -53,7 +53,12 @@ database.run(`CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCRE
|
|
|
53
53
|
database.run(`CREATE TABLE IF NOT EXISTS posts (id INTEGER PRIMARY KEY AUTOINCREMENT, userId INTEGER NOT NULL, title TEXT NOT NULL)`)
|
|
54
54
|
|
|
55
55
|
const peta = new Peta({ dialect: new BunSqliteDialect({ database }) })
|
|
56
|
-
|
|
56
|
+
|
|
57
|
+
// Explicit registration (rest params, no array wrapper)
|
|
58
|
+
peta.registerAll(User, Post)
|
|
59
|
+
|
|
60
|
+
// Or auto-discover from directory (Bun only):
|
|
61
|
+
// await peta.discover("./src/**/*.model.ts")
|
|
57
62
|
|
|
58
63
|
export { peta, User, Post }
|
|
59
64
|
```
|
|
@@ -212,6 +217,31 @@ await User.transaction(async (trx) => {
|
|
|
212
217
|
})
|
|
213
218
|
```
|
|
214
219
|
|
|
220
|
+
### Error Handling
|
|
221
|
+
|
|
222
|
+
Database constraint violations (unique, foreign key) are normalized into a `DatabaseError` across SQLite, PostgreSQL, and MySQL:
|
|
223
|
+
|
|
224
|
+
```ts
|
|
225
|
+
import { DatabaseError } from "peta-orm"
|
|
226
|
+
|
|
227
|
+
try {
|
|
228
|
+
const post = await Post.insert({ slug: "my-post", title: "..." })
|
|
229
|
+
} catch (e) {
|
|
230
|
+
if (e instanceof DatabaseError && e.code === "UNIQUE_CONSTRAINT") {
|
|
231
|
+
// slug already taken — return 400
|
|
232
|
+
return c.json({ error: "Slug already taken" }, 400)
|
|
233
|
+
}
|
|
234
|
+
throw e
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
| `DatabaseError.code` | Meaning | Triggered by |
|
|
239
|
+
|---|---|---|
|
|
240
|
+
| `UNIQUE_CONSTRAINT` | Duplicate value on a unique column | `SQLITE_CONSTRAINT_UNIQUE`, PostgreSQL `23505`, MySQL `ER_DUP_ENTRY` |
|
|
241
|
+
| `FOREIGN_KEY_CONSTRAINT` | Referenced row doesn't exist | `SQLITE_CONSTRAINT_FOREIGNKEY`, PostgreSQL `23503`, MySQL `ER_NO_REFERENCED_ROW_2` |
|
|
242
|
+
|
|
243
|
+
The error also carries the `table` name and the original driver error via `cause`.
|
|
244
|
+
|
|
215
245
|
### Collection Utilities
|
|
216
246
|
|
|
217
247
|
```ts
|
|
@@ -250,13 +280,14 @@ bun run examples/07-soft-deletes.ts
|
|
|
250
280
|
| 06 | [hooks-timestamps](./examples/06-hooks-timestamps.ts) | beforeCreate, afterCreate, registerTimestamps |
|
|
251
281
|
| 07 | [soft-deletes](./examples/07-soft-deletes.ts) | $delete, $restore, $forceDelete, withTrashed |
|
|
252
282
|
| 08 | [collection-paginator](./examples/08-collection-paginator.ts) | Collection, Paginator |
|
|
253
|
-
| 09 | [hono-integration](./examples/09-hono-integration.ts) | Hono app
|
|
283
|
+
| 09 | [hono-integration](./examples/09-hono-integration.ts) | Hono app + error handling with `DatabaseError` |
|
|
254
284
|
| 10 | [elysia-integration](./examples/10-elysia-integration.ts) | Elysia app stub |
|
|
255
285
|
| 11 | [many-to-many](./examples/11-many-to-many.ts) | ManyToMany via pivot table |
|
|
256
286
|
| 12 | [transactions](./examples/12-transactions.ts) | Model.transaction(), rollback |
|
|
257
287
|
| 13 | [casting](./examples/13-casting.ts) | $casts, $hidden, $appends, accessors |
|
|
258
288
|
| 14 | [global-scopes](./examples/14-global-scopes.ts) | addGlobalScope(), withoutGlobalScope() |
|
|
259
289
|
| 15 | [batch](./examples/15-batch.ts) | insertMany, insertMany() |
|
|
290
|
+
| 16 | [discover](./examples/16-discover.ts) | peta.discover(), rest params |
|
|
260
291
|
|
|
261
292
|
---
|
|
262
293
|
|
|
@@ -265,13 +296,14 @@ bun run examples/07-soft-deletes.ts
|
|
|
265
296
|
| Module | Key exports | File |
|
|
266
297
|
|--------|-------------|------|
|
|
267
298
|
| **Core** | `Peta`, `Model`, `$t`, `Collection` | `src/index.ts` |
|
|
299
|
+
| **Discovery** | `peta.discover(glob)`, `peta.registerAll(...models)` | `src/peta.ts` |
|
|
268
300
|
| **Columns** | `t.integer()`, `t.string()`, `t.email()`, `.min()`, `.max()`, `.nullable()`, `.default()` | `src/columns/column-types.ts` |
|
|
269
301
|
| **Builders** | `.where()`, `.with()`, `.paginate()`, `.chunk()`, `.sum()`, `.toSQL()` | `src/builder/query-builder.ts` |
|
|
270
302
|
| **Relations** | `HasMany`, `BelongsTo`, `HasOne`, `ManyToMany`, `HasManyThrough` | `src/relations/Relation.ts` |
|
|
271
303
|
| **Polymorphic** | `MorphTo`, `MorphMany`, `MorphOne` | `src/relations/Morph.ts` |
|
|
272
304
|
| **Hooks** | `HookManager`, `on()`, `off()`, `trigger()` | `src/hooks/lifecycle.ts` |
|
|
273
305
|
| **Paginator** | `Paginator`, `.paginate()` | `src/pagination/Paginator.ts` |
|
|
274
|
-
| **Errors** | `ModelNotFoundError`, `RelationNotFoundError`, `ValidationError` | `src/errors/errors.ts` |
|
|
306
|
+
| **Errors** | `ModelNotFoundError`, `RelationNotFoundError`, `ValidationError`, `DatabaseError` | `src/errors/errors.ts` |
|
|
275
307
|
|
|
276
308
|
---
|
|
277
309
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete-builder.d.ts","sourceRoot":"","sources":["../../src/builder/delete-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"delete-builder.d.ts","sourceRoot":"","sources":["../../src/builder/delete-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,qBAAa,aAAa,CAAC,CAAC,SAAS,KAAK;;gBAI5B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAKrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASlD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-builder.d.ts","sourceRoot":"","sources":["../../src/builder/update-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,qBAAa,aAAa,CAAC,CAAC,SAAS,KAAK;;gBAI5B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAKrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"update-builder.d.ts","sourceRoot":"","sources":["../../src/builder/update-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAExC,qBAAa,aAAa,CAAC,CAAC,SAAS,KAAK;;gBAI5B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAKrE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAkC9E"}
|
package/dist/errors/errors.d.ts
CHANGED
|
@@ -14,4 +14,11 @@ export declare class ModelNotRegisteredError extends Error {
|
|
|
14
14
|
readonly modelClass?: string;
|
|
15
15
|
constructor(modelClass?: string);
|
|
16
16
|
}
|
|
17
|
+
export declare class DatabaseError extends Error {
|
|
18
|
+
readonly code: string;
|
|
19
|
+
readonly cause?: unknown;
|
|
20
|
+
readonly table?: string;
|
|
21
|
+
constructor(code: string, message: string, cause?: unknown, table?: string);
|
|
22
|
+
}
|
|
23
|
+
export declare function normalizeError(e: unknown, table?: string): DatabaseError | null;
|
|
17
24
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;gBAEjB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAOtD;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;gBAElB,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAOvD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,UAAU,CAAC,EAAE,MAAM;CAMhC"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,CAAA;AAE1B,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;gBAEjB,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAOtD;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;gBAElB,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAOvD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,UAAU,CAAC,EAAE,MAAM;CAMhC;AAeD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;gBAEX,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM;CAO3E;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAa/E"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { Column } from "./columns/column";
|
|
|
7
7
|
export type { ColumnTypes } from "./columns/column-types";
|
|
8
8
|
export { $t } from "./columns/column-types";
|
|
9
9
|
export type { Constraint, SchemaConfig } from "./columns/schema-config";
|
|
10
|
-
export { ModelNotFoundError, RelationNotFoundError, ValidationError } from "./errors/errors";
|
|
10
|
+
export { DatabaseError, ModelNotFoundError, RelationNotFoundError, ValidationError } from "./errors/errors";
|
|
11
11
|
export type { HookCallback, LifecycleEvent } from "./hooks/lifecycle";
|
|
12
12
|
export { HookManager } from "./hooks/lifecycle";
|
|
13
13
|
export type { ColumnData, ModelClass, RelationMap } from "./model/model";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAC3C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAA;AAC3C,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC3G,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AACrC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC1F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChE,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC7F,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -14,19 +14,7 @@ var __export = (target, all) => {
|
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
16
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
17
|
-
|
|
18
|
-
// src/builder/delete-builder.ts
|
|
19
|
-
class DeleteBuilder {
|
|
20
|
-
#modelClass;
|
|
21
|
-
#kysely;
|
|
22
|
-
constructor(modelClass, peta, kysely) {
|
|
23
|
-
this.#modelClass = modelClass;
|
|
24
|
-
this.#kysely = kysely ?? peta.kysely;
|
|
25
|
-
}
|
|
26
|
-
async execute(id) {
|
|
27
|
-
await this.#kysely.deleteFrom(this.#modelClass.table).where("id", "=", id).execute();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
17
|
+
var __require = import.meta.require;
|
|
30
18
|
|
|
31
19
|
// node_modules/@ark/util/out/arrays.js
|
|
32
20
|
var liftArray = (data) => Array.isArray(data) ? data : [data], spliterate = (arr, predicate) => {
|
|
@@ -8816,7 +8804,22 @@ var init_arktype_config = __esm(() => {
|
|
|
8816
8804
|
});
|
|
8817
8805
|
|
|
8818
8806
|
// src/errors/errors.ts
|
|
8819
|
-
|
|
8807
|
+
function normalizeError(e, table) {
|
|
8808
|
+
if (!e || typeof e !== "object")
|
|
8809
|
+
return null;
|
|
8810
|
+
const err = e;
|
|
8811
|
+
if (typeof err.code === "string") {
|
|
8812
|
+
if (UNIQUE_CODES.has(err.code)) {
|
|
8813
|
+
const col = typeof err.column === "string" ? ` on ${err.column}` : "";
|
|
8814
|
+
return new DatabaseError("UNIQUE_CONSTRAINT", `Unique constraint violation${col}`, e, table);
|
|
8815
|
+
}
|
|
8816
|
+
if (FOREIGN_KEY_CODES.has(err.code)) {
|
|
8817
|
+
return new DatabaseError("FOREIGN_KEY_CONSTRAINT", "Foreign key constraint violation", e, table);
|
|
8818
|
+
}
|
|
8819
|
+
}
|
|
8820
|
+
return null;
|
|
8821
|
+
}
|
|
8822
|
+
var ModelNotFoundError, RelationNotFoundError, ModelNotRegisteredError, UNIQUE_CODES, FOREIGN_KEY_CODES, DatabaseError;
|
|
8820
8823
|
var init_errors3 = __esm(() => {
|
|
8821
8824
|
init_arktype_config();
|
|
8822
8825
|
ModelNotFoundError = class ModelNotFoundError extends Error {
|
|
@@ -8850,6 +8853,52 @@ var init_errors3 = __esm(() => {
|
|
|
8850
8853
|
this.modelClass = modelClass;
|
|
8851
8854
|
}
|
|
8852
8855
|
};
|
|
8856
|
+
UNIQUE_CODES = new Set([
|
|
8857
|
+
"SQLITE_CONSTRAINT_UNIQUE",
|
|
8858
|
+
"SQLITE_CONSTRAINT_PRIMARYKEY",
|
|
8859
|
+
"23505",
|
|
8860
|
+
"ER_DUP_ENTRY"
|
|
8861
|
+
]);
|
|
8862
|
+
FOREIGN_KEY_CODES = new Set([
|
|
8863
|
+
"SQLITE_CONSTRAINT_FOREIGNKEY",
|
|
8864
|
+
"23503",
|
|
8865
|
+
"ER_NO_REFERENCED_ROW_2"
|
|
8866
|
+
]);
|
|
8867
|
+
DatabaseError = class DatabaseError extends Error {
|
|
8868
|
+
code;
|
|
8869
|
+
cause;
|
|
8870
|
+
table;
|
|
8871
|
+
constructor(code, message, cause, table) {
|
|
8872
|
+
super(message);
|
|
8873
|
+
this.name = "DatabaseError";
|
|
8874
|
+
this.code = code;
|
|
8875
|
+
this.cause = cause;
|
|
8876
|
+
this.table = table;
|
|
8877
|
+
}
|
|
8878
|
+
};
|
|
8879
|
+
});
|
|
8880
|
+
|
|
8881
|
+
// src/builder/delete-builder.ts
|
|
8882
|
+
class DeleteBuilder {
|
|
8883
|
+
#modelClass;
|
|
8884
|
+
#kysely;
|
|
8885
|
+
constructor(modelClass, peta, kysely) {
|
|
8886
|
+
this.#modelClass = modelClass;
|
|
8887
|
+
this.#kysely = kysely ?? peta.kysely;
|
|
8888
|
+
}
|
|
8889
|
+
async execute(id) {
|
|
8890
|
+
try {
|
|
8891
|
+
await this.#kysely.deleteFrom(this.#modelClass.table).where("id", "=", id).execute();
|
|
8892
|
+
} catch (e) {
|
|
8893
|
+
const normalized = normalizeError(e, this.#modelClass.table);
|
|
8894
|
+
if (normalized)
|
|
8895
|
+
throw normalized;
|
|
8896
|
+
throw e;
|
|
8897
|
+
}
|
|
8898
|
+
}
|
|
8899
|
+
}
|
|
8900
|
+
var init_delete_builder = __esm(() => {
|
|
8901
|
+
init_errors3();
|
|
8853
8902
|
});
|
|
8854
8903
|
|
|
8855
8904
|
// src/builder/eager-loader.ts
|
|
@@ -9481,7 +9530,15 @@ class UpdateBuilder {
|
|
|
9481
9530
|
}
|
|
9482
9531
|
}
|
|
9483
9532
|
}
|
|
9484
|
-
|
|
9533
|
+
let row;
|
|
9534
|
+
try {
|
|
9535
|
+
row = await this.#kysely.updateTable(this.#modelClass.table).set(data).where("id", "=", id).returningAll().executeTakeFirst();
|
|
9536
|
+
} catch (e) {
|
|
9537
|
+
const normalized = normalizeError(e, this.#modelClass.table);
|
|
9538
|
+
if (normalized)
|
|
9539
|
+
throw normalized;
|
|
9540
|
+
throw e;
|
|
9541
|
+
}
|
|
9485
9542
|
if (!row)
|
|
9486
9543
|
throw new ModelNotFoundError(this.#modelClass.table, id);
|
|
9487
9544
|
return this.#modelClass.hydrate(row);
|
|
@@ -9494,6 +9551,7 @@ var init_update_builder = __esm(() => {
|
|
|
9494
9551
|
|
|
9495
9552
|
// src/builder/index.ts
|
|
9496
9553
|
var init_builder = __esm(() => {
|
|
9554
|
+
init_delete_builder();
|
|
9497
9555
|
init_eager_loader();
|
|
9498
9556
|
init_insert_builder();
|
|
9499
9557
|
init_query_builder();
|
|
@@ -9873,7 +9931,14 @@ class Model {
|
|
|
9873
9931
|
}
|
|
9874
9932
|
}
|
|
9875
9933
|
const id = this.#attributes.id;
|
|
9876
|
-
|
|
9934
|
+
try {
|
|
9935
|
+
await peta.kysely.updateTable(table).set(dirty).where("id", "=", id).execute();
|
|
9936
|
+
} catch (e) {
|
|
9937
|
+
const normalized = normalizeError(e, table);
|
|
9938
|
+
if (normalized)
|
|
9939
|
+
throw normalized;
|
|
9940
|
+
throw e;
|
|
9941
|
+
}
|
|
9877
9942
|
this.#original = { ...this.#attributes };
|
|
9878
9943
|
await hooks.trigger("afterUpdate", this);
|
|
9879
9944
|
} else {
|
|
@@ -9891,7 +9956,15 @@ class Model {
|
|
|
9891
9956
|
}
|
|
9892
9957
|
}
|
|
9893
9958
|
}
|
|
9894
|
-
|
|
9959
|
+
let result;
|
|
9960
|
+
try {
|
|
9961
|
+
result = await peta.kysely.insertInto(table).values(this.#attributes).executeTakeFirst();
|
|
9962
|
+
} catch (e) {
|
|
9963
|
+
const normalized = normalizeError(e, table);
|
|
9964
|
+
if (normalized)
|
|
9965
|
+
throw normalized;
|
|
9966
|
+
throw e;
|
|
9967
|
+
}
|
|
9895
9968
|
const insertId = result?.insertId;
|
|
9896
9969
|
if (insertId !== undefined) {
|
|
9897
9970
|
this.#attributes.id = Number(insertId);
|
|
@@ -9914,7 +9987,14 @@ class Model {
|
|
|
9914
9987
|
if (id === undefined)
|
|
9915
9988
|
throw new ModelNotFoundError(table);
|
|
9916
9989
|
await hooks.trigger("beforeDelete", this);
|
|
9917
|
-
|
|
9990
|
+
try {
|
|
9991
|
+
await peta.kysely.deleteFrom(table).where("id", "=", id).execute();
|
|
9992
|
+
} catch (e) {
|
|
9993
|
+
const normalized = normalizeError(e, table);
|
|
9994
|
+
if (normalized)
|
|
9995
|
+
throw normalized;
|
|
9996
|
+
throw e;
|
|
9997
|
+
}
|
|
9918
9998
|
this.#exists = false;
|
|
9919
9999
|
await hooks.trigger("afterDelete", this);
|
|
9920
10000
|
}
|
|
@@ -10001,7 +10081,15 @@ class Model {
|
|
|
10001
10081
|
const results = [];
|
|
10002
10082
|
for (const data of dataArray) {
|
|
10003
10083
|
const instance = this.hydrate(data);
|
|
10004
|
-
|
|
10084
|
+
let result;
|
|
10085
|
+
try {
|
|
10086
|
+
result = await trx.insertInto(this.table).values(data).executeTakeFirst();
|
|
10087
|
+
} catch (e) {
|
|
10088
|
+
const normalized = normalizeError(e, this.table);
|
|
10089
|
+
if (normalized)
|
|
10090
|
+
throw normalized;
|
|
10091
|
+
throw e;
|
|
10092
|
+
}
|
|
10005
10093
|
const insertId = result?.insertId;
|
|
10006
10094
|
if (insertId !== undefined) {
|
|
10007
10095
|
instance.set("id", Number(insertId));
|
|
@@ -17538,6 +17626,11 @@ function validateTransactionSettings(settings) {
|
|
|
17538
17626
|
}
|
|
17539
17627
|
|
|
17540
17628
|
// src/peta.ts
|
|
17629
|
+
import { resolve } from "path";
|
|
17630
|
+
function isModelClass(value2) {
|
|
17631
|
+
return typeof value2 === "function" && typeof value2.table === "string" && value2.table.length > 0 && typeof value2.columns === "object" && value2.columns !== null;
|
|
17632
|
+
}
|
|
17633
|
+
|
|
17541
17634
|
class Peta {
|
|
17542
17635
|
kysely;
|
|
17543
17636
|
#models = new Map;
|
|
@@ -17551,11 +17644,30 @@ class Peta {
|
|
|
17551
17644
|
this.#models.set(table, modelClass);
|
|
17552
17645
|
modelClass.peta = this;
|
|
17553
17646
|
}
|
|
17554
|
-
registerAll(classes) {
|
|
17647
|
+
registerAll(...classes) {
|
|
17648
|
+
if (classes.length === 1 && Array.isArray(classes[0])) {
|
|
17649
|
+
classes = classes[0];
|
|
17650
|
+
}
|
|
17555
17651
|
for (const cls of classes) {
|
|
17556
17652
|
this.register(cls);
|
|
17557
17653
|
}
|
|
17558
17654
|
}
|
|
17655
|
+
async discover(pattern2) {
|
|
17656
|
+
const bunModule = await Promise.resolve(globalThis.Bun).catch(() => null);
|
|
17657
|
+
const Glob = bunModule?.Glob ?? null;
|
|
17658
|
+
if (!Glob) {
|
|
17659
|
+
throw new Error("peta.discover() requires Bun \u2014 use peta.registerAll() directly in other runtimes");
|
|
17660
|
+
}
|
|
17661
|
+
for await (const file of new Glob(pattern2).scan()) {
|
|
17662
|
+
const abs = resolve(file);
|
|
17663
|
+
const mod = await import(abs);
|
|
17664
|
+
for (const value2 of Object.values(mod)) {
|
|
17665
|
+
if (isModelClass(value2)) {
|
|
17666
|
+
this.register(value2);
|
|
17667
|
+
}
|
|
17668
|
+
}
|
|
17669
|
+
}
|
|
17670
|
+
}
|
|
17559
17671
|
getModel(table) {
|
|
17560
17672
|
return this.#models.get(table);
|
|
17561
17673
|
}
|
|
@@ -17575,7 +17687,7 @@ class Peta {
|
|
|
17575
17687
|
}
|
|
17576
17688
|
// src/relations/relation.ts
|
|
17577
17689
|
var thunkCache = new WeakMap;
|
|
17578
|
-
function
|
|
17690
|
+
function resolve2(thunk) {
|
|
17579
17691
|
let cls = thunkCache.get(thunk);
|
|
17580
17692
|
if (!cls) {
|
|
17581
17693
|
cls = thunk();
|
|
@@ -17610,7 +17722,7 @@ class Relation {
|
|
|
17610
17722
|
this.#relatedThunk = relatedThunk;
|
|
17611
17723
|
}
|
|
17612
17724
|
get relatedModelClass() {
|
|
17613
|
-
return
|
|
17725
|
+
return resolve2(this.#relatedThunk);
|
|
17614
17726
|
}
|
|
17615
17727
|
}
|
|
17616
17728
|
|
|
@@ -17798,13 +17910,13 @@ class HasManyThrough extends Relation {
|
|
|
17798
17910
|
this.#options = options;
|
|
17799
17911
|
}
|
|
17800
17912
|
get foreignKey() {
|
|
17801
|
-
return this.#options.foreignKey ?? guessForeignKey(
|
|
17913
|
+
return this.#options.foreignKey ?? guessForeignKey(resolve2(this.#throughThunk));
|
|
17802
17914
|
}
|
|
17803
17915
|
get localKey() {
|
|
17804
17916
|
return this.#options.localKey ?? "id";
|
|
17805
17917
|
}
|
|
17806
17918
|
get throughModelClass() {
|
|
17807
|
-
return
|
|
17919
|
+
return resolve2(this.#throughThunk);
|
|
17808
17920
|
}
|
|
17809
17921
|
get throughForeignKey() {
|
|
17810
17922
|
return this.#options.throughForeignKey ?? guessForeignKey(this.relatedModelClass);
|
|
@@ -17970,6 +18082,7 @@ export {
|
|
|
17970
18082
|
HasMany,
|
|
17971
18083
|
EagerLoader,
|
|
17972
18084
|
DeleteBuilder,
|
|
18085
|
+
DatabaseError,
|
|
17973
18086
|
Column,
|
|
17974
18087
|
Collection,
|
|
17975
18088
|
BelongsTo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
package/dist/peta.d.ts
CHANGED
|
@@ -9,7 +9,8 @@ export declare class Peta implements PetaLike {
|
|
|
9
9
|
readonly kysely: Kysely<any>;
|
|
10
10
|
constructor(config: PetaConfig);
|
|
11
11
|
register(modelClass: ModelClass): void;
|
|
12
|
-
registerAll(classes: ModelClass[]): void;
|
|
12
|
+
registerAll(...classes: ModelClass[]): void;
|
|
13
|
+
discover(pattern: string): Promise<void>;
|
|
13
14
|
getModel(table: string): ModelClass | undefined;
|
|
14
15
|
get models(): Map<string, ModelClass>;
|
|
15
16
|
transaction<T>(fn: (kysely: Kysely<any>) => Promise<T>): Promise<T>;
|
package/dist/peta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peta.d.ts","sourceRoot":"","sources":["../src/peta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"peta.d.ts","sourceRoot":"","sources":["../src/peta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAA;CACjB;AAYD,qBAAa,IAAK,YAAW,QAAQ;;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;gBAGhB,MAAM,EAAE,UAAU;IAI9B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAOtC,WAAW,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;IASrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI/C,IAAI,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAEpC;IAEK,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAInE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAO/B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export type ModelId = number & {
|
|
|
7
7
|
export interface PetaLike {
|
|
8
8
|
readonly kysely: Kysely<any>;
|
|
9
9
|
register(modelClass: ModelClass): void;
|
|
10
|
-
registerAll(classes: ModelClass[]): void;
|
|
10
|
+
registerAll(...classes: ModelClass[]): void;
|
|
11
|
+
discover(pattern: string): Promise<void>;
|
|
11
12
|
getModel(table: string): ModelClass | undefined;
|
|
12
13
|
readonly models: Map<string, ModelClass>;
|
|
13
14
|
transaction<T>(fn: (kysely: Kysely<any>) => Promise<T>): Promise<T>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAClC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IACtC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACxC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE/C,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAA;AAClC,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAErD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAA;IACtC,WAAW,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACxC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "peta-orm",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.2",
|
|
6
6
|
"description": "ORM for Bun, built on Kysely",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"module": "src/index.ts",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
26
|
"kysely": "^0.27.0",
|
|
27
|
-
"typescript": "^
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
"typescript": "^6.0.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@biomejs/biome": "^2.4.16",
|
|
31
|
+
"@types/bun": "latest",
|
|
32
|
+
"kysely": "^0.27.0",
|
|
33
|
+
"kysely-bun-sqlite": "^0.4.0",
|
|
34
|
+
"typescript": "^6.0.0"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"test": "bun test",
|