@t4h.framework/orm 0.9.0 → 0.10.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/.ai/skills/framework-orm/SKILL.md +27 -6
- package/CHANGELOG.md +14 -0
- package/README.md +30 -1
- package/dist/activities/ORMDeleteActivity.d.ts +13 -0
- package/dist/activities/ORMDeleteActivity.d.ts.map +1 -0
- package/dist/activities/ORMDeleteActivity.js +18 -0
- package/dist/activities/ORMDeleteActivity.js.map +1 -0
- package/dist/activities/ORMUpsertActivity.d.ts +13 -0
- package/dist/activities/ORMUpsertActivity.d.ts.map +1 -0
- package/dist/activities/ORMUpsertActivity.js +16 -0
- package/dist/activities/ORMUpsertActivity.js.map +1 -0
- package/dist/claims/ORMClaim.d.ts +3 -1
- package/dist/claims/ORMClaim.d.ts.map +1 -1
- package/dist/claims/ORMClaim.js +14 -0
- package/dist/claims/ORMClaim.js.map +1 -1
- package/dist/models/ORM.d.ts +9 -0
- package/dist/models/ORM.d.ts.map +1 -1
- package/dist/models/ORM.js +37 -0
- package/dist/models/ORM.js.map +1 -1
- package/dist/orm.d.ts +2 -0
- package/dist/orm.d.ts.map +1 -1
- package/dist/orm.js +2 -0
- package/dist/orm.js.map +1 -1
- package/dist/typings/ORM.d.ts +15 -0
- package/dist/typings/ORM.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
name: framework-orm
|
|
3
3
|
description: >-
|
|
4
4
|
Guides correct use of @t4h.framework/orm in T4H Framework workflows: entity
|
|
5
|
-
decorators (@Entity, @Property, @Index), the ORM model (create, find, findOne,
|
|
6
|
-
exists), Ref and RefCollection, query operators, constraint validation, ORM
|
|
5
|
+
decorators (@Entity, @Property, @Index), the ORM model (create, upsert, find, findOne,
|
|
6
|
+
exists, delete), Ref and RefCollection, query operators, constraint validation, ORM
|
|
7
7
|
activities, and ORMClaim wiring. Use when defining database entities, persisting
|
|
8
8
|
or querying rows in workflows, implementing ORMClaim providers, testing ORM
|
|
9
9
|
workflows with TestWorkflowEnvironment, or working in packages/orm.
|
|
@@ -21,11 +21,12 @@ import {
|
|
|
21
21
|
ORMClaim, ConstraintError,
|
|
22
22
|
ORMCreateActivity, ORMFindActivity, ORMFindOneActivity,
|
|
23
23
|
ORMGetSnapshotActivity, ORMUpdateActivity, ORMRemoveActivity,
|
|
24
|
+
ORMDeleteActivity,
|
|
24
25
|
getEntityMetadata, getEntityTableName, getEntityProperties,
|
|
25
26
|
type EntityInsertData, type EntityPartialData, type FindWhere,
|
|
26
27
|
type SerializableCreateInput, type SerializableFindInput,
|
|
27
28
|
type SerializableGetSnapshotInput, type SerializableUpdateInput,
|
|
28
|
-
type SerializableRemoveInput,
|
|
29
|
+
type SerializableRemoveInput, type SerializableDeleteInput,
|
|
29
30
|
} from '@t4h.framework/orm'
|
|
30
31
|
```
|
|
31
32
|
|
|
@@ -146,6 +147,19 @@ const usersRef = await orm.create(User, [
|
|
|
146
147
|
|
|
147
148
|
Defaults are applied before persistence (`applyDefaultProperties`). Omitted fields with `@Property({ default })` are filled in.
|
|
148
149
|
|
|
150
|
+
### Upsert
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// Single row → Ref<T>; array → RefCollection<T>
|
|
154
|
+
const userRef = await orm.upsert(
|
|
155
|
+
User,
|
|
156
|
+
{ email: 'john@example.com', name: 'John', active: true },
|
|
157
|
+
{ conflictOn: ['email'] },
|
|
158
|
+
)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Rows are validated like `create`. If a row matching `conflictOn` (equality on every listed property) exists, only the passed fields are written; defaults apply on insert only. Every row must have a value for each `conflictOn` property (`ConstraintError` otherwise), and `conflictOn` cannot be empty. The call is a single `ORMUpsertActivity` backed by `ORMClaim.upsert`, which has a default (`find`, then `create` or `update`) — mock `upsert` in tests, or `find`/`create`/`update` if the mock extends `ORMClaim`. A retry after a crash updates instead of duplicating, but it is not atomic across workflows: concurrent writes of the same key may both insert.
|
|
162
|
+
|
|
149
163
|
### Find
|
|
150
164
|
|
|
151
165
|
```typescript
|
|
@@ -164,6 +178,10 @@ const usersRef = await orm.find(User, {
|
|
|
164
178
|
const exists = await orm.exists(User, {
|
|
165
179
|
where: { email: 'john@example.com' },
|
|
166
180
|
}) // boolean (delegates to findOne)
|
|
181
|
+
|
|
182
|
+
const deleted = await orm.delete(User, {
|
|
183
|
+
where: { active: false },
|
|
184
|
+
}) // number — deletes every match; `{}` empties the table
|
|
167
185
|
```
|
|
168
186
|
|
|
169
187
|
`findOne` activity internally calls `claim.find` with `limit: 1`.
|
|
@@ -206,7 +224,7 @@ Available operators: `$eq`, `$ne`, `$in`, `$nin`, `$not`, `$gt`, `$gte`, `$lt`,
|
|
|
206
224
|
|
|
207
225
|
## Constraint validation
|
|
208
226
|
|
|
209
|
-
Validation runs in the ORM library (`ORM.create` and `Ref.update`), **not** in `ORMClaim` implementations. Failures throw `ConstraintError`.
|
|
227
|
+
Validation runs in the ORM library (`ORM.create`, `ORM.upsert` and `Ref.update`), **not** in `ORMClaim` implementations. Failures throw `ConstraintError`.
|
|
210
228
|
|
|
211
229
|
### Create pipeline
|
|
212
230
|
|
|
@@ -255,10 +273,12 @@ abstract class ORMClaim<R extends SerializableRowRef> {
|
|
|
255
273
|
abstract getSnapshot(input: SerializableGetSnapshotInput<R>): SerializedRow | null | Promise<SerializedRow | null>
|
|
256
274
|
abstract update(input: SerializableUpdateInput<R>): void | Promise<void>
|
|
257
275
|
abstract remove(input: SerializableRemoveInput<R>): void | Promise<void>
|
|
276
|
+
upsert(input: SerializableUpsertInput): Promise<R[]> // default: find, then create/update; override for a native upsert
|
|
277
|
+
abstract delete(input: SerializableDeleteInput): number | Promise<number>
|
|
258
278
|
}
|
|
259
279
|
```
|
|
260
280
|
|
|
261
|
-
Activity inputs always include `orm` + `table`; create adds `data[]`, find
|
|
281
|
+
Activity inputs always include `orm` + `table`; create adds `data[]`, find and delete add `where` (find also takes optional `orderBy`/`limit`/`offset`), snapshot/update/remove add `ref` (opaque `Serializable` row handle). Update also includes partial `data`. Upsert adds `conflictOn` and `data: { insert, update }[]` — `insert` is the full row with defaults, `update` only the caller's fields; return refs in input order.
|
|
262
282
|
|
|
263
283
|
The `ORM`/`Ref` calls run inside a workflow (the runtime, or `TestWorkflowEnvironment` in tests, provides the reconciler context).
|
|
264
284
|
|
|
@@ -276,6 +296,7 @@ These are the **shipped, replay-safe activities** the `ORM`/`Ref` APIs drive for
|
|
|
276
296
|
| `ORMGetSnapshotActivity` | `SerializableGetSnapshotInput` | `SerializedRow \| null` |
|
|
277
297
|
| `ORMUpdateActivity` | `SerializableUpdateInput` | `void` |
|
|
278
298
|
| `ORMRemoveActivity` | `SerializableRemoveInput` | `void` |
|
|
299
|
+
| `ORMDeleteActivity` | `SerializableDeleteInput` | `number` |
|
|
279
300
|
|
|
280
301
|
Prefer **`ORM` / `Ref` APIs** in workflow code — they apply constraints and return typed handles. Use activities directly only for advanced/testing scenarios.
|
|
281
302
|
|
|
@@ -305,7 +326,7 @@ Ensure the runtime provides `ORMClaim`.
|
|
|
305
326
|
|
|
306
327
|
Test the **workflow** with `TestWorkflowEnvironment` from
|
|
307
328
|
`@t4h.framework/core/testing`, mocking `ORMClaim` — the single claim the ORM
|
|
308
|
-
activities resolve. Provide the methods your workflow triggers (`create`, `find`,
|
|
329
|
+
activities resolve. Provide the methods your workflow triggers (`create`, `upsert`, `find`,
|
|
309
330
|
`findOne`, `getSnapshot`, `update`, `remove`). See the **framework-workflow-testing**
|
|
310
331
|
skill for the harness API.
|
|
311
332
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @t4h.framework/orm
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#193](https://github.com/tech4humans-brasil/framework/pull/193) [`a0a1003`](https://github.com/tech4humans-brasil/framework/commit/a0a1003b719d54c727b211c07699fa4e3162f208) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - `orm.delete(entity, { where })` deletes every row matching the filter in a
|
|
8
|
+
single durable step and returns how many rows were deleted.
|
|
9
|
+
|
|
10
|
+
It is backed by the new `ORMDeleteActivity`, which calls the new abstract
|
|
11
|
+
`ORMClaim.delete(input: SerializableDeleteInput)`. Runtimes that
|
|
12
|
+
implement `ORMClaim` must add it; the dev claim already does. `where` takes the
|
|
13
|
+
same operators as `find`, and an empty `{}` matches every row.
|
|
14
|
+
|
|
15
|
+
- [#191](https://github.com/tech4humans-brasil/framework/pull/191) [`728372d`](https://github.com/tech4humans-brasil/framework/commit/728372dff010c5b1a91dd8a77f0fc2fa020a10f8) Thanks [@gusteycamargo](https://github.com/gusteycamargo)! - Adds `orm.upsert(entity, data, { conflictOn })`, which inserts rows or updates the ones matching `conflictOn`. It runs as the new `ORMUpsertActivity`, backed by `ORMClaim.upsert`. The claim method has a default built on `find`, `create` and `update`, so existing claims keep working; override it for a native upsert. Runtimes that register activities explicitly must register `ORMUpsertActivity`.
|
|
16
|
+
|
|
3
17
|
## 0.9.0
|
|
4
18
|
|
|
5
19
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -21,6 +21,10 @@ abstract class ORMClaim<R extends SerializableRowRef> {
|
|
|
21
21
|
public abstract getSnapshot(input: SerializableGetSnapshotInput<R>): SerializedRow | Promise<SerializedRow>
|
|
22
22
|
public abstract update(input: SerializableUpdateInput<R>): void | Promise<void>
|
|
23
23
|
public abstract remove(input: SerializableRemoveInput<R>): void | Promise<void>
|
|
24
|
+
public abstract delete(input: SerializableDeleteInput): number | Promise<number>
|
|
25
|
+
|
|
26
|
+
// Default: find, then create or update. Override for a native upsert.
|
|
27
|
+
public upsert(input: SerializableUpsertInput): Promise<R[]>
|
|
24
28
|
}
|
|
25
29
|
```
|
|
26
30
|
|
|
@@ -88,7 +92,7 @@ Projects that define entities with `@Property()` should enable:
|
|
|
88
92
|
|
|
89
93
|
## Constraints
|
|
90
94
|
|
|
91
|
-
Row validation runs in the ORM library (`ORM.create` and `Ref.update`), not in `ORMClaim` implementations. Failed checks throw `ConstraintError`.
|
|
95
|
+
Row validation runs in the ORM library (`ORM.create`, `ORM.upsert` and `Ref.update`), not in `ORMClaim` implementations. Failed checks throw `ConstraintError`.
|
|
92
96
|
|
|
93
97
|
### Pipeline
|
|
94
98
|
|
|
@@ -151,6 +155,19 @@ const usersRef = await orm.create(User, [
|
|
|
151
155
|
])
|
|
152
156
|
```
|
|
153
157
|
|
|
158
|
+
### Upsert
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// Inserts, or updates the row with the same email
|
|
162
|
+
const userRef = await orm.upsert(
|
|
163
|
+
User,
|
|
164
|
+
{ email: 'john@example.com', name: 'John', active: true },
|
|
165
|
+
{ conflictOn: ['email'] },
|
|
166
|
+
)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Pass an array for a batch (returns a `RefCollection`). On update only the fields you passed are written; defaults apply on insert only. The call runs as a single `ORMUpsertActivity`, so a retry after a crash updates instead of duplicating; it is not atomic across workflows, so concurrent writes of the same key may both insert.
|
|
170
|
+
|
|
154
171
|
### Finding records
|
|
155
172
|
|
|
156
173
|
```typescript
|
|
@@ -174,6 +191,16 @@ const exists = await orm.exists(User, {
|
|
|
174
191
|
})
|
|
175
192
|
```
|
|
176
193
|
|
|
194
|
+
### Deleting records
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
const deleted = await orm.delete(User, {
|
|
198
|
+
where: { active: false },
|
|
199
|
+
}) // number of deleted rows
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
`where` is required; an empty `{}` deletes every row.
|
|
203
|
+
|
|
177
204
|
## Ref
|
|
178
205
|
|
|
179
206
|
A `Ref<T>` is a reference to a single entity row. It supports `getSnapshot`, `update`, and `remove`:
|
|
@@ -226,6 +253,8 @@ The package includes the following activities (used internally by `ORM` and `Ref
|
|
|
226
253
|
- `ORMFindOneActivity` -- finds a single row
|
|
227
254
|
- `ORMGetSnapshotActivity` -- retrieves full entity data from a ref
|
|
228
255
|
- `ORMUpdateActivity` -- updates a row
|
|
256
|
+
- `ORMUpsertActivity` -- inserts or updates rows by `conflictOn` (via `ORMClaim.upsert`)
|
|
229
257
|
- `ORMRemoveActivity` -- removes a row
|
|
258
|
+
- `ORMDeleteActivity` -- deletes every row matching a `where`
|
|
230
259
|
|
|
231
260
|
All activities extend `SyncActivity` and use `ORMClaim` internally.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableDeleteInput } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMDeleteActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableDeleteInput
|
|
6
|
+
], SerializableDeleteInput, number, number> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableDeleteInput): SerializableDeleteInput;
|
|
9
|
+
toOutput(output: number): number;
|
|
10
|
+
run(input: SerializableDeleteInput): number | Promise<number>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMDeleteActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMDeleteActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMDeleteActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,qBAAqB,CAAA;AAGzD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAEhE,QAAA,MAAM,UAAU,eAAuC,CAAA;AAEvD,qBAAa,iBAAkB,SAAQ,YAAY,CACjD;IAAC,KAAK,EAAE,uBAAuB;CAAC,EAChC,uBAAuB,EACvB,MAAM,EACN,MAAM,CACP;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB;IAIhE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIhC,GAAG,CAAC,KAAK,EAAE,uBAAuB;CAG1C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SyncActivity, Claim } from '@t4h.framework/core';
|
|
2
|
+
import { ORMClaim } from '../claims/ORMClaim.js';
|
|
3
|
+
const CLAIMS_KEY = Symbol('orm-delete-activity-claims');
|
|
4
|
+
export class ORMDeleteActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({
|
|
6
|
+
orm: ORMClaim,
|
|
7
|
+
});
|
|
8
|
+
toInput(input) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
toOutput(output) {
|
|
12
|
+
return output;
|
|
13
|
+
}
|
|
14
|
+
run(input) {
|
|
15
|
+
return this[CLAIMS_KEY].orm.delete(input);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ORMDeleteActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMDeleteActivity.js","sourceRoot":"","sources":["../../src/activities/ORMDeleteActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGhD,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAEvD,MAAM,OAAO,iBAAkB,SAAQ,YAKtC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CAAC,KAA8B;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,QAAQ,CAAC,MAAc;QAC5B,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,GAAG,CAAC,KAA8B;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableUpsertInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMUpsertActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableUpsertInput
|
|
6
|
+
], SerializableUpsertInput, SerializableRowRef[], SerializableRowRef[]> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableUpsertInput): SerializableUpsertInput;
|
|
9
|
+
run(input: SerializableUpsertInput): Promise<import("@t4h.framework/core").Serializable[]>;
|
|
10
|
+
toOutput(output: SerializableRowRef[]): SerializableRowRef[];
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMUpsertActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMUpsertActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMUpsertActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,qBAAqB,CAAA;AAGzD,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,UAAU,eAAuC,CAAA;AAEvD,qBAAa,iBAAkB,SAAQ,YAAY,CACjD;IAAC,KAAK,EAAE,uBAAuB;CAAC,EAChC,uBAAuB,EACvB,kBAAkB,EAAE,EACpB,kBAAkB,EAAE,CACrB;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAA+B;IAErD,OAAO,CAAC,KAAK,EAAE,uBAAuB,GAAG,uBAAuB;IAIhE,GAAG,CAAC,KAAK,EAAE,uBAAuB;IAIlC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;CAGpE"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SyncActivity, Claim } from '@t4h.framework/core';
|
|
2
|
+
import { ORMClaim } from '../claims/ORMClaim.js';
|
|
3
|
+
const CLAIMS_KEY = Symbol('orm-upsert-activity-claims');
|
|
4
|
+
export class ORMUpsertActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({ orm: ORMClaim });
|
|
6
|
+
toInput(input) {
|
|
7
|
+
return input;
|
|
8
|
+
}
|
|
9
|
+
run(input) {
|
|
10
|
+
return this[CLAIMS_KEY].orm.upsert(input);
|
|
11
|
+
}
|
|
12
|
+
toOutput(output) {
|
|
13
|
+
return output;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ORMUpsertActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMUpsertActivity.js","sourceRoot":"","sources":["../../src/activities/ORMUpsertActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAMhD,MAAM,UAAU,GAAG,MAAM,CAAC,4BAA4B,CAAC,CAAA;AAEvD,MAAM,OAAO,iBAAkB,SAAQ,YAKtC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;IAErD,OAAO,CAAC,KAA8B;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,GAAG,CAAC,KAA8B;QACvC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;IAEM,QAAQ,CAAC,MAA4B;QAC1C,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import type { SerializableCreateInput, SerializableFindInput, SerializableGetSnapshotInput, SerializableRemoveInput, SerializableUpdateInput, SerializableRowRef, SerializedRow } from '../typings/ORM.js';
|
|
1
|
+
import type { SerializableCreateInput, SerializableFindInput, SerializableGetSnapshotInput, SerializableRemoveInput, SerializableDeleteInput, SerializableUpdateInput, SerializableUpsertInput, SerializableRowRef, SerializedRow } from '../typings/ORM.js';
|
|
2
2
|
export declare abstract class ORMClaim<R extends SerializableRowRef> {
|
|
3
3
|
abstract find(input: SerializableFindInput): R[] | Promise<R[]>;
|
|
4
4
|
abstract create(input: SerializableCreateInput): R[] | Promise<R[]>;
|
|
5
5
|
abstract getSnapshot(input: SerializableGetSnapshotInput<R>): SerializedRow | null | Promise<SerializedRow | null>;
|
|
6
6
|
abstract update(input: SerializableUpdateInput<R>): void | Promise<void>;
|
|
7
7
|
abstract remove(input: SerializableRemoveInput<R>): void | Promise<void>;
|
|
8
|
+
upsert({ orm, table, conflictOn, data, }: SerializableUpsertInput): Promise<R[]>;
|
|
9
|
+
abstract delete(input: SerializableDeleteInput): number | Promise<number>;
|
|
8
10
|
}
|
|
9
11
|
//# sourceMappingURL=ORMClaim.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORMClaim.d.ts","sourceRoot":"","sources":["../../src/claims/ORMClaim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAA;AAE1B,8BAAsB,QAAQ,CAAC,CAAC,SAAS,kBAAkB;aACzC,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAEtD,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAE1D,WAAW,CACzB,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACrC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;aAEvC,MAAM,CACpB,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;aAEP,MAAM,CACpB,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ORMClaim.d.ts","sourceRoot":"","sources":["../../src/claims/ORMClaim.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAA;AAE1B,8BAAsB,QAAQ,CAAC,CAAC,SAAS,kBAAkB;aACzC,IAAI,CAAC,KAAK,EAAE,qBAAqB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAEtD,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAE1D,WAAW,CACzB,KAAK,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACrC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;aAEvC,MAAM,CACpB,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;aAEP,MAAM,CACpB,KAAK,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAChC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAEV,MAAM,CAAC,EAClB,GAAG,EACH,KAAK,EACL,UAAU,EACV,IAAI,GACL,EAAE,uBAAuB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;aAwBzB,MAAM,CACpB,KAAK,EAAE,uBAAuB,GAC7B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAC5B"}
|
package/dist/claims/ORMClaim.js
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
1
|
export class ORMClaim {
|
|
2
|
+
async upsert({ orm, table, conflictOn, data, }) {
|
|
3
|
+
const refs = [];
|
|
4
|
+
for (const { insert, update } of data) {
|
|
5
|
+
const where = Object.fromEntries(conflictOn.map(key => [key, insert[key]]));
|
|
6
|
+
const [ref] = await this.find({ orm, table, where, limit: 1, offset: 0 });
|
|
7
|
+
if (ref === undefined) {
|
|
8
|
+
refs.push(...(await this.create({ orm, table, data: [insert] })));
|
|
9
|
+
continue;
|
|
10
|
+
}
|
|
11
|
+
await this.update({ orm, table, ref, data: update });
|
|
12
|
+
refs.push(ref);
|
|
13
|
+
}
|
|
14
|
+
return refs;
|
|
15
|
+
}
|
|
2
16
|
}
|
|
3
17
|
//# sourceMappingURL=ORMClaim.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORMClaim.js","sourceRoot":"","sources":["../../src/claims/ORMClaim.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ORMClaim.js","sourceRoot":"","sources":["../../src/claims/ORMClaim.ts"],"names":[],"mappings":"AAYA,MAAM,OAAgB,QAAQ;IAiBrB,KAAK,CAAC,MAAM,CAAC,EAClB,GAAG,EACH,KAAK,EACL,UAAU,EACV,IAAI,GACoB;QACxB,MAAM,IAAI,GAAQ,EAAE,CAAA;QAEpB,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAE,CAAC,CAAC,CAC3C,CAAA;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;YAEzE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAEjE,SAAQ;YACV,CAAC;YAED,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAEpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChB,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAKF"}
|
package/dist/models/ORM.d.ts
CHANGED
|
@@ -18,6 +18,12 @@ export interface FindOptions<T> extends FindOneOptions<T> {
|
|
|
18
18
|
limit?: number;
|
|
19
19
|
offset?: number;
|
|
20
20
|
}
|
|
21
|
+
export interface UpsertOptions<T> {
|
|
22
|
+
conflictOn: (keyof EntityData<T> & string)[];
|
|
23
|
+
}
|
|
24
|
+
export interface DeleteOptions<T> {
|
|
25
|
+
where: FindWhere<T>;
|
|
26
|
+
}
|
|
21
27
|
export declare class ORM extends SerializableClass {
|
|
22
28
|
readonly config: ORMConfig;
|
|
23
29
|
toSerializable(serializer: Serializer): Promise<{
|
|
@@ -44,8 +50,11 @@ export declare class ORM extends SerializableClass {
|
|
|
44
50
|
});
|
|
45
51
|
create<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>): Promise<Ref<T>>;
|
|
46
52
|
create<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>[]): Promise<RefCollection<T>>;
|
|
53
|
+
upsert<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>, options: UpsertOptions<T>): Promise<Ref<T>>;
|
|
54
|
+
upsert<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>[], options: UpsertOptions<T>): Promise<RefCollection<T>>;
|
|
47
55
|
findOne<T>(entity: EntityConstructor<T>, options: FindOneOptions<T>): Promise<Ref<T> | null>;
|
|
48
56
|
find<T>(entity: EntityConstructor<T>, options?: FindOptions<T>): Promise<RefCollection<T>>;
|
|
49
57
|
exists<T>(entity: EntityConstructor<T>, options: FindOneOptions<T>): Promise<boolean>;
|
|
58
|
+
delete<T>(entity: EntityConstructor<T>, options: DeleteOptions<T>): Promise<number>;
|
|
50
59
|
}
|
|
51
60
|
//# sourceMappingURL=ORM.d.ts.map
|
package/dist/models/ORM.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"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"}
|
package/dist/models/ORM.js
CHANGED
|
@@ -2,14 +2,19 @@ import { History, SerializableClass, } from '@t4h.framework/core';
|
|
|
2
2
|
import { Ref } from './Ref.js';
|
|
3
3
|
import { RefCollection } from './RefCollection.js';
|
|
4
4
|
import { ORMCreateActivity } from '../activities/ORMCreateActivity.js';
|
|
5
|
+
import { ORMDeleteActivity } from '../activities/ORMDeleteActivity.js';
|
|
5
6
|
import { ORMFindActivity } from '../activities/ORMFindActivity.js';
|
|
6
7
|
import { ORMFindOneActivity } from '../activities/ORMFindOneActivity.js';
|
|
8
|
+
import { ORMUpsertActivity } from '../activities/ORMUpsertActivity.js';
|
|
7
9
|
import { applyDefaultProperties } from '../constraints/apply-default-properties.js';
|
|
8
10
|
import { assertConstraints } from '../constraints/assert-constraints.js';
|
|
9
11
|
import { getEntityMetadata, getEntityTableName, } from '../decorators/metadata.js';
|
|
12
|
+
import { ConstraintError } from '../errors/ConstraintError.js';
|
|
10
13
|
const create = History.bind(ORMCreateActivity);
|
|
11
14
|
const find = History.bind(ORMFindActivity);
|
|
12
15
|
const findOne = History.bind(ORMFindOneActivity);
|
|
16
|
+
const upsert = History.bind(ORMUpsertActivity);
|
|
17
|
+
const deleteOp = History.bind(ORMDeleteActivity);
|
|
13
18
|
export class ORM extends SerializableClass {
|
|
14
19
|
config;
|
|
15
20
|
async toSerializable(serializer) {
|
|
@@ -67,6 +72,31 @@ export class ORM extends SerializableClass {
|
|
|
67
72
|
return new RefCollection(this, entity, result);
|
|
68
73
|
return new Ref(this, entity, result[0]);
|
|
69
74
|
}
|
|
75
|
+
async upsert(entity, data, options) {
|
|
76
|
+
const isBatch = Array.isArray(data);
|
|
77
|
+
const { conflictOn } = options;
|
|
78
|
+
if (!conflictOn.length)
|
|
79
|
+
throw new Error('Upsert conflictOn properties cannot be empty');
|
|
80
|
+
const updates = (isBatch ? data : [data]);
|
|
81
|
+
for (const row of updates)
|
|
82
|
+
for (const key of conflictOn)
|
|
83
|
+
if (row[key] === undefined)
|
|
84
|
+
throw new ConstraintError(`Property "${key}" is required to upsert`);
|
|
85
|
+
const inserts = applyDefaultProperties(updates, getEntityMetadata(entity));
|
|
86
|
+
await assertConstraints(entity, inserts);
|
|
87
|
+
const result = await upsert({
|
|
88
|
+
orm: this,
|
|
89
|
+
table: getEntityTableName(entity),
|
|
90
|
+
conflictOn,
|
|
91
|
+
data: inserts.map((insert, index) => ({
|
|
92
|
+
insert,
|
|
93
|
+
update: updates[index],
|
|
94
|
+
})),
|
|
95
|
+
});
|
|
96
|
+
if (isBatch)
|
|
97
|
+
return new RefCollection(this, entity, result);
|
|
98
|
+
return new Ref(this, entity, result[0]);
|
|
99
|
+
}
|
|
70
100
|
async findOne(entity, options) {
|
|
71
101
|
const ref = await findOne({
|
|
72
102
|
orm: this,
|
|
@@ -92,5 +122,12 @@ export class ORM extends SerializableClass {
|
|
|
92
122
|
async exists(entity, options) {
|
|
93
123
|
return (await this.findOne(entity, options)) !== null;
|
|
94
124
|
}
|
|
125
|
+
async delete(entity, options) {
|
|
126
|
+
return deleteOp({
|
|
127
|
+
orm: this,
|
|
128
|
+
table: getEntityTableName(entity),
|
|
129
|
+
where: options.where,
|
|
130
|
+
});
|
|
131
|
+
}
|
|
95
132
|
}
|
|
96
133
|
//# sourceMappingURL=ORM.js.map
|
package/dist/models/ORM.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORM.js","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,GAKlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"ORM.js","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,GAKlB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAU9D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;AAChD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAyBhD,MAAM,OAAO,GAAI,SAAQ,iBAAiB;IACxB,MAAM,CAAY;IAE3B,KAAK,CAAC,cAAc,CAAC,UAAsB;QAChD,OAAO;YACL,gBAAgB,EAAE,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAChE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5C,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACpC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC,CAAC;gBACH,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CACrD,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrB,IAAI;oBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;oBACzB,KAAK,EAAE,QAAQ,CAAC,KAAK;iBACtB,CAAC,CACH;aACF,CAAC,CAAC;SACJ,CAAA;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAC9B,YAAiE,EACjE,YAA0B;QAE1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,MAAM,EAAE;gBACN,gBAAgB,EAAE,CAAC,MAAM,YAAY,CACnC,YAAY,CAAC,gBAAgB,CAC9B,CAAW;gBACZ,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC7C,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,UAAU,EAAE,IAAI,GAAG,CACjB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAC7D;iBACF,CAAC,CAAC;aACJ;SACF,CAAC,CAAA;IACJ,CAAC;IAED,YAAY,MAGX;QACC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,MAAM;YAAE,OAAM;QAEnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClB,MAAM,EAAE;gBACN,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACnE;SACF,CAAC,CAAA;IACJ,CAAC;IAYM,KAAK,CAAC,MAAM,CACjB,MAA4B,EAC5B,IAAiD;QAEjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,IAAI,GAAG,sBAAsB,CACjC,OAAO,CAAC,CAAC,CAAE,IAAwB,CAAC,CAAC,CAAE,CAAC,IAAI,CAAqB,EACjE,iBAAiB,CAAC,MAAM,CAAC,CACP,CAAA;QAEpB,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAErC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACjC,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;QAEF,IAAI,OAAO;YAAE,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAE3D,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAA;IAC1C,CAAC;IAcM,KAAK,CAAC,MAAM,CACjB,MAA4B,EAC5B,IAAiD,EACjD,OAAyB;QAEzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;QAE9B,IAAI,CAAC,UAAU,CAAC,MAAM;YACpB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QAEjE,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAoB,CAAA;QAE5D,KAAK,MAAM,GAAG,IAAI,OAAO;YACvB,KAAK,MAAM,GAAG,IAAI,UAAU;gBAC1B,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS;oBACxB,MAAM,IAAI,eAAe,CAAC,aAAa,GAAG,yBAAyB,CAAC,CAAA;QAE1E,MAAM,OAAO,GAAG,sBAAsB,CACpC,OAAO,EACP,iBAAiB,CAAC,MAAM,CAAC,CACP,CAAA;QAEpB,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QAExC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACjC,UAAU;YACV,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpC,MAAM;gBACN,MAAM,EAAE,OAAO,CAAC,KAAK,CAAE;aACxB,CAAC,CAAC;SACJ,CAAC,CAAA;QAEF,IAAI,OAAO;YAAE,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAE3D,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAE,CAAC,CAAA;IAC1C,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,MAA4B,EAC5B,OAA0B;QAE1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;YACxB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,OAAO,EAAE,KAA0B;YAC1C,OAAO,EAAE,OAAO,EAAE,OAAqD;SACxE,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAA;QAErB,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAI,CAAC,CAAA;IACpC,CAAC;IAEM,KAAK,CAAC,IAAI,CACf,MAA4B,EAC5B,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;YACtB,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAsB;YAClD,OAAO,EAAE,OAAO,EAAE,OAAqD;YACvE,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAA;QAEF,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,MAA4B,EAC5B,OAA0B;QAE1B,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KAAK,IAAI,CAAA;IACvD,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,MAA4B,EAC5B,OAAyB;QAEzB,OAAO,QAAQ,CAAC;YACd,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC;YACjC,KAAK,EAAE,OAAO,CAAC,KAA0B;SAC1C,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/dist/orm.d.ts
CHANGED
|
@@ -10,8 +10,10 @@ export * from './models/RefCollection.js';
|
|
|
10
10
|
export * from './activities/ORMCreateActivity.js';
|
|
11
11
|
export * from './activities/ORMFindOneActivity.js';
|
|
12
12
|
export * from './activities/ORMRemoveActivity.js';
|
|
13
|
+
export * from './activities/ORMDeleteActivity.js';
|
|
13
14
|
export * from './activities/ORMFindActivity.js';
|
|
14
15
|
export * from './activities/ORMGetSnapshotActivity.js';
|
|
15
16
|
export * from './activities/ORMUpdateActivity.js';
|
|
17
|
+
export * from './activities/ORMUpsertActivity.js';
|
|
16
18
|
export * from './typings/ORM.js';
|
|
17
19
|
//# sourceMappingURL=orm.d.ts.map
|
package/dist/orm.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
package/dist/orm.js
CHANGED
|
@@ -10,8 +10,10 @@ export * from './models/RefCollection.js';
|
|
|
10
10
|
export * from './activities/ORMCreateActivity.js';
|
|
11
11
|
export * from './activities/ORMFindOneActivity.js';
|
|
12
12
|
export * from './activities/ORMRemoveActivity.js';
|
|
13
|
+
export * from './activities/ORMDeleteActivity.js';
|
|
13
14
|
export * from './activities/ORMFindActivity.js';
|
|
14
15
|
export * from './activities/ORMGetSnapshotActivity.js';
|
|
15
16
|
export * from './activities/ORMUpdateActivity.js';
|
|
17
|
+
export * from './activities/ORMUpsertActivity.js';
|
|
16
18
|
export * from './typings/ORM.js';
|
|
17
19
|
//# sourceMappingURL=orm.js.map
|
package/dist/orm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,6BAA6B,CAAA;AAE3C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AAExC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,2BAA2B,CAAA;AAEzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
package/dist/typings/ORM.d.ts
CHANGED
|
@@ -44,5 +44,20 @@ export type SerializableRemoveInput<R extends SerializableRowRef> = {
|
|
|
44
44
|
table: string;
|
|
45
45
|
ref: R;
|
|
46
46
|
};
|
|
47
|
+
export type SerializableUpsertRow = {
|
|
48
|
+
insert: SerializedRow;
|
|
49
|
+
update: SerializedRow;
|
|
50
|
+
};
|
|
51
|
+
export type SerializableUpsertInput = {
|
|
52
|
+
orm: ORM;
|
|
53
|
+
table: string;
|
|
54
|
+
conflictOn: string[];
|
|
55
|
+
data: SerializableUpsertRow[];
|
|
56
|
+
};
|
|
57
|
+
export type SerializableDeleteInput = {
|
|
58
|
+
orm: ORM;
|
|
59
|
+
table: string;
|
|
60
|
+
where: SerializableWhere;
|
|
61
|
+
};
|
|
47
62
|
export {};
|
|
48
63
|
//# sourceMappingURL=ORM.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/typings/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,CAAA;AAEpD,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAEjC,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI;KACjC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAC5B,KAAK,GACL,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACf,KAAK,GACL,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,CAAA;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpD,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACpD,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAEzD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAExD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAA;AAE7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AAE5D,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAA;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,aAAa,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,kBAAkB,IAAI;IACvE,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,CAAC,CAAA;CACP,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,IAAI;IAClE,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,CAAC,CAAA;IACN,IAAI,EAAE,aAAa,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,IAAI;IAClE,GAAG,EAAE,GAAG,CAAA;IACR,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,CAAC,CAAA;CACP,CAAA"}
|
|
1
|
+
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/typings/ORM.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@t4h.framework/orm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "ORM module for the T4H Framework",
|
|
5
5
|
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/orm",
|
|
6
6
|
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"reflect-metadata": "^0.2.2"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@t4h.framework/core": "^0.
|
|
38
|
+
"@t4h.framework/core": "^0.17.0",
|
|
39
39
|
"typescript": "^5.9.3",
|
|
40
40
|
"vitest": "^4.0.18"
|
|
41
41
|
},
|