@t4h.framework/orm 0.0.0-experimental-c0d4325
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/LICENSE +21 -0
- package/README.md +174 -0
- package/dist/activities/ORMCreateActivity.d.ts +13 -0
- package/dist/activities/ORMCreateActivity.d.ts.map +1 -0
- package/dist/activities/ORMCreateActivity.js +16 -0
- package/dist/activities/ORMCreateActivity.js.map +1 -0
- package/dist/activities/ORMFindActivity.d.ts +13 -0
- package/dist/activities/ORMFindActivity.d.ts.map +1 -0
- package/dist/activities/ORMFindActivity.js +18 -0
- package/dist/activities/ORMFindActivity.js.map +1 -0
- package/dist/activities/ORMFindOneActivity.d.ts +15 -0
- package/dist/activities/ORMFindOneActivity.d.ts.map +1 -0
- package/dist/activities/ORMFindOneActivity.js +26 -0
- package/dist/activities/ORMFindOneActivity.js.map +1 -0
- package/dist/activities/ORMGetSnapshotActivity.d.ts +13 -0
- package/dist/activities/ORMGetSnapshotActivity.d.ts.map +1 -0
- package/dist/activities/ORMGetSnapshotActivity.js +18 -0
- package/dist/activities/ORMGetSnapshotActivity.js.map +1 -0
- package/dist/activities/ORMRemoveActivity.d.ts +13 -0
- package/dist/activities/ORMRemoveActivity.d.ts.map +1 -0
- package/dist/activities/ORMRemoveActivity.js +16 -0
- package/dist/activities/ORMRemoveActivity.js.map +1 -0
- package/dist/activities/ORMUpdateActivity.d.ts +13 -0
- package/dist/activities/ORMUpdateActivity.d.ts.map +1 -0
- package/dist/activities/ORMUpdateActivity.js +16 -0
- package/dist/activities/ORMUpdateActivity.js.map +1 -0
- package/dist/claims/ORMClaim.d.ts +9 -0
- package/dist/claims/ORMClaim.d.ts.map +1 -0
- package/dist/claims/ORMClaim.js +3 -0
- package/dist/claims/ORMClaim.js.map +1 -0
- package/dist/decorators/Entity.d.ts +5 -0
- package/dist/decorators/Entity.d.ts.map +1 -0
- package/dist/decorators/Entity.js +8 -0
- package/dist/decorators/Entity.js.map +1 -0
- package/dist/decorators/Property.d.ts +4 -0
- package/dist/decorators/Property.d.ts.map +1 -0
- package/dist/decorators/Property.js +11 -0
- package/dist/decorators/Property.js.map +1 -0
- package/dist/decorators/metadata.d.ts +15 -0
- package/dist/decorators/metadata.d.ts.map +1 -0
- package/dist/decorators/metadata.js +17 -0
- package/dist/decorators/metadata.js.map +1 -0
- package/dist/models/ORM.d.ts +31 -0
- package/dist/models/ORM.d.ts.map +1 -0
- package/dist/models/ORM.js +61 -0
- package/dist/models/ORM.js.map +1 -0
- package/dist/models/Ref.d.ts +12 -0
- package/dist/models/Ref.d.ts.map +1 -0
- package/dist/models/Ref.js +44 -0
- package/dist/models/Ref.js.map +1 -0
- package/dist/models/RefCollection.d.ts +15 -0
- package/dist/models/RefCollection.d.ts.map +1 -0
- package/dist/models/RefCollection.js +29 -0
- package/dist/models/RefCollection.js.map +1 -0
- package/dist/orm.d.ts +14 -0
- package/dist/orm.d.ts.map +1 -0
- package/dist/orm.js +14 -0
- package/dist/orm.js.map +1 -0
- package/dist/typings/FindWhere.d.ts +37 -0
- package/dist/typings/FindWhere.d.ts.map +1 -0
- package/dist/typings/FindWhere.js +2 -0
- package/dist/typings/FindWhere.js.map +1 -0
- package/dist/typings/ORM.d.ts +48 -0
- package/dist/typings/ORM.d.ts.map +1 -0
- package/dist/typings/ORM.js +2 -0
- package/dist/typings/ORM.js.map +1 -0
- package/package.json +48 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Tech four humans
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# @t4h.framework/orm
|
|
2
|
+
|
|
3
|
+
ORM activities, claim, and models for database operations within workflows.
|
|
4
|
+
|
|
5
|
+
## Claim
|
|
6
|
+
|
|
7
|
+
### ORMClaim
|
|
8
|
+
|
|
9
|
+
Abstract dependency for database operations. The runtime must provide a concrete implementation (e.g. PostgreSQL, SQLite).
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { ORMClaim } from '@t4h.framework/orm'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Interface
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
abstract class ORMClaim<R extends SerializableRowRef> {
|
|
19
|
+
public abstract find(input: SerializableFindInput): R[] | Promise<R[]>
|
|
20
|
+
public abstract create(input: SerializableCreateInput): R[] | Promise<R[]>
|
|
21
|
+
public abstract getSnapshot(input: SerializableGetSnapshotInput<R>): SerializedRow | Promise<SerializedRow>
|
|
22
|
+
public abstract update(input: SerializableUpdateInput<R>): void | Promise<void>
|
|
23
|
+
public abstract remove(input: SerializableRemoveInput<R>): void | Promise<void>
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Defining Entities
|
|
28
|
+
|
|
29
|
+
Use the `@Entity` and `@Property` decorators to define database entities:
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
import { Entity, Property } from '@t4h.framework/orm'
|
|
33
|
+
|
|
34
|
+
@Entity({ tableName: 'users' })
|
|
35
|
+
class User {
|
|
36
|
+
@Property({ type: 'uuid' })
|
|
37
|
+
public id!: string
|
|
38
|
+
|
|
39
|
+
@Property({ type: 'string' })
|
|
40
|
+
public name!: string
|
|
41
|
+
|
|
42
|
+
@Property({ type: 'string', unique: true })
|
|
43
|
+
public email!: string
|
|
44
|
+
|
|
45
|
+
@Property({ type: 'boolean', default: true })
|
|
46
|
+
public active!: boolean
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### @Entity options
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
@Entity({ tableName?: string })
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### @Property options
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
@Property({
|
|
60
|
+
type?: string,
|
|
61
|
+
nullable?: boolean,
|
|
62
|
+
unique?: boolean,
|
|
63
|
+
default?: any,
|
|
64
|
+
})
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## ORM Model
|
|
68
|
+
|
|
69
|
+
The `ORM` class provides a high-level API for database operations. It wraps the underlying activities (`ORMCreateActivity`, `ORMFindActivity`, `ORMFindOneActivity`).
|
|
70
|
+
|
|
71
|
+
### Creating records
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
import { ORM } from '@t4h.framework/orm'
|
|
75
|
+
|
|
76
|
+
const orm = new ORM({
|
|
77
|
+
connectionString: 'postgresql://localhost:5432/mydb',
|
|
78
|
+
entities: [User],
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
const userRef = await orm.create(User, {
|
|
82
|
+
name: 'John',
|
|
83
|
+
email: 'john@example.com',
|
|
84
|
+
active: true,
|
|
85
|
+
})
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Batch create
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
const usersRef = await orm.create(User, [
|
|
92
|
+
{ name: 'Alice', email: 'alice@example.com', active: true },
|
|
93
|
+
{ name: 'Bob', email: 'bob@example.com', active: true },
|
|
94
|
+
])
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Finding records
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
const userRef = await orm.findOne(User, {
|
|
101
|
+
where: { email: 'john@example.com' },
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
const usersRef = await orm.find(User, {
|
|
105
|
+
where: { active: true },
|
|
106
|
+
orderBy: { name: 'asc' },
|
|
107
|
+
limit: 10,
|
|
108
|
+
offset: 0,
|
|
109
|
+
})
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Checking existence
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
const exists = await orm.exists(User, {
|
|
116
|
+
where: { email: 'john@example.com' },
|
|
117
|
+
})
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Ref
|
|
121
|
+
|
|
122
|
+
A `Ref<T>` is a reference to a single entity row. It supports `getSnapshot`, `update`, and `remove`:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
const userRef = await orm.findOne(User, { where: { id: '...' } })
|
|
126
|
+
|
|
127
|
+
const user = await userRef.getSnapshot() // returns the full entity
|
|
128
|
+
await userRef.update({ name: 'Jane' }) // partial update
|
|
129
|
+
await userRef.remove() // delete
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## RefCollection
|
|
133
|
+
|
|
134
|
+
A `RefCollection<T>` is a collection of entity references returned by `find` or batch `create`:
|
|
135
|
+
|
|
136
|
+
```typescript
|
|
137
|
+
const usersRef = await orm.find(User, { where: { active: true } })
|
|
138
|
+
|
|
139
|
+
const users = usersRef.toArray() // Ref<User>[]
|
|
140
|
+
usersRef.forEach(ref => { /* ... */ })
|
|
141
|
+
usersRef.map(ref => ref.getSnapshot())
|
|
142
|
+
usersRef.filter(ref => { /* ... */ })
|
|
143
|
+
usersRef.at(0) // Ref<User> | undefined
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Query Operators
|
|
147
|
+
|
|
148
|
+
The `where` clause supports the following operators:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
await orm.find(User, {
|
|
152
|
+
where: {
|
|
153
|
+
name: 'John', // $eq (implicit)
|
|
154
|
+
active: { $ne: false }, // not equal
|
|
155
|
+
email: { $like: '%@example%' }, // LIKE
|
|
156
|
+
age: { $gte: 18, $lt: 65 }, // range
|
|
157
|
+
},
|
|
158
|
+
})
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Available operators: `$eq`, `$ne`, `$in`, `$nin`, `$not`, `$gt`, `$gte`, `$lt`, `$lte`, `$like`, `$ilike`, `$and`, `$or`.
|
|
162
|
+
|
|
163
|
+
## Activities
|
|
164
|
+
|
|
165
|
+
The package includes the following activities (used internally by `ORM` and `Ref`):
|
|
166
|
+
|
|
167
|
+
- `ORMCreateActivity` -- creates one or more rows
|
|
168
|
+
- `ORMFindActivity` -- finds multiple rows
|
|
169
|
+
- `ORMFindOneActivity` -- finds a single row
|
|
170
|
+
- `ORMGetSnapshotActivity` -- retrieves full entity data from a ref
|
|
171
|
+
- `ORMUpdateActivity` -- updates a row
|
|
172
|
+
- `ORMRemoveActivity` -- removes a row
|
|
173
|
+
|
|
174
|
+
All activities extend `SyncActivity` and use `ORMClaim` internally.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableCreateInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMCreateActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableCreateInput
|
|
6
|
+
], SerializableCreateInput, SerializableRowRef[], SerializableRowRef[]> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableCreateInput): SerializableCreateInput;
|
|
9
|
+
run(input: SerializableCreateInput): import("@t4h.framework/core").Serializable[] | Promise<import("@t4h.framework/core").Serializable[]>;
|
|
10
|
+
toOutput(output: SerializableRowRef[]): SerializableRowRef[];
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMCreateActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMCreateActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMCreateActivity.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-create-activity-claims');
|
|
4
|
+
export class ORMCreateActivity 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.create(input);
|
|
11
|
+
}
|
|
12
|
+
toOutput(output) {
|
|
13
|
+
return output;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ORMCreateActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMCreateActivity.js","sourceRoot":"","sources":["../../src/activities/ORMCreateActivity.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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableFindInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMFindActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableFindInput
|
|
6
|
+
], SerializableFindInput, SerializableRowRef[], SerializableRowRef[]> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableFindInput): SerializableFindInput;
|
|
9
|
+
toOutput(output: SerializableRowRef[]): SerializableRowRef[];
|
|
10
|
+
run(input: SerializableFindInput): import("@t4h.framework/core").Serializable[] | Promise<import("@t4h.framework/core").Serializable[]>;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMFindActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMFindActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMFindActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,qBAAqB,CAAA;AAGzD,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,UAAU,eAAqC,CAAA;AAErD,qBAAa,eAAgB,SAAQ,YAAY,CAC/C;IAAC,KAAK,EAAE,qBAAqB;CAAC,EAC9B,qBAAqB,EACrB,kBAAkB,EAAE,EACpB,kBAAkB,EAAE,CACrB;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB;IAI5D,QAAQ,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,kBAAkB,EAAE;IAI5D,GAAG,CAAC,KAAK,EAAE,qBAAqB;CAGxC"}
|
|
@@ -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-find-activity-claims');
|
|
4
|
+
export class ORMFindActivity 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.find(input);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ORMFindActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMFindActivity.js","sourceRoot":"","sources":["../../src/activities/ORMFindActivity.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,0BAA0B,CAAC,CAAA;AAErD,MAAM,OAAO,eAAgB,SAAQ,YAKpC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CAAC,KAA4B;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,QAAQ,CAAC,MAA4B;QAC1C,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,GAAG,CAAC,KAA4B;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableFindInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMFindOneActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableFindInput
|
|
6
|
+
], SerializableFindInput, SerializableRowRef | null, SerializableRowRef | null> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableFindInput): SerializableFindInput;
|
|
9
|
+
run(input: SerializableFindInput): Promise<string | number | boolean | import("@t4h.framework/core").Binary | import("@t4h.framework/core").SerializableClass | readonly import("@t4h.framework/core").Serializable[] | {
|
|
10
|
+
[x: string]: import("@t4h.framework/core").Serializable;
|
|
11
|
+
} | null>;
|
|
12
|
+
toOutput(output: SerializableRowRef | null): SerializableRowRef | null;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=ORMFindOneActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMFindOneActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMFindOneActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,qBAAqB,CAAA;AAGzD,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,UAAU,eAAqC,CAAA;AAErD,qBAAa,kBAAmB,SAAQ,YAAY,CAClD;IAAC,KAAK,EAAE,qBAAqB;CAAC,EAC9B,qBAAqB,EACrB,kBAAkB,GAAG,IAAI,EACzB,kBAAkB,GAAG,IAAI,CAC1B;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB;IAItD,GAAG,CAAC,KAAK,EAAE,qBAAqB;;;IActC,QAAQ,CACb,MAAM,EAAE,kBAAkB,GAAG,IAAI,GAChC,kBAAkB,GAAG,IAAI;CAG7B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { SyncActivity, Claim } from '@t4h.framework/core';
|
|
2
|
+
import { ORMClaim } from '../claims/ORMClaim.js';
|
|
3
|
+
const CLAIMS_KEY = Symbol('orm-find-activity-claims');
|
|
4
|
+
export class ORMFindOneActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({
|
|
6
|
+
orm: ORMClaim,
|
|
7
|
+
});
|
|
8
|
+
toInput(input) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
async run(input) {
|
|
12
|
+
const objects = await this[CLAIMS_KEY].orm.find({
|
|
13
|
+
...input,
|
|
14
|
+
limit: 1,
|
|
15
|
+
offset: 0,
|
|
16
|
+
});
|
|
17
|
+
const object = objects[0];
|
|
18
|
+
if (typeof object === 'undefined')
|
|
19
|
+
return null;
|
|
20
|
+
return object;
|
|
21
|
+
}
|
|
22
|
+
toOutput(output) {
|
|
23
|
+
return output;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=ORMFindOneActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMFindOneActivity.js","sourceRoot":"","sources":["../../src/activities/ORMFindOneActivity.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,0BAA0B,CAAC,CAAA;AAErD,MAAM,OAAO,kBAAmB,SAAQ,YAKvC;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CAAC,KAA4B;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,KAA4B;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAC9C,GAAG,KAAK;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAEzB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAE9C,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,QAAQ,CACb,MAAiC;QAEjC,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableGetSnapshotInput, SerializableRowRef, SerializedRow } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMGetSnapshotActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableGetSnapshotInput<SerializableRowRef>
|
|
6
|
+
], SerializableGetSnapshotInput<SerializableRowRef>, SerializedRow, SerializedRow> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableGetSnapshotInput<SerializableRowRef>): SerializableGetSnapshotInput<SerializableRowRef>;
|
|
9
|
+
run(input: SerializableGetSnapshotInput<SerializableRowRef>): SerializedRow | Promise<SerializedRow>;
|
|
10
|
+
toOutput(output: SerializedRow): SerializedRow;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMGetSnapshotActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMGetSnapshotActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMGetSnapshotActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAS,MAAM,qBAAqB,CAAA;AAGzD,OAAO,KAAK,EACV,4BAA4B,EAC5B,kBAAkB,EAClB,aAAa,EACd,MAAM,mBAAmB,CAAA;AAE1B,QAAA,MAAM,UAAU,eAA6C,CAAA;AAE7D,qBAAa,sBAAuB,SAAQ,YAAY,CACtD;IAAC,KAAK,EAAE,4BAA4B,CAAC,kBAAkB,CAAC;CAAC,EACzD,4BAA4B,CAAC,kBAAkB,CAAC,EAChD,aAAa,EACb,aAAa,CACd;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CACZ,KAAK,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GACtD,4BAA4B,CAAC,kBAAkB,CAAC;IAI5C,GAAG,CAAC,KAAK,EAAE,4BAA4B,CAAC,kBAAkB,CAAC;IAI3D,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa;CAGtD"}
|
|
@@ -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-get-snapshot-activity-claims');
|
|
4
|
+
export class ORMGetSnapshotActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({
|
|
6
|
+
orm: ORMClaim,
|
|
7
|
+
});
|
|
8
|
+
toInput(input) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
run(input) {
|
|
12
|
+
return this[CLAIMS_KEY].orm.getSnapshot(input);
|
|
13
|
+
}
|
|
14
|
+
toOutput(output) {
|
|
15
|
+
return output;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ORMGetSnapshotActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMGetSnapshotActivity.js","sourceRoot":"","sources":["../../src/activities/ORMGetSnapshotActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAOhD,MAAM,UAAU,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAA;AAE7D,MAAM,OAAO,sBAAuB,SAAQ,YAK3C;IACkB,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CACZ,KAAuD;QAEvD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,GAAG,CAAC,KAAuD;QAChE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;IAChD,CAAC;IAEM,QAAQ,CAAC,MAAqB;QACnC,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableRemoveInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMRemoveActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableRemoveInput<SerializableRowRef>
|
|
6
|
+
], SerializableRemoveInput<SerializableRowRef>, void, void> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableRemoveInput<SerializableRowRef>): SerializableRemoveInput<SerializableRowRef>;
|
|
9
|
+
run(input: SerializableRemoveInput<SerializableRowRef>): Promise<void>;
|
|
10
|
+
toOutput(): void;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMRemoveActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMRemoveActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMRemoveActivity.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,kBAAkB,CAAC;CAAC,EACpD,uBAAuB,CAAC,kBAAkB,CAAC,EAC3C,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CACZ,KAAK,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,GACjD,uBAAuB,CAAC,kBAAkB,CAAC;IAIjC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IAI5D,QAAQ,IAAI,IAAI;CACxB"}
|
|
@@ -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-delete-activity-claims');
|
|
4
|
+
export class ORMRemoveActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({
|
|
6
|
+
orm: ORMClaim,
|
|
7
|
+
});
|
|
8
|
+
toInput(input) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
async run(input) {
|
|
12
|
+
await this[CLAIMS_KEY].orm.remove(input);
|
|
13
|
+
}
|
|
14
|
+
toOutput() { }
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ORMRemoveActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMRemoveActivity.js","sourceRoot":"","sources":["../../src/activities/ORMRemoveActivity.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;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CACZ,KAAkD;QAElD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,KAAkD;QACjE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import type { SerializableUpdateInput, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
declare const CLAIMS_KEY: unique symbol;
|
|
4
|
+
export declare class ORMUpdateActivity extends SyncActivity<[
|
|
5
|
+
input: SerializableUpdateInput<SerializableRowRef>
|
|
6
|
+
], SerializableUpdateInput<SerializableRowRef>, void, void> {
|
|
7
|
+
private readonly [CLAIMS_KEY];
|
|
8
|
+
toInput(input: SerializableUpdateInput<SerializableRowRef>): SerializableUpdateInput<SerializableRowRef>;
|
|
9
|
+
run(input: SerializableUpdateInput<SerializableRowRef>): Promise<void>;
|
|
10
|
+
toOutput(): void;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ORMUpdateActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMUpdateActivity.d.ts","sourceRoot":"","sources":["../../src/activities/ORMUpdateActivity.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,kBAAkB,CAAC;CAAC,EACpD,uBAAuB,CAAC,kBAAkB,CAAC,EAC3C,IAAI,EACJ,IAAI,CACL;IACC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAE3B;IAEK,OAAO,CACZ,KAAK,EAAE,uBAAuB,CAAC,kBAAkB,CAAC,GACjD,uBAAuB,CAAC,kBAAkB,CAAC;IAIjC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,kBAAkB,CAAC;IAI5D,QAAQ,IAAI,IAAI;CACxB"}
|
|
@@ -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-update-activity-claims');
|
|
4
|
+
export class ORMUpdateActivity extends SyncActivity {
|
|
5
|
+
[CLAIMS_KEY] = new Claim({
|
|
6
|
+
orm: ORMClaim,
|
|
7
|
+
});
|
|
8
|
+
toInput(input) {
|
|
9
|
+
return input;
|
|
10
|
+
}
|
|
11
|
+
async run(input) {
|
|
12
|
+
await this[CLAIMS_KEY].orm.update(input);
|
|
13
|
+
}
|
|
14
|
+
toOutput() { }
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=ORMUpdateActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMUpdateActivity.js","sourceRoot":"","sources":["../../src/activities/ORMUpdateActivity.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;QACxC,GAAG,EAAE,QAAQ;KACd,CAAC,CAAA;IAEK,OAAO,CACZ,KAAkD;QAElD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,KAAkD;QACjE,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAEM,QAAQ,KAAU,CAAC;CAC3B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SerializableCreateInput, SerializableFindInput, SerializableGetSnapshotInput, SerializableRemoveInput, SerializableUpdateInput, SerializableRowRef, SerializedRow } from '../typings/ORM.js';
|
|
2
|
+
export declare abstract class ORMClaim<R extends SerializableRowRef> {
|
|
3
|
+
abstract find(input: SerializableFindInput): R[] | Promise<R[]>;
|
|
4
|
+
abstract create(input: SerializableCreateInput): R[] | Promise<R[]>;
|
|
5
|
+
abstract getSnapshot(input: SerializableGetSnapshotInput<R>): SerializedRow | Promise<SerializedRow>;
|
|
6
|
+
abstract update(input: SerializableUpdateInput<R>): void | Promise<void>;
|
|
7
|
+
abstract remove(input: SerializableRemoveInput<R>): void | Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=ORMClaim.d.ts.map
|
|
@@ -0,0 +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,OAAO,CAAC,aAAa,CAAC;aAEzB,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;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORMClaim.js","sourceRoot":"","sources":["../../src/claims/ORMClaim.ts"],"names":[],"mappings":"AAUA,MAAM,OAAgB,QAAQ;CAgB7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAM9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../../src/decorators/Entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAMjD,MAAM,UAAU,MAAM,CAAC,OAAuB;IAC5C,OAAO,MAAM,CAAC,EAAE;QACd,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAkC,CAAC,CAAA;QAEtE,QAAQ,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAA;IACzC,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Property.d.ts","sourceRoot":"","sources":["../../src/decorators/Property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAExE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;AAE5D,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,iBAAiB,CASrE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { getEntityMetadata } from './metadata.js';
|
|
2
|
+
export function Property(options) {
|
|
3
|
+
return (target, propertyKey) => {
|
|
4
|
+
const metadata = getEntityMetadata(target.constructor);
|
|
5
|
+
metadata.properties.set(propertyKey, {
|
|
6
|
+
name: propertyKey,
|
|
7
|
+
...options,
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Property.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Property.js","sourceRoot":"","sources":["../../src/decorators/Property.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAyB,MAAM,eAAe,CAAA;AAIxE,MAAM,UAAU,QAAQ,CAAC,OAAyB;IAChD,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,WAA4B,CAAC,CAAA;QAEvE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,WAAqB,EAAE;YAC7C,IAAI,EAAE,WAAqB;YAC3B,GAAG,OAAO;SACX,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface EntityMetadata {
|
|
2
|
+
tableName?: string;
|
|
3
|
+
properties: Map<string, PropertyMetadata>;
|
|
4
|
+
}
|
|
5
|
+
export interface PropertyMetadata {
|
|
6
|
+
name: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
nullable?: boolean;
|
|
9
|
+
unique?: boolean;
|
|
10
|
+
default?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export declare function getEntityMetadata(target: new (...args: any[]) => any): EntityMetadata;
|
|
13
|
+
export declare function getEntityTableName(target: new (...args: any[]) => any): string;
|
|
14
|
+
export declare function getEntityProperties(target: new (...args: any[]) => any): Map<string, PropertyMetadata>;
|
|
15
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CAC1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAID,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,cAAc,CAShB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,MAAM,CAIR;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAClC,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAE/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const entityMetadataMap = new WeakMap();
|
|
2
|
+
export function getEntityMetadata(target) {
|
|
3
|
+
let metadata = entityMetadataMap.get(target.prototype);
|
|
4
|
+
if (!metadata) {
|
|
5
|
+
metadata = { properties: new Map() };
|
|
6
|
+
entityMetadataMap.set(target.prototype, metadata);
|
|
7
|
+
}
|
|
8
|
+
return metadata;
|
|
9
|
+
}
|
|
10
|
+
export function getEntityTableName(target) {
|
|
11
|
+
const metadata = getEntityMetadata(target);
|
|
12
|
+
return metadata.tableName ?? target.name;
|
|
13
|
+
}
|
|
14
|
+
export function getEntityProperties(target) {
|
|
15
|
+
return getEntityMetadata(target).properties;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/decorators/metadata.ts"],"names":[],"mappings":"AAaA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAA0B,CAAA;AAE/D,MAAM,UAAU,iBAAiB,CAC/B,MAAmC;IAEnC,IAAI,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;QACpC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAmC;IAEnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE1C,OAAO,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAmC;IAEnC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,UAAU,CAAA;AAC7C,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SerializableClass } from '@t4h.framework/core';
|
|
2
|
+
import { Ref } from './Ref.js';
|
|
3
|
+
import { RefCollection } from './RefCollection.js';
|
|
4
|
+
import type { FindWhere } from '../typings/FindWhere.js';
|
|
5
|
+
import type { EntityConstructor, EntityData, EntityInsertData } from '../typings/ORM.js';
|
|
6
|
+
export interface ORMConfig {
|
|
7
|
+
connectionString: string;
|
|
8
|
+
entities: EntityConstructor[];
|
|
9
|
+
}
|
|
10
|
+
export interface FindOneOptions<T> {
|
|
11
|
+
where: FindWhere<T>;
|
|
12
|
+
orderBy?: {
|
|
13
|
+
[K in keyof EntityData<T>]?: 'asc' | 'desc';
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export interface FindOptions<T> extends FindOneOptions<T> {
|
|
17
|
+
limit?: number;
|
|
18
|
+
offset?: number;
|
|
19
|
+
}
|
|
20
|
+
export declare class ORM extends SerializableClass {
|
|
21
|
+
readonly config: ORMConfig;
|
|
22
|
+
toSerializable(): string;
|
|
23
|
+
protected fromSerializable(connectionString: string): void;
|
|
24
|
+
constructor(config: ORMConfig);
|
|
25
|
+
create<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>): Promise<Ref<T>>;
|
|
26
|
+
create<T>(entity: EntityConstructor<T>, data: EntityInsertData<T>[]): Promise<RefCollection<T>>;
|
|
27
|
+
findOne<T>(entity: EntityConstructor<T>, options: FindOneOptions<T>): Promise<Ref<T> | null>;
|
|
28
|
+
find<T>(entity: EntityConstructor<T>, options?: FindOptions<T>): Promise<RefCollection<T>>;
|
|
29
|
+
exists<T>(entity: EntityConstructor<T>, options: FindOneOptions<T>): Promise<boolean>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ORM.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORM.d.ts","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAKlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAGjB,MAAM,mBAAmB,CAAA;AAM1B,MAAM,WAAW,SAAS;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACnB,OAAO,CAAC,EAAE;SAAG,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM;KAAE,CAAA;CAC1D;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,GAAI,SAAQ,iBAAiB;aASZ,MAAM,EAAE,SAAS;IARtC,cAAc;IAIrB,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;gBAI9B,MAAM,EAAE,SAAS;IAIhC,MAAM,CAAC,CAAC,EACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEL,MAAM,CAAC,CAAC,EACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAoBf,OAAO,CAAC,CAAC,EACpB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAaZ,IAAI,CAAC,CAAC,EACjB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAaf,MAAM,CAAC,CAAC,EACnB,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,OAAO,CAAC;CAGpB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { History, SerializableClass } from '@t4h.framework/core';
|
|
2
|
+
import { Ref } from './Ref.js';
|
|
3
|
+
import { RefCollection } from './RefCollection.js';
|
|
4
|
+
import { ORMCreateActivity } from '../activities/ORMCreateActivity.js';
|
|
5
|
+
import { ORMFindActivity } from '../activities/ORMFindActivity.js';
|
|
6
|
+
import { ORMFindOneActivity } from '../activities/ORMFindOneActivity.js';
|
|
7
|
+
import { getEntityTableName } from '../decorators/metadata.js';
|
|
8
|
+
const create = History.bind(ORMCreateActivity);
|
|
9
|
+
const find = History.bind(ORMFindActivity);
|
|
10
|
+
const findOne = History.bind(ORMFindOneActivity);
|
|
11
|
+
export class ORM extends SerializableClass {
|
|
12
|
+
config;
|
|
13
|
+
toSerializable() {
|
|
14
|
+
return this.config.connectionString;
|
|
15
|
+
}
|
|
16
|
+
fromSerializable(connectionString) {
|
|
17
|
+
Object.assign(this, { config: { connectionString } });
|
|
18
|
+
}
|
|
19
|
+
constructor(config) {
|
|
20
|
+
super();
|
|
21
|
+
this.config = config;
|
|
22
|
+
}
|
|
23
|
+
async create(entity, data) {
|
|
24
|
+
const isBatch = Array.isArray(data);
|
|
25
|
+
const rows = isBatch ? data : [data];
|
|
26
|
+
const result = await create({
|
|
27
|
+
orm: this,
|
|
28
|
+
table: getEntityTableName(entity),
|
|
29
|
+
data: rows,
|
|
30
|
+
});
|
|
31
|
+
if (isBatch)
|
|
32
|
+
return new RefCollection(this, entity, result);
|
|
33
|
+
return new Ref(this, entity, result[0]);
|
|
34
|
+
}
|
|
35
|
+
async findOne(entity, options) {
|
|
36
|
+
const ref = await findOne({
|
|
37
|
+
orm: this,
|
|
38
|
+
table: getEntityTableName(entity),
|
|
39
|
+
where: options?.where,
|
|
40
|
+
orderBy: options?.orderBy,
|
|
41
|
+
});
|
|
42
|
+
if (!ref)
|
|
43
|
+
return null;
|
|
44
|
+
return new Ref(this, entity, ref);
|
|
45
|
+
}
|
|
46
|
+
async find(entity, options) {
|
|
47
|
+
const refs = await find({
|
|
48
|
+
orm: this,
|
|
49
|
+
table: getEntityTableName(entity),
|
|
50
|
+
where: options?.where,
|
|
51
|
+
orderBy: options?.orderBy,
|
|
52
|
+
limit: options?.limit,
|
|
53
|
+
offset: options?.offset,
|
|
54
|
+
});
|
|
55
|
+
return new RefCollection(this, entity, refs);
|
|
56
|
+
}
|
|
57
|
+
async exists(entity, options) {
|
|
58
|
+
return (await this.findOne(entity, options)) !== null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=ORM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORM.js","sourceRoot":"","sources":["../../src/models/ORM.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ORM } from './ORM.js';
|
|
2
|
+
import type { EntityConstructor, EntityPartialData, SerializableRowRef } from '../typings/ORM.js';
|
|
3
|
+
export declare class Ref<T> {
|
|
4
|
+
private readonly orm;
|
|
5
|
+
private readonly entity;
|
|
6
|
+
private readonly ref;
|
|
7
|
+
constructor(orm: ORM, entity: EntityConstructor<T>, ref: SerializableRowRef);
|
|
8
|
+
getSnapshot(): Promise<T>;
|
|
9
|
+
update(data: EntityPartialData<T>): Promise<void>;
|
|
10
|
+
remove(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=Ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ref.d.ts","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAKnC,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,mBAAmB,CAAA;AAM1B,qBAAa,GAAG,CAAC,CAAC;IAEd,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,GAAG,EAAE,kBAAkB;IAG7B,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC;IAczB,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASjD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAOrC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { History } from '@t4h.framework/core';
|
|
2
|
+
import { ORMGetSnapshotActivity } from '../activities/ORMGetSnapshotActivity.js';
|
|
3
|
+
import { ORMRemoveActivity } from '../activities/ORMRemoveActivity.js';
|
|
4
|
+
import { ORMUpdateActivity } from '../activities/ORMUpdateActivity.js';
|
|
5
|
+
import { getEntityTableName } from '../decorators/metadata.js';
|
|
6
|
+
const getSnapshotOp = History.bind(ORMGetSnapshotActivity);
|
|
7
|
+
const update = History.bind(ORMUpdateActivity);
|
|
8
|
+
const remove = History.bind(ORMRemoveActivity);
|
|
9
|
+
export class Ref {
|
|
10
|
+
orm;
|
|
11
|
+
entity;
|
|
12
|
+
ref;
|
|
13
|
+
constructor(orm, entity, ref) {
|
|
14
|
+
this.orm = orm;
|
|
15
|
+
this.entity = entity;
|
|
16
|
+
this.ref = ref;
|
|
17
|
+
}
|
|
18
|
+
async getSnapshot() {
|
|
19
|
+
const result = await getSnapshotOp({
|
|
20
|
+
orm: this.orm,
|
|
21
|
+
table: getEntityTableName(this.entity),
|
|
22
|
+
ref: this.ref,
|
|
23
|
+
});
|
|
24
|
+
const entity = Reflect.construct(this.entity, []);
|
|
25
|
+
Object.assign(entity, result);
|
|
26
|
+
return entity;
|
|
27
|
+
}
|
|
28
|
+
async update(data) {
|
|
29
|
+
await update({
|
|
30
|
+
orm: this.orm,
|
|
31
|
+
table: getEntityTableName(this.entity),
|
|
32
|
+
ref: this.ref,
|
|
33
|
+
data: data,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async remove() {
|
|
37
|
+
await remove({
|
|
38
|
+
orm: this.orm,
|
|
39
|
+
table: getEntityTableName(this.entity),
|
|
40
|
+
ref: this.ref,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ref.js","sourceRoot":"","sources":["../../src/models/Ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAQ9D,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;AAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;AAE9C,MAAM,OAAO,GAAG;IAEK;IACA;IACA;IAHnB,YACmB,GAAQ,EACR,MAA4B,EAC5B,GAAuB;QAFvB,QAAG,GAAH,GAAG,CAAK;QACR,WAAM,GAAN,MAAM,CAAsB;QAC5B,QAAG,GAAH,GAAG,CAAoB;IACvC,CAAC;IAEG,KAAK,CAAC,WAAW;QACtB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAW,CAAA;QAE3D,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAE7B,OAAO,MAAW,CAAA;IACpB,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,IAA0B;QAC5C,MAAM,MAAM,CAAC;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAqB;SAC5B,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM;QACjB,MAAM,MAAM,CAAC;YACX,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC;YACtC,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ORM } from './ORM.js';
|
|
2
|
+
import { Ref } from './Ref.js';
|
|
3
|
+
import type { EntityConstructor, SerializableRowRef } from '../typings/ORM.js';
|
|
4
|
+
export declare class RefCollection<T> {
|
|
5
|
+
private readonly refs;
|
|
6
|
+
constructor(orm: ORM, entity: EntityConstructor<T>, refs: SerializableRowRef[]);
|
|
7
|
+
toArray(): Ref<T>[];
|
|
8
|
+
get length(): number;
|
|
9
|
+
at(index: number): Ref<T> | undefined;
|
|
10
|
+
map<U>(fn: (ref: Ref<T>, index: number) => U | Promise<U>): Promise<U[]>;
|
|
11
|
+
forEach(fn: (ref: Ref<T>, index: number) => void | Promise<void>): Promise<void>;
|
|
12
|
+
filter(fn: (ref: Ref<T>, index: number) => boolean | Promise<boolean>): Promise<Ref<T>[]>;
|
|
13
|
+
[Symbol.iterator](): Iterator<Ref<T>>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=RefCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefCollection.d.ts","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE9E,qBAAa,aAAa,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;gBAG7B,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,kBAAkB,EAAE;IAKrB,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;IAI1B,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS;IAI/B,GAAG,CAAC,CAAC,EAChB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACjD,OAAO,CAAC,CAAC,EAAE,CAAC;IAIF,OAAO,CAClB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACvD,OAAO,CAAC,IAAI,CAAC;IAIH,MAAM,CACjB,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAIb,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAG7C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Ref } from './Ref.js';
|
|
2
|
+
export class RefCollection {
|
|
3
|
+
refs;
|
|
4
|
+
constructor(orm, entity, refs) {
|
|
5
|
+
this.refs = refs.map(ref => new Ref(orm, entity, ref));
|
|
6
|
+
}
|
|
7
|
+
toArray() {
|
|
8
|
+
return this.refs.slice();
|
|
9
|
+
}
|
|
10
|
+
get length() {
|
|
11
|
+
return this.refs.length;
|
|
12
|
+
}
|
|
13
|
+
at(index) {
|
|
14
|
+
return this.refs[index];
|
|
15
|
+
}
|
|
16
|
+
async map(fn) {
|
|
17
|
+
return Promise.all(this.refs.map(fn));
|
|
18
|
+
}
|
|
19
|
+
async forEach(fn) {
|
|
20
|
+
await Promise.all(this.refs.map(fn));
|
|
21
|
+
}
|
|
22
|
+
async filter(fn) {
|
|
23
|
+
return Promise.all(this.refs.filter(fn));
|
|
24
|
+
}
|
|
25
|
+
[Symbol.iterator]() {
|
|
26
|
+
return this.refs[Symbol.iterator]();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=RefCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RefCollection.js","sourceRoot":"","sources":["../../src/models/RefCollection.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAG9B,MAAM,OAAO,aAAa;IACP,IAAI,CAAU;IAE/B,YACE,GAAQ,EACR,MAA4B,EAC5B,IAA0B;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACxD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;IAC1B,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACzB,CAAC;IAEM,EAAE,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAEM,KAAK,CAAC,GAAG,CACd,EAAkD;QAElD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACvC,CAAC;IAEM,KAAK,CAAC,OAAO,CAClB,EAAwD;QAExD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,EAA8D;QAE9D,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC;IAEM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;IACrC,CAAC;CACF"}
|
package/dist/orm.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './claims/ORMClaim.js';
|
|
2
|
+
export * from './decorators/Entity.js';
|
|
3
|
+
export * from './decorators/Property.js';
|
|
4
|
+
export * from './decorators/metadata.js';
|
|
5
|
+
export * from './models/ORM.js';
|
|
6
|
+
export * from './models/Ref.js';
|
|
7
|
+
export * from './models/RefCollection.js';
|
|
8
|
+
export * from './activities/ORMCreateActivity.js';
|
|
9
|
+
export * from './activities/ORMRemoveActivity.js';
|
|
10
|
+
export * from './activities/ORMFindActivity.js';
|
|
11
|
+
export * from './activities/ORMGetSnapshotActivity.js';
|
|
12
|
+
export * from './activities/ORMUpdateActivity.js';
|
|
13
|
+
export * from './typings/ORM.js';
|
|
14
|
+
//# sourceMappingURL=orm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm.d.ts","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,wBAAwB,CAAA;AACtC,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,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
package/dist/orm.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './claims/ORMClaim.js';
|
|
2
|
+
export * from './decorators/Entity.js';
|
|
3
|
+
export * from './decorators/Property.js';
|
|
4
|
+
export * from './decorators/metadata.js';
|
|
5
|
+
export * from './models/ORM.js';
|
|
6
|
+
export * from './models/Ref.js';
|
|
7
|
+
export * from './models/RefCollection.js';
|
|
8
|
+
export * from './activities/ORMCreateActivity.js';
|
|
9
|
+
export * from './activities/ORMRemoveActivity.js';
|
|
10
|
+
export * from './activities/ORMFindActivity.js';
|
|
11
|
+
export * from './activities/ORMGetSnapshotActivity.js';
|
|
12
|
+
export * from './activities/ORMUpdateActivity.js';
|
|
13
|
+
export * from './typings/ORM.js';
|
|
14
|
+
//# sourceMappingURL=orm.js.map
|
package/dist/orm.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orm.js","sourceRoot":"","sources":["../src/orm.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AAEpC,cAAc,wBAAwB,CAAA;AACtC,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,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,mCAAmC,CAAA;AAEjD,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type Scalar = boolean | number | string | bigint | symbol | Date | RegExp | Uint8Array | {
|
|
2
|
+
toHexString(): string;
|
|
3
|
+
};
|
|
4
|
+
export type ExpandScalar<T> = null | (T extends string ? T | RegExp : T extends Date ? Date | string : T extends bigint ? bigint | string | number : T);
|
|
5
|
+
export type OperatorMap<T> = {
|
|
6
|
+
$and?: ExpandQuery<T>[];
|
|
7
|
+
$or?: ExpandQuery<T>[];
|
|
8
|
+
$eq?: ExpandScalar<T> | readonly ExpandScalar<T>[];
|
|
9
|
+
$ne?: ExpandScalar<T>;
|
|
10
|
+
$in?: readonly ExpandScalar<T>[];
|
|
11
|
+
$nin?: readonly ExpandScalar<T>[];
|
|
12
|
+
$not?: ExpandQuery<T>;
|
|
13
|
+
$gt?: ExpandScalar<T>;
|
|
14
|
+
$gte?: ExpandScalar<T>;
|
|
15
|
+
$lt?: ExpandScalar<T>;
|
|
16
|
+
$lte?: ExpandScalar<T>;
|
|
17
|
+
$like?: string;
|
|
18
|
+
$ilike?: string;
|
|
19
|
+
};
|
|
20
|
+
export type FilterItemValue<T> = T | ExpandScalar<T>;
|
|
21
|
+
export type FilterValue<T> = OperatorMap<FilterItemValue<T>> | FilterItemValue<T> | FilterItemValue<T>[] | null;
|
|
22
|
+
export type ExpandQuery<T> = T extends object ? T extends Scalar ? never : FilterQuery<T> : FilterValue<T>;
|
|
23
|
+
export type CleanKeys<T, K extends keyof T, B extends boolean = false> = T[K] & {} extends Function ? never : K extends symbol ? never : B extends true ? T[K] & {} extends Scalar ? never : K : K;
|
|
24
|
+
export type EntityKey<T = unknown, B extends boolean = false> = string & {
|
|
25
|
+
[K in keyof T]-?: CleanKeys<T, K, B> extends never ? never : K;
|
|
26
|
+
}[keyof T];
|
|
27
|
+
export type EntityProps<T> = {
|
|
28
|
+
-readonly [K in EntityKey<T>]?: T[K];
|
|
29
|
+
};
|
|
30
|
+
export type FilterQuery<T> = ObjectQuery<T> | NonNullable<EntityProps<T> & OperatorMap<T>> | FilterQuery<T>[];
|
|
31
|
+
export type ObjectQuery<T> = OperatorMap<T> & FilterObject<T>;
|
|
32
|
+
export type FilterObject<T> = {
|
|
33
|
+
-readonly [K in EntityKey<T>]?: ExpandQuery<ExpandProperty<T[K]>> | FilterValue<ExpandProperty<T[K]>> | null;
|
|
34
|
+
};
|
|
35
|
+
export type ExpandProperty<T> = NonNullable<T>;
|
|
36
|
+
export type FindWhere<T> = FilterQuery<T>;
|
|
37
|
+
//# sourceMappingURL=FindWhere.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindWhere.d.ts","sourceRoot":"","sources":["../../src/typings/FindWhere.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FindWhere.js","sourceRoot":"","sources":["../../src/typings/FindWhere.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Serializable } from '@t4h.framework/core';
|
|
2
|
+
import type { ORM } from '../models/ORM.js';
|
|
3
|
+
export type EntityConstructor<T = any> = new () => T;
|
|
4
|
+
type Fn = (...args: any[]) => any;
|
|
5
|
+
export type RequiredEntityData<T> = {
|
|
6
|
+
[K in keyof T as T[K] extends Fn ? never : T[K] extends null ? never : K]: T[K];
|
|
7
|
+
};
|
|
8
|
+
export type EntityData<T> = {
|
|
9
|
+
[K in keyof T as T[K] extends Fn ? never : K]: T[K];
|
|
10
|
+
};
|
|
11
|
+
export type EntityInsertData<T> = {
|
|
12
|
+
[K in keyof T as T[K] extends Fn ? never : K]: T[K];
|
|
13
|
+
};
|
|
14
|
+
export type EntityPartialData<T> = Partial<EntityData<T>>;
|
|
15
|
+
export type SerializedRow = Record<string, Serializable>;
|
|
16
|
+
export type SerializableRowRef = Serializable;
|
|
17
|
+
export type SerializableWhere = Record<string, Serializable>;
|
|
18
|
+
export type SerializableFindInput = {
|
|
19
|
+
orm: ORM;
|
|
20
|
+
table: string;
|
|
21
|
+
where: SerializableWhere;
|
|
22
|
+
orderBy?: Record<string, 'asc' | 'desc'>;
|
|
23
|
+
limit?: number;
|
|
24
|
+
offset?: number;
|
|
25
|
+
};
|
|
26
|
+
export type SerializableCreateInput = {
|
|
27
|
+
orm: ORM;
|
|
28
|
+
table: string;
|
|
29
|
+
data: SerializedRow[];
|
|
30
|
+
};
|
|
31
|
+
export type SerializableGetSnapshotInput<R extends SerializableRowRef> = {
|
|
32
|
+
orm: ORM;
|
|
33
|
+
table: string;
|
|
34
|
+
ref: R;
|
|
35
|
+
};
|
|
36
|
+
export type SerializableUpdateInput<R extends SerializableRowRef> = {
|
|
37
|
+
orm: ORM;
|
|
38
|
+
table: string;
|
|
39
|
+
ref: R;
|
|
40
|
+
data: SerializedRow;
|
|
41
|
+
};
|
|
42
|
+
export type SerializableRemoveInput<R extends SerializableRowRef> = {
|
|
43
|
+
orm: ORM;
|
|
44
|
+
table: string;
|
|
45
|
+
ref: R;
|
|
46
|
+
};
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=ORM.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ORM.js","sourceRoot":"","sources":["../../src/typings/ORM.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@t4h.framework/orm",
|
|
3
|
+
"version": "0.0.0-experimental-c0d4325",
|
|
4
|
+
"description": "ORM module for the T4H Framework",
|
|
5
|
+
"homepage": "https://github.com/tech4humans-brasil/framework/tree/main/packages/orm",
|
|
6
|
+
"bugs": "https://github.com/tech4humans-brasil/framework/issues",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/tech4humans-brasil/framework.git",
|
|
10
|
+
"directory": "packages/orm"
|
|
11
|
+
},
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"author": "Tech4Humans <contact@tech4h.com.br> (https://tech4h.com.br)",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"exports": {
|
|
16
|
+
"types": "./dist/orm.d.ts",
|
|
17
|
+
"import": "./dist/orm.js"
|
|
18
|
+
},
|
|
19
|
+
"module": "./dist/orm.js",
|
|
20
|
+
"types": "./dist/orm.d.ts",
|
|
21
|
+
"files": [
|
|
22
|
+
"dist",
|
|
23
|
+
"LICENSE"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc --project tsconfig.build.json",
|
|
27
|
+
"check-types": "tsc --noEmit",
|
|
28
|
+
"lint": "eslint .",
|
|
29
|
+
"prepublishOnly": "yarn build",
|
|
30
|
+
"test": "vitest run",
|
|
31
|
+
"test:watch": "vitest"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@t4h.framework/core": "workspace:^"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"typescript": "^5.9.3",
|
|
38
|
+
"vitest": "^4.0.18"
|
|
39
|
+
},
|
|
40
|
+
"peerDependencies": {
|
|
41
|
+
"@t4h.framework/core": "workspace:^"
|
|
42
|
+
},
|
|
43
|
+
"packageManager": "yarn@4.12.0",
|
|
44
|
+
"engines": {
|
|
45
|
+
"node": ">=22"
|
|
46
|
+
},
|
|
47
|
+
"stableVersion": "0.0.0"
|
|
48
|
+
}
|