@rudderjs/orm 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -0
- package/boost/skills/orm-models/SKILL.md +24 -251
- package/boost/skills/orm-models/rules/crud-and-observers.md +130 -0
- package/boost/skills/orm-models/rules/defining-models.md +137 -0
- package/boost/skills/orm-models/rules/factories.md +73 -0
- package/boost/skills/orm-models/rules/querying.md +117 -0
- package/boost/skills/orm-models/rules/resources.md +111 -0
- package/dist/aggregate.d.ts +16 -7
- package/dist/aggregate.d.ts.map +1 -1
- package/dist/aggregate.js +27 -29
- package/dist/aggregate.js.map +1 -1
- package/dist/index.d.ts +41 -124
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -892
- package/dist/index.js.map +1 -1
- package/dist/relations/pivot-accessors.d.ts +127 -0
- package/dist/relations/pivot-accessors.d.ts.map +1 -0
- package/dist/relations/pivot-accessors.js +211 -0
- package/dist/relations/pivot-accessors.js.map +1 -0
- package/dist/relations/pivot-deferred.d.ts +13 -0
- package/dist/relations/pivot-deferred.d.ts.map +1 -0
- package/dist/relations/pivot-deferred.js +210 -0
- package/dist/relations/pivot-deferred.js.map +1 -0
- package/dist/relations/pivot-meta.d.ts +50 -0
- package/dist/relations/pivot-meta.d.ts.map +1 -0
- package/dist/relations/pivot-meta.js +34 -0
- package/dist/relations/pivot-meta.js.map +1 -0
- package/dist/relations/where-has.d.ts +53 -0
- package/dist/relations/where-has.d.ts.map +1 -0
- package/dist/relations/where-has.js +239 -0
- package/dist/relations/where-has.js.map +1 -0
- package/dist/utils.d.ts +35 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +63 -0
- package/dist/utils.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Model Factories
|
|
2
|
+
|
|
3
|
+
## Basic shape
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
import { ModelFactory, sequence } from '@rudderjs/orm'
|
|
7
|
+
import { User } from '../app/Models/User.js'
|
|
8
|
+
|
|
9
|
+
class UserFactory extends ModelFactory<{ name: string; email: string; role: string }> {
|
|
10
|
+
protected modelClass = User
|
|
11
|
+
|
|
12
|
+
definition() {
|
|
13
|
+
return {
|
|
14
|
+
name: 'Alice',
|
|
15
|
+
email: sequence(i => `user${i}@example.com`),
|
|
16
|
+
role: 'user',
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
protected states() {
|
|
21
|
+
return {
|
|
22
|
+
admin: () => ({ role: 'admin' }),
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
const one = await UserFactory.new().create() // 1 row, persisted
|
|
32
|
+
const five = await UserFactory.new().create(5) // 5 rows
|
|
33
|
+
const dtos = await UserFactory.new().make(3) // 3 in-memory only
|
|
34
|
+
const admin = await UserFactory.new().state('admin').create()
|
|
35
|
+
const custom = await UserFactory.new().with(() => ({ name: 'Bob' })).create()
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`.make()` does not write to the DB — useful for testing serialization, validation, or non-persisting code paths.
|
|
39
|
+
`.create()` writes via `Model.create()`, so observers / mutators / mass assignment all apply.
|
|
40
|
+
|
|
41
|
+
## sequence()
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
email: sequence(i => `user${i}@example.com`)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Inside `definition()`, return the call directly — the factory resolves callables for you. Each generated row gets the next index.
|
|
48
|
+
|
|
49
|
+
## Pitfalls
|
|
50
|
+
|
|
51
|
+
❌ **Don't** call `sequence(...)` outside `definition()`:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
const s = sequence(i => i)
|
|
55
|
+
class UserFactory extends ModelFactory<{ n: number }> {
|
|
56
|
+
definition() { return { n: s() } } // shared sequence across factory instances
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
✅ **Do** return the sequence callable from `definition()`:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
definition() { return { n: sequence(i => i) } } // fresh per factory instance
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
❌ **Don't** assume `.make()` ran mutators:
|
|
67
|
+
|
|
68
|
+
```ts
|
|
69
|
+
const draft = await UserFactory.new().make()
|
|
70
|
+
// password mutator did NOT run because there's no save() — but accessors DID run on serialization
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
✅ **Do** call `.create()` when you need mutator side effects (password hashing, slug generation, etc.).
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Querying
|
|
2
|
+
|
|
3
|
+
## Single-row reads
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
const user = await User.find(1) // by primary key
|
|
7
|
+
const first = await User.first() // first row
|
|
8
|
+
const total = await User.count() // SELECT count(*)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Filtered reads
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
const admins = await User.where('role', 'admin').all()
|
|
15
|
+
const recent = await User.where('createdAt', '>', oneWeekAgo).orderBy('createdAt', 'desc').limit(10).all()
|
|
16
|
+
const page = await User.paginate(1, 15)
|
|
17
|
+
// { data, total, page, perPage, lastPage }
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
`where` accepts `(column, value)` (defaults to `=`), `(column, op, value)`, or a callback for grouped predicates.
|
|
21
|
+
|
|
22
|
+
## Eager loading
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
const posts = await Post.with('author', 'comments').all()
|
|
26
|
+
const user = await User.with({ posts: q => q.where('isPublished', true) }).find(1)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Whole-row eager loading is handled natively by the adapter (Prisma `include`, Drizzle `with`).
|
|
30
|
+
|
|
31
|
+
## Aggregate eager loading
|
|
32
|
+
|
|
33
|
+
Stays portable across adapters:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
const users = await User.withCount('posts').all() // posts_count column
|
|
37
|
+
const authors = await Post.withSum('viewCount', 'views').all() // posts_sum_views
|
|
38
|
+
const post = await Post.find(1).then(p => p.loadCount('comments')) // per-instance
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`withCount` on `belongsTo` and `morphTo` throws — you can't count something there's exactly one of (or whose target table is dynamic).
|
|
42
|
+
|
|
43
|
+
## Scopes
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
export class Post extends Model {
|
|
47
|
+
static globalScopes = {
|
|
48
|
+
published: (q) => q.where('isPublished', true), // ALWAYS applied
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static scopes = {
|
|
52
|
+
byAuthor: (q, authorId: number) => q.where('authorId', authorId),
|
|
53
|
+
recent: (q) => q.orderBy('createdAt', 'desc').limit(10),
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const posts = await Post.query().scope('byAuthor', 1).scope('recent').all()
|
|
58
|
+
const allPosts = await Post.query().withoutGlobalScope('published').all()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Relation predicates (`whereHas`)
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
// Users who have at least one published post
|
|
65
|
+
const authors = await User.query()
|
|
66
|
+
.whereHas('posts', q => q.where('isPublished', true))
|
|
67
|
+
.all()
|
|
68
|
+
|
|
69
|
+
// Users who have no comments
|
|
70
|
+
const lurkers = await User.query().whereDoesntHave('comments').all()
|
|
71
|
+
|
|
72
|
+
// Eager-load with the same constraint
|
|
73
|
+
const data = await User.query()
|
|
74
|
+
.withWhereHas('posts', q => q.where('isPublished', true))
|
|
75
|
+
.all()
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Pitfalls
|
|
79
|
+
|
|
80
|
+
❌ **Don't** use `eq(col, null)` for null checks:
|
|
81
|
+
|
|
82
|
+
```ts
|
|
83
|
+
// drizzle-orm
|
|
84
|
+
qb.where(eq(users.deletedAt, null)) // never matches anything
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
✅ **Do** use `isNull` / `isNotNull`:
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
qb.where(isNull(users.deletedAt))
|
|
91
|
+
qb.where(isNotNull(users.deletedAt))
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
❌ **Don't** assume `assert.deepStrictEqual(result, plainObject)` holds since hydration shipped:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
const user = await User.find(1)
|
|
98
|
+
assert.deepStrictEqual(user, { id: 1, name: 'Alice' }) // ❌ prototype mismatch
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
✅ **Do** compare via spread or assert `instanceof`:
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
assert.deepStrictEqual({ ...user }, { id: 1, name: 'Alice' })
|
|
105
|
+
assert.ok(user instanceof User)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
❌ **Don't** use `morphTo` with `whereHas` — the related table is dynamic.
|
|
109
|
+
|
|
110
|
+
✅ **Do** filter on the morph columns directly:
|
|
111
|
+
|
|
112
|
+
```ts
|
|
113
|
+
await Comment.query()
|
|
114
|
+
.where('commentableType', 'Post')
|
|
115
|
+
.where('commentableId', 1)
|
|
116
|
+
.all()
|
|
117
|
+
```
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# API Resources
|
|
2
|
+
|
|
3
|
+
`JsonResource` is the controller-friendly way to shape model output for an HTTP response — without leaking columns that shouldn't reach the client.
|
|
4
|
+
|
|
5
|
+
## Single resource
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { JsonResource } from '@rudderjs/orm'
|
|
9
|
+
|
|
10
|
+
class UserResource extends JsonResource<User> {
|
|
11
|
+
toArray() {
|
|
12
|
+
return {
|
|
13
|
+
id: this.resource.id,
|
|
14
|
+
name: this.resource.name,
|
|
15
|
+
email: this.resource.email,
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// In a route handler
|
|
21
|
+
res.json(new UserResource(user).toArray())
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Conditional fields
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
class UserResource extends JsonResource<User> {
|
|
28
|
+
toArray() {
|
|
29
|
+
return {
|
|
30
|
+
id: this.resource.id,
|
|
31
|
+
name: this.resource.name,
|
|
32
|
+
|
|
33
|
+
// Include only when condition is true
|
|
34
|
+
admin: this.when(this.resource.role === 'admin', true),
|
|
35
|
+
|
|
36
|
+
// Include only when the relation was eager-loaded
|
|
37
|
+
posts: this.whenLoaded('posts', PostResource.collection(this.resource.posts)),
|
|
38
|
+
|
|
39
|
+
// Merge multiple fields conditionally
|
|
40
|
+
...this.mergeWhen(this.resource.isAdmin, {
|
|
41
|
+
permissions: this.resource.permissions,
|
|
42
|
+
lastLogin: this.resource.lastLoginAt,
|
|
43
|
+
}),
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`whenLoaded` is the canonical guard against N+1 — the field stays absent if the caller didn't `.with('posts')`.
|
|
50
|
+
|
|
51
|
+
## Collections
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
const users = await User.with('posts').all()
|
|
55
|
+
|
|
56
|
+
const collection = UserResource.collection(users, {
|
|
57
|
+
total: 100,
|
|
58
|
+
page: 1,
|
|
59
|
+
perPage: 15,
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
res.json(await collection.toResponse())
|
|
63
|
+
// {
|
|
64
|
+
// data: [...],
|
|
65
|
+
// meta: { total: 100, page: 1, perPage: 15 }
|
|
66
|
+
// }
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
For a paginated query:
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
const page = await User.paginate(1, 15)
|
|
73
|
+
const collection = UserResource.collection(page.data, {
|
|
74
|
+
total: page.total,
|
|
75
|
+
page: page.page,
|
|
76
|
+
perPage: page.perPage,
|
|
77
|
+
lastPage: page.lastPage,
|
|
78
|
+
})
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Pitfalls
|
|
82
|
+
|
|
83
|
+
❌ **Don't** assume `whenLoaded` works without `.with()`:
|
|
84
|
+
|
|
85
|
+
```ts
|
|
86
|
+
const user = await User.find(1) // posts NOT loaded
|
|
87
|
+
const res = new UserResource(user).toArray()
|
|
88
|
+
// res.posts is omitted — that's correct, but the caller may have expected it
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
✅ **Do** eager-load when the resource needs the relation:
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
const user = await User.with('posts').find(1)
|
|
95
|
+
const res = new UserResource(user).toArray()
|
|
96
|
+
// res.posts is present
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
❌ **Don't** use `when` for relations:
|
|
100
|
+
|
|
101
|
+
```ts
|
|
102
|
+
posts: this.when(this.resource.posts !== undefined, PostResource.collection(this.resource.posts))
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
✅ **Do** use `whenLoaded` — it's the relation-aware variant:
|
|
106
|
+
|
|
107
|
+
```ts
|
|
108
|
+
posts: this.whenLoaded('posts', PostResource.collection(this.resource.posts))
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
❌ **Don't** mutate `this.resource` inside `toArray()` — observers / mutators won't fire and you risk a stale state on the next access. Compute derived values and return them; don't write to the model.
|
package/dist/aggregate.d.ts
CHANGED
|
@@ -2,15 +2,19 @@ import type { AggregateFn, AggregateRequest, AggregateJoinShape, WhereClause } f
|
|
|
2
2
|
import type { Model, RelationDefinition } from './index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Constraint callback for the map form of `withCount` / `withExists`. Receives
|
|
5
|
-
* an {@link AggregateConstraintBuilder} for narrow `where`/`
|
|
6
|
-
*
|
|
7
|
-
* out of scope —
|
|
5
|
+
* an {@link AggregateConstraintBuilder} for narrow `where`/`as` recording.
|
|
6
|
+
* Larger surface (`orWhere`, `orderBy`, `limit`, terminals) is intentionally
|
|
7
|
+
* out of scope — those have ambiguous semantics in an aggregate context.
|
|
8
8
|
*/
|
|
9
9
|
export type AggregateConstraint = (q: AggregateConstraintBuilder) => AggregateConstraintBuilder;
|
|
10
10
|
/**
|
|
11
|
-
* `where`/`
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* `where`/`as` recorder passed to {@link AggregateConstraint} callbacks.
|
|
12
|
+
* Captures clauses for the adapter to AND into the aggregate subquery, plus
|
|
13
|
+
* an optional alias prefix override (`.as('publishedPosts')`).
|
|
14
|
+
*
|
|
15
|
+
* **OR semantics are not supported.** Multiple `.where(...)` calls compose
|
|
16
|
+
* with AND. To branch, split the aggregate into separate `withCount` calls
|
|
17
|
+
* with distinct `.as(...)` aliases and combine in app code.
|
|
14
18
|
*/
|
|
15
19
|
export declare class AggregateConstraintBuilder {
|
|
16
20
|
/** @internal */
|
|
@@ -18,7 +22,12 @@ export declare class AggregateConstraintBuilder {
|
|
|
18
22
|
/** @internal — alias prefix override; falls back to the relation name. */
|
|
19
23
|
_aliasPrefix?: string;
|
|
20
24
|
where(column: string, valueOrOperator: unknown, maybeValue?: unknown): this;
|
|
21
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Not supported — aggregate constraints AND together. Documented as a
|
|
27
|
+
* throw rather than silently dropping the OR semantics (which the
|
|
28
|
+
* underlying {@link WhereClause} can't carry).
|
|
29
|
+
*/
|
|
30
|
+
orWhere(_column: string, _valueOrOperator: unknown, _maybeValue?: unknown): this;
|
|
22
31
|
/**
|
|
23
32
|
* Override the alias prefix used to stamp the aggregate column onto the
|
|
24
33
|
* result row. Default = relation name. The verb suffix (`Count`/`SumX`/etc.)
|
package/dist/aggregate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EAGZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EAGZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAK3D;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,EAAE,0BAA0B,KAAK,0BAA0B,CAAA;AAE/F;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IACrC,gBAAgB;IAChB,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,CAAK;IACpC,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAS3E;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,IAAI;IAQhF;;;;;;;;OAQG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAIxB;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAO,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,mBAAmB,CAAA;CACjC;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,eAAwC,CAAA;AAEtE,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAa7D;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CASxE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1F;AAID;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAI,OAAO,KAAK,EACtB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAO,OAAO,CAAC,kBAAkB,EAAE;IAAE,IAAI,EAAE,SAAS,GAAG,WAAW,CAAA;CAAE,CAAC,GACvE,kBAAkB,CAuFpB;AAID,KAAK,iBAAiB,GAAG,mBAAmB,CAAA;AAC5C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;AA8ErD,mEAAmE;AACnE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,KAAK,EACpB,GAAG,EAAK,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,YAAY,GAChD,gBAAgB,EAAE,CAIpB;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,OAAO,KAAK,EACpB,GAAG,EAAK,MAAM,GAAG,SAAS,MAAM,EAAE,GACjC,gBAAgB,EAAE,CAGpB;AAED,yFAAyF;AACzF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,KAAK,EACpB,EAAE,EAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACrC,IAAI,EAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACjD,IAAI,CAAC,EAAG,MAAM,GACb,gBAAgB,EAAE,CAUpB;AA4GD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,KAAK,EACf,EAAE,EAAQ,OAAO,GAAG,QAAQ,EAC5B,GAAG,EAAO,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,YAAY,GAClD,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,KAAK,EACf,EAAE,EAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACvC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACnD,MAAM,CAAC,EAAG,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAOnG"}
|
package/dist/aggregate.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import { camelHead, capitalize } from './utils.js';
|
|
1
2
|
/**
|
|
2
|
-
* `where`/`
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* `where`/`as` recorder passed to {@link AggregateConstraint} callbacks.
|
|
4
|
+
* Captures clauses for the adapter to AND into the aggregate subquery, plus
|
|
5
|
+
* an optional alias prefix override (`.as('publishedPosts')`).
|
|
6
|
+
*
|
|
7
|
+
* **OR semantics are not supported.** Multiple `.where(...)` calls compose
|
|
8
|
+
* with AND. To branch, split the aggregate into separate `withCount` calls
|
|
9
|
+
* with distinct `.as(...)` aliases and combine in app code.
|
|
5
10
|
*/
|
|
6
11
|
export class AggregateConstraintBuilder {
|
|
7
12
|
/** @internal */
|
|
@@ -17,14 +22,15 @@ export class AggregateConstraintBuilder {
|
|
|
17
22
|
}
|
|
18
23
|
return this;
|
|
19
24
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Not supported — aggregate constraints AND together. Documented as a
|
|
27
|
+
* throw rather than silently dropping the OR semantics (which the
|
|
28
|
+
* underlying {@link WhereClause} can't carry).
|
|
29
|
+
*/
|
|
30
|
+
orWhere(_column, _valueOrOperator, _maybeValue) {
|
|
31
|
+
throw new Error('[RudderJS ORM] orWhere is not supported inside a withCount/withSum/withExists constraint — ' +
|
|
32
|
+
'aggregate predicates compose with AND. Split into separate aggregates with distinct .as(...) ' +
|
|
33
|
+
'aliases and combine in app code.');
|
|
28
34
|
}
|
|
29
35
|
/**
|
|
30
36
|
* Override the alias prefix used to stamp the aggregate column onto the
|
|
@@ -66,11 +72,6 @@ export function aggregateKeysOf(instance) {
|
|
|
66
72
|
return set;
|
|
67
73
|
}
|
|
68
74
|
// ─── Alias suffix ──────────────────────────────────────────
|
|
69
|
-
function _capitalize(s) {
|
|
70
|
-
if (s.length === 0)
|
|
71
|
-
return s;
|
|
72
|
-
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
73
|
-
}
|
|
74
75
|
/**
|
|
75
76
|
* The verb suffix that distinguishes which aggregate is stamped on the parent.
|
|
76
77
|
* Combined with the relation name (or `.as(...)` override) to produce the
|
|
@@ -81,19 +82,16 @@ export function aggregateSuffix(fn, column) {
|
|
|
81
82
|
switch (fn) {
|
|
82
83
|
case 'count': return 'Count';
|
|
83
84
|
case 'exists': return 'Exists';
|
|
84
|
-
case 'sum': return 'Sum' +
|
|
85
|
-
case 'min': return 'Min' +
|
|
86
|
-
case 'max': return 'Max' +
|
|
87
|
-
case 'avg': return 'Avg' +
|
|
85
|
+
case 'sum': return 'Sum' + capitalize(column ?? '');
|
|
86
|
+
case 'min': return 'Min' + capitalize(column ?? '');
|
|
87
|
+
case 'max': return 'Max' + capitalize(column ?? '');
|
|
88
|
+
case 'avg': return 'Avg' + capitalize(column ?? '');
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
export function aggregateAlias(fn, baseAlias, column) {
|
|
91
92
|
return baseAlias + aggregateSuffix(fn, column);
|
|
92
93
|
}
|
|
93
94
|
// ─── Join-shape resolution ─────────────────────────────────
|
|
94
|
-
function _camelHead(s) {
|
|
95
|
-
return s.charAt(0).toLowerCase() + s.slice(1);
|
|
96
|
-
}
|
|
97
95
|
/**
|
|
98
96
|
* Build the {@link AggregateJoinShape} for a relation declared on `Parent`.
|
|
99
97
|
* Mirrors `_buildRelationPredicate` but emits the join-shape subset rather
|
|
@@ -107,8 +105,8 @@ export function buildAggregateJoinShape(Parent, relation, def) {
|
|
|
107
105
|
if (def.type === 'belongsToMany') {
|
|
108
106
|
const parentKey = def.parentKey ?? Parent.primaryKey;
|
|
109
107
|
const relatedKey = def.relatedKey ?? Related.primaryKey;
|
|
110
|
-
const foreignPivotKey = def.foreignPivotKey ?? `${
|
|
111
|
-
const relatedPivotKey = def.relatedPivotKey ?? `${
|
|
108
|
+
const foreignPivotKey = def.foreignPivotKey ?? `${camelHead(Parent.name)}Id`;
|
|
109
|
+
const relatedPivotKey = def.relatedPivotKey ?? `${camelHead(Related.name)}Id`;
|
|
112
110
|
return {
|
|
113
111
|
relatedTable: Related.getTable(),
|
|
114
112
|
parentColumn: parentKey,
|
|
@@ -127,7 +125,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
|
|
|
127
125
|
const foreignPivotKey = `${def.morphName}Id`;
|
|
128
126
|
const morphTypeKey = `${def.morphName}Type`;
|
|
129
127
|
const morphTypeValue = def.morphType ?? Parent.morphAlias ?? Parent.name;
|
|
130
|
-
const relatedPivotKey = def.relatedPivotKey ?? `${
|
|
128
|
+
const relatedPivotKey = def.relatedPivotKey ?? `${camelHead(Related.name)}Id`;
|
|
131
129
|
return {
|
|
132
130
|
relatedTable: Related.getTable(),
|
|
133
131
|
parentColumn: parentKey,
|
|
@@ -144,7 +142,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
|
|
|
144
142
|
if (def.type === 'morphedByMany') {
|
|
145
143
|
const parentKey = def.parentKey ?? Parent.primaryKey;
|
|
146
144
|
const relatedKey = def.relatedKey ?? Related.primaryKey;
|
|
147
|
-
const foreignPivotKey = def.foreignPivotKey ?? `${
|
|
145
|
+
const foreignPivotKey = def.foreignPivotKey ?? `${camelHead(Parent.name)}Id`;
|
|
148
146
|
const morphTypeKey = `${def.morphName}Type`;
|
|
149
147
|
const morphTypeValue = def.morphType ?? Related.morphAlias ?? Related.name;
|
|
150
148
|
const relatedPivotKey = `${def.morphName}Id`;
|
|
@@ -175,7 +173,7 @@ export function buildAggregateJoinShape(Parent, relation, def) {
|
|
|
175
173
|
};
|
|
176
174
|
}
|
|
177
175
|
// hasOne / hasMany — related table holds the FK pointing back to Parent.
|
|
178
|
-
const fk = def.foreignKey ?? `${
|
|
176
|
+
const fk = def.foreignKey ?? `${camelHead(Parent.name)}Id`;
|
|
179
177
|
const localCol = def.localKey ?? Parent.primaryKey;
|
|
180
178
|
return {
|
|
181
179
|
relatedTable: Related.getTable(),
|
|
@@ -252,7 +250,7 @@ export function normalizeWithExists(Parent, arg) {
|
|
|
252
250
|
export function normalizeWithNumericAggregate(Parent, fn, arg1, arg2) {
|
|
253
251
|
if (typeof arg1 === 'string') {
|
|
254
252
|
if (arg2 === undefined) {
|
|
255
|
-
throw new Error(`[RudderJS ORM] with${
|
|
253
|
+
throw new Error(`[RudderJS ORM] with${capitalize(fn)}("${arg1}") requires a column argument.`);
|
|
256
254
|
}
|
|
257
255
|
return [_buildRequest(Parent, arg1, fn, arg2, undefined)];
|
|
258
256
|
}
|
package/dist/aggregate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
|