@orchestr-sh/orchestr 1.5.9 → 1.5.11
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 +275 -977
- package/dist/Database/Ensemble/Concerns/HasDynamicRelationGetters.d.ts +27 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelationGetters.d.ts.map +1 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelationGetters.js +109 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelationGetters.js.map +1 -0
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts +59 -3
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js +159 -31
- package/dist/Database/Ensemble/Concerns/HasDynamicRelations.js.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts +20 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.d.ts.map +1 -1
- package/dist/Database/Ensemble/Concerns/HasRelationships.js +57 -0
- package/dist/Database/Ensemble/Concerns/HasRelationships.js.map +1 -1
- package/dist/Database/Ensemble/Ensemble.d.ts.map +1 -1
- package/dist/Database/Ensemble/Ensemble.js +0 -4
- package/dist/Database/Ensemble/Ensemble.js.map +1 -1
- package/dist/Database/Ensemble/EnsembleBuilder.d.ts +1 -1
- package/dist/Database/Ensemble/EnsembleBuilder.d.ts.map +1 -1
- package/dist/Database/Ensemble/EnsembleBuilder.js +7 -10
- package/dist/Database/Ensemble/EnsembleBuilder.js.map +1 -1
- package/dist/Database/Ensemble/Relations/BelongsTo.d.ts +5 -0
- package/dist/Database/Ensemble/Relations/BelongsTo.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/BelongsTo.js +8 -0
- package/dist/Database/Ensemble/Relations/BelongsTo.js.map +1 -1
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts +97 -0
- package/dist/Database/Ensemble/Relations/MorphMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js +189 -0
- package/dist/Database/Ensemble/Relations/MorphMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts +59 -0
- package/dist/Database/Ensemble/Relations/MorphMap.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js +84 -0
- package/dist/Database/Ensemble/Relations/MorphMap.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts +93 -0
- package/dist/Database/Ensemble/Relations/MorphOne.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js +179 -0
- package/dist/Database/Ensemble/Relations/MorphOne.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts +98 -0
- package/dist/Database/Ensemble/Relations/MorphTo.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js +214 -0
- package/dist/Database/Ensemble/Relations/MorphTo.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts +73 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js +164 -0
- package/dist/Database/Ensemble/Relations/MorphToMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts +29 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.d.ts.map +1 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js +58 -0
- package/dist/Database/Ensemble/Relations/MorphedByMany.js.map +1 -0
- package/dist/Database/Ensemble/Relations/index.d.ts +6 -0
- package/dist/Database/Ensemble/Relations/index.d.ts.map +1 -1
- package/dist/Database/Ensemble/Relations/index.js +14 -1
- package/dist/Database/Ensemble/Relations/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HasDynamicRelationGetters
|
|
3
|
+
*
|
|
4
|
+
* Provides a way to access relationships as properties using getters
|
|
5
|
+
* This avoids Proxy issues and works with TypeScript
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Decorator to convert a relationship method into a dynamic property
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* class Post extends Ensemble {
|
|
12
|
+
* @DynamicRelation
|
|
13
|
+
* user(): BelongsTo<User, this> {
|
|
14
|
+
* return this.belongsTo(User, 'user_id');
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* // Now you can use:
|
|
19
|
+
* const user = await post.user; // Instead of post.user().get()
|
|
20
|
+
*/
|
|
21
|
+
export declare function DynamicRelation(value: any, context?: any): any;
|
|
22
|
+
/**
|
|
23
|
+
* Helper to define dynamic relation getters programmatically
|
|
24
|
+
* Use this if you can't use decorators
|
|
25
|
+
*/
|
|
26
|
+
export declare function defineDynamicRelation<T>(target: T, relationName: string, relationMethod: () => any): void;
|
|
27
|
+
//# sourceMappingURL=HasDynamicRelationGetters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HasDynamicRelationGetters.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelationGetters.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,OA2ExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,GACxB,IAAI,CA0BN"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* HasDynamicRelationGetters
|
|
4
|
+
*
|
|
5
|
+
* Provides a way to access relationships as properties using getters
|
|
6
|
+
* This avoids Proxy issues and works with TypeScript
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DynamicRelation = DynamicRelation;
|
|
10
|
+
exports.defineDynamicRelation = defineDynamicRelation;
|
|
11
|
+
/**
|
|
12
|
+
* Decorator to convert a relationship method into a dynamic property
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* class Post extends Ensemble {
|
|
16
|
+
* @DynamicRelation
|
|
17
|
+
* user(): BelongsTo<User, this> {
|
|
18
|
+
* return this.belongsTo(User, 'user_id');
|
|
19
|
+
* }
|
|
20
|
+
* }
|
|
21
|
+
*
|
|
22
|
+
* // Now you can use:
|
|
23
|
+
* const user = await post.user; // Instead of post.user().get()
|
|
24
|
+
*/
|
|
25
|
+
function DynamicRelation(value, context) {
|
|
26
|
+
// Modern decorator (TypeScript 5+ with context as second parameter)
|
|
27
|
+
if (context && context.kind === 'method') {
|
|
28
|
+
context.addInitializer(function () {
|
|
29
|
+
const methodName = context.name;
|
|
30
|
+
const originalMethod = value;
|
|
31
|
+
// Define a getter on the instance
|
|
32
|
+
Object.defineProperty(this, methodName, {
|
|
33
|
+
get() {
|
|
34
|
+
const relation = originalMethod.call(this);
|
|
35
|
+
const fn = function (...args) {
|
|
36
|
+
return relation;
|
|
37
|
+
};
|
|
38
|
+
fn.then = function (resolve, reject) {
|
|
39
|
+
return relation.getResults().then(resolve, reject);
|
|
40
|
+
};
|
|
41
|
+
fn.catch = function (reject) {
|
|
42
|
+
return relation.getResults().catch(reject);
|
|
43
|
+
};
|
|
44
|
+
fn.finally = function (onFinally) {
|
|
45
|
+
return relation.getResults().finally(onFinally);
|
|
46
|
+
};
|
|
47
|
+
return fn;
|
|
48
|
+
},
|
|
49
|
+
configurable: true,
|
|
50
|
+
enumerable: true
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return value;
|
|
54
|
+
}
|
|
55
|
+
// Legacy decorator (target, propertyKey, descriptor)
|
|
56
|
+
const target = value;
|
|
57
|
+
const propertyKey = context;
|
|
58
|
+
const descriptor = arguments[2];
|
|
59
|
+
if (descriptor && typeof descriptor === 'object' && 'value' in descriptor) {
|
|
60
|
+
const originalMethod = descriptor.value;
|
|
61
|
+
delete descriptor.value;
|
|
62
|
+
delete descriptor.writable;
|
|
63
|
+
descriptor.get = function () {
|
|
64
|
+
const relation = originalMethod.call(this);
|
|
65
|
+
const fn = function (...args) {
|
|
66
|
+
return relation;
|
|
67
|
+
};
|
|
68
|
+
fn.then = function (resolve, reject) {
|
|
69
|
+
return relation.getResults().then(resolve, reject);
|
|
70
|
+
};
|
|
71
|
+
fn.catch = function (reject) {
|
|
72
|
+
return relation.getResults().catch(reject);
|
|
73
|
+
};
|
|
74
|
+
fn.finally = function (onFinally) {
|
|
75
|
+
return relation.getResults().finally(onFinally);
|
|
76
|
+
};
|
|
77
|
+
return fn;
|
|
78
|
+
};
|
|
79
|
+
return descriptor;
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Helper to define dynamic relation getters programmatically
|
|
85
|
+
* Use this if you can't use decorators
|
|
86
|
+
*/
|
|
87
|
+
function defineDynamicRelation(target, relationName, relationMethod) {
|
|
88
|
+
Object.defineProperty(target, relationName, {
|
|
89
|
+
get() {
|
|
90
|
+
const relation = relationMethod.call(this);
|
|
91
|
+
const fn = function (...args) {
|
|
92
|
+
return relation;
|
|
93
|
+
};
|
|
94
|
+
fn.then = function (resolve, reject) {
|
|
95
|
+
return relation.getResults().then(resolve, reject);
|
|
96
|
+
};
|
|
97
|
+
fn.catch = function (reject) {
|
|
98
|
+
return relation.getResults().catch(reject);
|
|
99
|
+
};
|
|
100
|
+
fn.finally = function (onFinally) {
|
|
101
|
+
return relation.getResults().finally(onFinally);
|
|
102
|
+
};
|
|
103
|
+
return fn;
|
|
104
|
+
},
|
|
105
|
+
enumerable: true,
|
|
106
|
+
configurable: true
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=HasDynamicRelationGetters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HasDynamicRelationGetters.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelationGetters.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,6 @@
|
|
|
4
4
|
* Provides dynamic relationship access similar to PHP's __get magic method
|
|
5
5
|
* Allows accessing relationships as properties: user.posts instead of user.posts().get()
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
* Wrap an Ensemble instance with a Proxy that automatically resolves relationships
|
|
9
|
-
*/
|
|
10
7
|
export declare function withDynamicRelations<T extends object>(instance: T): T;
|
|
11
8
|
/**
|
|
12
9
|
* Mix dynamic relations functionality into a class
|
|
@@ -18,4 +15,63 @@ export declare abstract class HasDynamicRelationsMixin {
|
|
|
18
15
|
*/
|
|
19
16
|
protected enableDynamicRelations(): this;
|
|
20
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Type for a dynamic relation that can be both called and awaited
|
|
20
|
+
* @deprecated Use the relation return type directly and let the decorator handle the dual behavior
|
|
21
|
+
*/
|
|
22
|
+
export type DynamicRelationAccessor<T> = (() => any) & PromiseLike<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Type helper for dynamic relations
|
|
25
|
+
* Use this to type relationship properties that work both as methods and promises
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* class Post extends Ensemble {
|
|
29
|
+
* declare user: BelongsToAccessor<User, this>;
|
|
30
|
+
*
|
|
31
|
+
* @DynamicRelation
|
|
32
|
+
* user(): BelongsTo<User, this> {
|
|
33
|
+
* return this.belongsTo(User);
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* const user = await post.user; // Type: User
|
|
38
|
+
* const query = post.user(); // Type: BelongsTo<User, Post>
|
|
39
|
+
*/
|
|
40
|
+
export type BelongsToAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/BelongsTo').BelongsTo<TRelated, TParent>);
|
|
41
|
+
export type HasOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/HasOne').HasOne<TRelated, TParent>);
|
|
42
|
+
export type HasManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/HasMany').HasMany<TRelated, TParent>);
|
|
43
|
+
export type BelongsToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/BelongsToMany').BelongsToMany<TRelated, TParent>);
|
|
44
|
+
export type MorphOneAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphOne').MorphOne<TRelated, TParent>);
|
|
45
|
+
export type MorphManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphMany').MorphMany<TRelated, TParent>);
|
|
46
|
+
export type MorphToAccessor<TRelated extends import('../Ensemble').Ensemble> = TRelated | Promise<TRelated | null> | (() => import('../Relations/MorphTo').MorphTo<any>);
|
|
47
|
+
export type MorphToManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphToMany').MorphToMany<TRelated, TParent>);
|
|
48
|
+
export type MorphedByManyAccessor<TRelated extends import('../Ensemble').Ensemble, TParent extends import('../Ensemble').Ensemble> = TRelated[] | Promise<TRelated[]> | (() => import('../Relations/MorphedByMany').MorphedByMany<TRelated, TParent>);
|
|
49
|
+
/**
|
|
50
|
+
* Decorator to convert a relationship method into a dynamic property
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* class Post extends Ensemble {
|
|
54
|
+
* @DynamicRelation
|
|
55
|
+
* user!: DynamicRelationAccessor<User>;
|
|
56
|
+
* user(): BelongsTo<User, this> {
|
|
57
|
+
* return this.belongsTo(User, 'user_id');
|
|
58
|
+
* }
|
|
59
|
+
*
|
|
60
|
+
* @DynamicRelation
|
|
61
|
+
* comments!: DynamicRelationAccessor<Comment[]>;
|
|
62
|
+
* comments(): HasMany<Comment, this> {
|
|
63
|
+
* return this.hasMany(Comment);
|
|
64
|
+
* }
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* // Now you can use:
|
|
68
|
+
* const user = await post.user; // Type: User
|
|
69
|
+
* const comments = await post.comments; // Type: Comment[]
|
|
70
|
+
*/
|
|
71
|
+
export declare function DynamicRelation(value: any, context?: any): any;
|
|
72
|
+
/**
|
|
73
|
+
* Helper to define dynamic relation getters programmatically
|
|
74
|
+
* Use this if you can't use decorators
|
|
75
|
+
*/
|
|
76
|
+
export declare function defineDynamicRelation<T>(target: T, relationName: string, relationMethod: () => any): void;
|
|
21
77
|
//# sourceMappingURL=HasDynamicRelations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"HasDynamicRelations.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,31 +8,33 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.HasDynamicRelationsMixin = void 0;
|
|
10
10
|
exports.withDynamicRelations = withDynamicRelations;
|
|
11
|
-
|
|
11
|
+
exports.DynamicRelation = DynamicRelation;
|
|
12
|
+
exports.defineDynamicRelation = defineDynamicRelation;
|
|
13
|
+
const Relations_1 = require("../Relations");
|
|
12
14
|
/**
|
|
13
15
|
* Check if a value is a Relation instance
|
|
14
16
|
*/
|
|
15
17
|
function isRelation(value) {
|
|
16
|
-
return value && value instanceof
|
|
18
|
+
return value && value instanceof Relations_1.Relation;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Create a hybrid function/promise for relationship access
|
|
20
22
|
* This allows both: await user.posts AND user.posts().get()
|
|
21
23
|
*/
|
|
22
|
-
function createRelationshipProxy(
|
|
24
|
+
function createRelationshipProxy(relationGetter) {
|
|
23
25
|
// Create a function that returns the relation when called
|
|
24
26
|
const fn = function (...args) {
|
|
25
|
-
return
|
|
27
|
+
return relationGetter();
|
|
26
28
|
};
|
|
27
29
|
// Make the function thenable (Promise-like) by adding then/catch methods
|
|
28
30
|
fn.then = function (onFulfilled, onRejected) {
|
|
29
|
-
return
|
|
31
|
+
return relationGetter().getResults().then(onFulfilled, onRejected);
|
|
30
32
|
};
|
|
31
33
|
fn.catch = function (onRejected) {
|
|
32
|
-
return
|
|
34
|
+
return relationGetter().getResults().catch(onRejected);
|
|
33
35
|
};
|
|
34
36
|
fn.finally = function (onFinally) {
|
|
35
|
-
return
|
|
37
|
+
return relationGetter().getResults().finally(onFinally);
|
|
36
38
|
};
|
|
37
39
|
return fn;
|
|
38
40
|
}
|
|
@@ -77,11 +79,39 @@ function shouldExcludeMethod(methodName) {
|
|
|
77
79
|
/**
|
|
78
80
|
* Wrap an Ensemble instance with a Proxy that automatically resolves relationships
|
|
79
81
|
*/
|
|
82
|
+
/**
|
|
83
|
+
* List of internal properties that should never be proxied
|
|
84
|
+
*/
|
|
85
|
+
const INTERNAL_PROPERTIES = new Set([
|
|
86
|
+
'attributes',
|
|
87
|
+
'original',
|
|
88
|
+
'relations',
|
|
89
|
+
'exists',
|
|
90
|
+
'wasRecentlyCreated',
|
|
91
|
+
'table',
|
|
92
|
+
'primaryKey',
|
|
93
|
+
'incrementing',
|
|
94
|
+
'keyType',
|
|
95
|
+
'fillable',
|
|
96
|
+
'guarded',
|
|
97
|
+
'hidden',
|
|
98
|
+
'visible',
|
|
99
|
+
'appends',
|
|
100
|
+
'casts',
|
|
101
|
+
'timestamps',
|
|
102
|
+
'connection',
|
|
103
|
+
'dynamicRelations'
|
|
104
|
+
]);
|
|
80
105
|
function withDynamicRelations(instance) {
|
|
81
106
|
return new Proxy(instance, {
|
|
82
107
|
get(target, property, receiver) {
|
|
83
|
-
//
|
|
84
|
-
|
|
108
|
+
// Always pass through symbol properties and internal properties
|
|
109
|
+
// Use target directly, not receiver, to avoid proxy recursion
|
|
110
|
+
if (typeof property === 'symbol' || INTERNAL_PROPERTIES.has(property)) {
|
|
111
|
+
return target[property];
|
|
112
|
+
}
|
|
113
|
+
// Get the original value from target, not receiver
|
|
114
|
+
const value = target[property];
|
|
85
115
|
// Check if dynamic relations are enabled for this instance
|
|
86
116
|
const dynamicEnabled = target.dynamicRelations === true;
|
|
87
117
|
// If dynamic relations are disabled or it's not a string property, return as-is
|
|
@@ -100,30 +130,22 @@ function withDynamicRelations(instance) {
|
|
|
100
130
|
if (target.relationLoaded && target.relationLoaded(property)) {
|
|
101
131
|
return target.getRelation(property);
|
|
102
132
|
}
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
// Only attempt to call if it has no required parameters (all optional)
|
|
113
|
-
if (paramCount === 0) {
|
|
114
|
-
const result = boundMethod();
|
|
115
|
-
// If it returns a Relation, return a hybrid that works both as function and promise
|
|
116
|
-
if (isRelation(result)) {
|
|
117
|
-
return createRelationshipProxy(result);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
catch (e) {
|
|
122
|
-
// If calling the method fails, just return the original function
|
|
123
|
-
// This handles cases where the method requires parameters or has side effects
|
|
133
|
+
// For relationship methods (zero-parameter functions), return a hybrid proxy
|
|
134
|
+
// The proxy will lazily call the method when needed (when awaited or called)
|
|
135
|
+
const boundMethod = value.bind(target);
|
|
136
|
+
const paramCount = value.length;
|
|
137
|
+
// Only create proxy for zero-parameter methods (potential relationships)
|
|
138
|
+
if (paramCount === 0) {
|
|
139
|
+
// Return a hybrid that can be both called and awaited
|
|
140
|
+
// We don't call the method here - we let the proxy call it when needed
|
|
141
|
+
return createRelationshipProxy(boundMethod);
|
|
124
142
|
}
|
|
125
|
-
// Return the original value for
|
|
143
|
+
// Return the original value for methods with parameters
|
|
126
144
|
return value;
|
|
145
|
+
},
|
|
146
|
+
// Pass through set operations without interference
|
|
147
|
+
set(target, property, value, receiver) {
|
|
148
|
+
return Reflect.set(target, property, value, receiver);
|
|
127
149
|
}
|
|
128
150
|
});
|
|
129
151
|
}
|
|
@@ -140,4 +162,110 @@ class HasDynamicRelationsMixin {
|
|
|
140
162
|
}
|
|
141
163
|
}
|
|
142
164
|
exports.HasDynamicRelationsMixin = HasDynamicRelationsMixin;
|
|
165
|
+
/**
|
|
166
|
+
* Decorator to convert a relationship method into a dynamic property
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* class Post extends Ensemble {
|
|
170
|
+
* @DynamicRelation
|
|
171
|
+
* user!: DynamicRelationAccessor<User>;
|
|
172
|
+
* user(): BelongsTo<User, this> {
|
|
173
|
+
* return this.belongsTo(User, 'user_id');
|
|
174
|
+
* }
|
|
175
|
+
*
|
|
176
|
+
* @DynamicRelation
|
|
177
|
+
* comments!: DynamicRelationAccessor<Comment[]>;
|
|
178
|
+
* comments(): HasMany<Comment, this> {
|
|
179
|
+
* return this.hasMany(Comment);
|
|
180
|
+
* }
|
|
181
|
+
* }
|
|
182
|
+
*
|
|
183
|
+
* // Now you can use:
|
|
184
|
+
* const user = await post.user; // Type: User
|
|
185
|
+
* const comments = await post.comments; // Type: Comment[]
|
|
186
|
+
*/
|
|
187
|
+
function DynamicRelation(value, context) {
|
|
188
|
+
// Modern decorator (TypeScript 5+ with context as second parameter)
|
|
189
|
+
if (context && context.kind === 'method') {
|
|
190
|
+
context.addInitializer(function () {
|
|
191
|
+
const methodName = context.name;
|
|
192
|
+
const originalMethod = value;
|
|
193
|
+
// Define a getter on the instance
|
|
194
|
+
Object.defineProperty(this, methodName, {
|
|
195
|
+
get() {
|
|
196
|
+
const relation = originalMethod.call(this);
|
|
197
|
+
const fn = function (...args) {
|
|
198
|
+
return relation;
|
|
199
|
+
};
|
|
200
|
+
fn.then = function (resolve, reject) {
|
|
201
|
+
return relation.getResults().then(resolve, reject);
|
|
202
|
+
};
|
|
203
|
+
fn.catch = function (reject) {
|
|
204
|
+
return relation.getResults().catch(reject);
|
|
205
|
+
};
|
|
206
|
+
fn.finally = function (onFinally) {
|
|
207
|
+
return relation.getResults().finally(onFinally);
|
|
208
|
+
};
|
|
209
|
+
return fn;
|
|
210
|
+
},
|
|
211
|
+
configurable: true,
|
|
212
|
+
enumerable: false
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
return value;
|
|
216
|
+
}
|
|
217
|
+
// Legacy decorator (target, propertyKey, descriptor)
|
|
218
|
+
const target = value;
|
|
219
|
+
const propertyKey = context;
|
|
220
|
+
const descriptor = arguments[2];
|
|
221
|
+
if (descriptor && typeof descriptor === 'object' && 'value' in descriptor) {
|
|
222
|
+
const originalMethod = descriptor.value;
|
|
223
|
+
delete descriptor.value;
|
|
224
|
+
delete descriptor.writable;
|
|
225
|
+
descriptor.get = function () {
|
|
226
|
+
const relation = originalMethod.call(this);
|
|
227
|
+
const fn = function (...args) {
|
|
228
|
+
return relation;
|
|
229
|
+
};
|
|
230
|
+
fn.then = function (resolve, reject) {
|
|
231
|
+
return relation.getResults().then(resolve, reject);
|
|
232
|
+
};
|
|
233
|
+
fn.catch = function (reject) {
|
|
234
|
+
return relation.getResults().catch(reject);
|
|
235
|
+
};
|
|
236
|
+
fn.finally = function (onFinally) {
|
|
237
|
+
return relation.getResults().finally(onFinally);
|
|
238
|
+
};
|
|
239
|
+
return fn;
|
|
240
|
+
};
|
|
241
|
+
return descriptor;
|
|
242
|
+
}
|
|
243
|
+
return value;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Helper to define dynamic relation getters programmatically
|
|
247
|
+
* Use this if you can't use decorators
|
|
248
|
+
*/
|
|
249
|
+
function defineDynamicRelation(target, relationName, relationMethod) {
|
|
250
|
+
Object.defineProperty(target, relationName, {
|
|
251
|
+
get() {
|
|
252
|
+
const relation = relationMethod.call(this);
|
|
253
|
+
const fn = function (...args) {
|
|
254
|
+
return relation;
|
|
255
|
+
};
|
|
256
|
+
fn.then = function (resolve, reject) {
|
|
257
|
+
return relation.getResults().then(resolve, reject);
|
|
258
|
+
};
|
|
259
|
+
fn.catch = function (reject) {
|
|
260
|
+
return relation.getResults().catch(reject);
|
|
261
|
+
};
|
|
262
|
+
fn.finally = function (onFinally) {
|
|
263
|
+
return relation.getResults().finally(onFinally);
|
|
264
|
+
};
|
|
265
|
+
return fn;
|
|
266
|
+
},
|
|
267
|
+
enumerable: false,
|
|
268
|
+
configurable: true
|
|
269
|
+
});
|
|
270
|
+
}
|
|
143
271
|
//# sourceMappingURL=HasDynamicRelations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"HasDynamicRelations.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasDynamicRelations.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,26 @@ export declare abstract class HasRelationshipsMixin {
|
|
|
37
37
|
* Define a many-to-many relationship
|
|
38
38
|
*/
|
|
39
39
|
protected belongsToMany<TRelated extends Ensemble>(related: new () => TRelated, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, relation?: string): BelongsToMany<TRelated, any>;
|
|
40
|
+
/**
|
|
41
|
+
* Define a polymorphic one-to-one relationship
|
|
42
|
+
*/
|
|
43
|
+
protected morphOne<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphOne').MorphOne<TRelated, any>;
|
|
44
|
+
/**
|
|
45
|
+
* Define a polymorphic one-to-many relationship
|
|
46
|
+
*/
|
|
47
|
+
protected morphMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, type?: string | null, id?: string | null, localKey?: string): import('../Relations/MorphMany').MorphMany<TRelated, any>;
|
|
48
|
+
/**
|
|
49
|
+
* Define a polymorphic inverse relationship
|
|
50
|
+
*/
|
|
51
|
+
protected morphTo(name: string, type?: string, id?: string, ownerKey?: string): import('../Relations/MorphTo').MorphTo<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Define a polymorphic many-to-many relationship
|
|
54
|
+
*/
|
|
55
|
+
protected morphToMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string, inverse?: boolean): import('../Relations/MorphToMany').MorphToMany<TRelated, any>;
|
|
56
|
+
/**
|
|
57
|
+
* Define the inverse of a polymorphic many-to-many relationship
|
|
58
|
+
*/
|
|
59
|
+
protected morphedByMany<TRelated extends Ensemble>(related: new () => TRelated, name: string, table?: string, foreignPivotKey?: string, relatedPivotKey?: string, parentKey?: string, relatedKey?: string): import('../Relations/MorphedByMany').MorphedByMany<TRelated, any>;
|
|
40
60
|
/**
|
|
41
61
|
* Get the joining table name for a many-to-many relation
|
|
42
62
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HasRelationships.d.ts","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,63 @@ class HasRelationshipsMixin {
|
|
|
68
68
|
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
69
69
|
return new BelongsToMany_1.BelongsToMany(instance.newQuery(), this, table, foreignPivotKey, relatedPivotKey, finalParentKey, finalRelatedKey, relation || '');
|
|
70
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Define a polymorphic one-to-one relationship
|
|
73
|
+
*/
|
|
74
|
+
morphOne(related, name, type, id, localKey) {
|
|
75
|
+
const instance = new related();
|
|
76
|
+
const { MorphOne } = require('../Relations/MorphOne');
|
|
77
|
+
const finalLocalKey = localKey || this.getKeyName();
|
|
78
|
+
return new MorphOne(instance.newQuery(), this, name, type, id, finalLocalKey);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Define a polymorphic one-to-many relationship
|
|
82
|
+
*/
|
|
83
|
+
morphMany(related, name, type, id, localKey) {
|
|
84
|
+
const instance = new related();
|
|
85
|
+
const { MorphMany } = require('../Relations/MorphMany');
|
|
86
|
+
const finalLocalKey = localKey || this.getKeyName();
|
|
87
|
+
return new MorphMany(instance.newQuery(), this, name, type, id, finalLocalKey);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Define a polymorphic inverse relationship
|
|
91
|
+
*/
|
|
92
|
+
morphTo(name, type, id, ownerKey) {
|
|
93
|
+
const { MorphTo } = require('../Relations/MorphTo');
|
|
94
|
+
const finalType = type || `${name}_type`;
|
|
95
|
+
const finalId = id || `${name}_id`;
|
|
96
|
+
const finalOwnerKey = ownerKey || 'id';
|
|
97
|
+
// MorphTo needs special handling - creates query builder dynamically
|
|
98
|
+
return new MorphTo(this.newQuery(), this, finalId, finalType, finalOwnerKey, name);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Define a polymorphic many-to-many relationship
|
|
102
|
+
*/
|
|
103
|
+
morphToMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey, inverse = false) {
|
|
104
|
+
const instance = new related();
|
|
105
|
+
const { MorphToMany } = require('../Relations/MorphToMany');
|
|
106
|
+
const finalTable = table || `${name}s`;
|
|
107
|
+
const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
|
|
108
|
+
const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
|
|
109
|
+
const morphType = `${name}_type`;
|
|
110
|
+
const finalParentKey = parentKey || this.getKeyName();
|
|
111
|
+
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
112
|
+
return new MorphToMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '', inverse);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Define the inverse of a polymorphic many-to-many relationship
|
|
116
|
+
*/
|
|
117
|
+
morphedByMany(related, name, table, foreignPivotKey, relatedPivotKey, parentKey, relatedKey) {
|
|
118
|
+
const instance = new related();
|
|
119
|
+
const { MorphedByMany } = require('../Relations/MorphedByMany');
|
|
120
|
+
const finalTable = table || `${name}s`;
|
|
121
|
+
const finalForeignPivotKey = foreignPivotKey || `${name}_id`;
|
|
122
|
+
const finalRelatedPivotKey = relatedPivotKey || instance.getForeignKey();
|
|
123
|
+
const morphType = `${name}_type`;
|
|
124
|
+
const finalParentKey = parentKey || this.getKeyName();
|
|
125
|
+
const finalRelatedKey = relatedKey || instance.getKeyName();
|
|
126
|
+
return new MorphedByMany(instance.newQuery(), this, name, finalTable, finalForeignPivotKey, finalRelatedPivotKey, morphType, finalParentKey, finalRelatedKey, '');
|
|
127
|
+
}
|
|
71
128
|
/**
|
|
72
129
|
* Get the joining table name for a many-to-many relation
|
|
73
130
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HasRelationships.js","sourceRoot":"","sources":["../../../../src/Database/Ensemble/Concerns/HasRelationships.ts"],"names":[],"mappings":"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"}
|