peta-orm 0.1.3 → 0.1.5
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 +27 -1
- package/bin/peta +3 -0
- package/dist/builder/query-builder.d.ts +2 -0
- package/dist/builder/query-builder.d.ts.map +1 -1
- package/dist/index-k44fz2f4.js +9062 -0
- package/dist/index-vnnmp06s.js +7534 -0
- package/dist/index-z1w83f81.js +4 -0
- package/dist/index.js +541 -17617
- package/dist/migrations/cli.d.ts +2 -0
- package/dist/migrations/cli.d.ts.map +1 -0
- package/dist/migrations/config.d.ts +5 -0
- package/dist/migrations/config.d.ts.map +1 -0
- package/dist/migrations/generator.d.ts +9 -0
- package/dist/migrations/generator.d.ts.map +1 -0
- package/dist/migrations/index.d.ts +5 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +2369 -0
- package/dist/migrations/runner.d.ts +12 -0
- package/dist/migrations/runner.d.ts.map +1 -0
- package/dist/migrations/types.d.ts +26 -0
- package/dist/migrations/types.d.ts.map +1 -0
- package/dist/paginator-haxz1c66.js +8 -0
- package/package.json +20 -10
package/README.md
CHANGED
|
@@ -217,6 +217,23 @@ await User.transaction(async (trx) => {
|
|
|
217
217
|
})
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
+
### Conditional Chaining
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
const posts = await Post.query()
|
|
224
|
+
.where("published", "=", published ?? 1)
|
|
225
|
+
.when(sort?.length, (q) => {
|
|
226
|
+
for (const s of sort) {
|
|
227
|
+
q.orderBy(s.replace(/^-/, ""), s.startsWith("-") ? "desc" : "asc")
|
|
228
|
+
}
|
|
229
|
+
return q
|
|
230
|
+
})
|
|
231
|
+
.unless(sort?.length, (q) => q.orderBy("createdAt", "desc"))
|
|
232
|
+
.execute()
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Both `.when(condition, fn)` and `.unless(condition, fn)` return the query builder, keeping the chain intact. If the condition is truthy, `.when()` applies the callback; `.unless()` does the opposite.
|
|
236
|
+
|
|
220
237
|
### Error Handling
|
|
221
238
|
|
|
222
239
|
Database constraint violations (unique, foreign key) are normalized into a `DatabaseError` across SQLite, PostgreSQL, and MySQL:
|
|
@@ -268,6 +285,13 @@ All self-contained (inline SQLite, run directly):
|
|
|
268
285
|
bun run examples/01-basic-setup.ts
|
|
269
286
|
bun run examples/04-relations.ts
|
|
270
287
|
bun run examples/07-soft-deletes.ts
|
|
288
|
+
|
|
289
|
+
# CLI — manage migrations
|
|
290
|
+
bun run bin/peta --help
|
|
291
|
+
bun run bin/peta migrate:init
|
|
292
|
+
bun run bin/peta migrate:generate CreateUsers
|
|
293
|
+
bun run bin/peta migrate:up
|
|
294
|
+
bun run bin/peta migrate:status
|
|
271
295
|
```
|
|
272
296
|
|
|
273
297
|
| # | Example | Topic |
|
|
@@ -292,6 +316,7 @@ bun run examples/07-soft-deletes.ts
|
|
|
292
316
|
| 18 | [advanced-queries](./examples/18-advanced-queries.ts) | groupBy/having, sum/avg/min/max, chunk, toSQL, updateMany |
|
|
293
317
|
| 19 | [collections-deep](./examples/19-collections-deep.ts) | full Collection + Paginator API |
|
|
294
318
|
| 20 | [advanced-relations](./examples/20-advanced-relations.ts) | HasManyThrough, polymorphic morphs, pivot extras |
|
|
319
|
+
| 21 | [migrations](./examples/21-migrations.ts) | MigrationRunner, MigrationGenerator, CLI |
|
|
295
320
|
|
|
296
321
|
---
|
|
297
322
|
|
|
@@ -302,12 +327,13 @@ bun run examples/07-soft-deletes.ts
|
|
|
302
327
|
| **Core** | `Peta`, `Model`, `$t`, `Collection` | `src/index.ts` |
|
|
303
328
|
| **Discovery** | `peta.discover(glob)`, `peta.registerAll(...models)` | `src/peta.ts` |
|
|
304
329
|
| **Columns** | `t.integer()`, `t.string()`, `t.email()`, `.min()`, `.max()`, `.nullable()`, `.default()` | `src/columns/column-types.ts` |
|
|
305
|
-
| **Builders** | `.where()`, `.with()`, `.paginate()`, `.chunk()`, `.sum()`, `.toSQL()` | `src/builder/query-builder.ts` |
|
|
330
|
+
| **Builders** | `.where()`, `.with()`, `.paginate()`, `.chunk()`, `.sum()`, `.toSQL()`, `.when()`, `.unless()` | `src/builder/query-builder.ts` |
|
|
306
331
|
| **Relations** | `HasMany`, `BelongsTo`, `HasOne`, `ManyToMany`, `HasManyThrough` | `src/relations/Relation.ts` |
|
|
307
332
|
| **Polymorphic** | `MorphTo`, `MorphMany`, `MorphOne` | `src/relations/Morph.ts` |
|
|
308
333
|
| **Hooks** | `HookManager`, `on()`, `off()`, `trigger()` | `src/hooks/lifecycle.ts` |
|
|
309
334
|
| **Paginator** | `Paginator`, `.paginate()` | `src/pagination/Paginator.ts` |
|
|
310
335
|
| **Errors** | `ModelNotFoundError`, `RelationNotFoundError`, `ValidationError`, `DatabaseError` | `src/errors/errors.ts` |
|
|
336
|
+
| **Migrations** | `MigrationRunner`, `MigrationGenerator`, `defineConfig`, CLI (`peta migrate:*`) | `src/migrations/index.ts` (import from `peta-orm/migrator`) |
|
|
311
337
|
|
|
312
338
|
---
|
|
313
339
|
|
package/bin/peta
ADDED
|
@@ -8,6 +8,8 @@ export declare class ModelQueryBuilder<T extends Model> {
|
|
|
8
8
|
get peta(): PetaLike;
|
|
9
9
|
clone(): ModelQueryBuilder<T>;
|
|
10
10
|
withoutGlobalScope(name: string): this;
|
|
11
|
+
when(condition: unknown, callback: (q: this) => this): this;
|
|
12
|
+
unless(condition: unknown, callback: (q: this) => this): this;
|
|
11
13
|
execute(): Promise<T[]>;
|
|
12
14
|
executeTakeFirst(): Promise<T | undefined>;
|
|
13
15
|
executeTakeFirstOrThrow(): Promise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/builder/query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,QAAQ,CAAA;AAExD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAA+B,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAI1E,qBAAa,iBAAiB,CAAC,CAAC,SAAS,KAAK;;gBAUhC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC;IAO3E,IAAI,IAAI,IAAI,QAAQ,CAEnB;IAED,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC;IAU7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/builder/query-builder.ts"],"names":[],"mappings":"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"}
|