@orchestr-sh/orchestr 1.5.7 → 1.5.8
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.
|
@@ -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":"AAAA;;;;;GAKG;AAiFH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CA0DrE;AAED;;GAEG;AACH,8BAAsB,wBAAwB;IAC5C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,IAAI;CAGzC"}
|
|
@@ -36,6 +36,44 @@ function createRelationshipProxy(relation) {
|
|
|
36
36
|
};
|
|
37
37
|
return fn;
|
|
38
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* List of method prefixes that should never be treated as relationships
|
|
41
|
+
*/
|
|
42
|
+
const EXCLUDED_PREFIXES = [
|
|
43
|
+
'get', 'set', 'is', 'has', 'should', 'can',
|
|
44
|
+
'fill', 'save', 'delete', 'update', 'create',
|
|
45
|
+
'find', 'where', 'with', 'load', 'fresh',
|
|
46
|
+
'toObject', 'toJSON', 'toString', 'valueOf'
|
|
47
|
+
];
|
|
48
|
+
/**
|
|
49
|
+
* List of known internal methods that should never be treated as relationships
|
|
50
|
+
*/
|
|
51
|
+
const EXCLUDED_METHODS = [
|
|
52
|
+
'constructor', 'getTable', 'getKeyName', 'getKey', 'getAttribute',
|
|
53
|
+
'setAttribute', 'newQuery', 'newInstance', 'getConnection',
|
|
54
|
+
'query', 'getDirty', 'relationLoaded', 'getRelation', 'setRelation',
|
|
55
|
+
'syncOriginal', 'refresh', 'touch', 'makeHidden', 'makeVisible'
|
|
56
|
+
];
|
|
57
|
+
/**
|
|
58
|
+
* Check if a method name should be excluded from dynamic relation detection
|
|
59
|
+
*/
|
|
60
|
+
function shouldExcludeMethod(methodName) {
|
|
61
|
+
// Exclude if in the excluded methods list
|
|
62
|
+
if (EXCLUDED_METHODS.includes(methodName)) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
// Exclude if it starts with an underscore (private/internal)
|
|
66
|
+
if (methodName.startsWith('_')) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
// Exclude if it starts with any excluded prefix
|
|
70
|
+
for (const prefix of EXCLUDED_PREFIXES) {
|
|
71
|
+
if (methodName.startsWith(prefix)) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
39
77
|
/**
|
|
40
78
|
* Wrap an Ensemble instance with a Proxy that automatically resolves relationships
|
|
41
79
|
*/
|
|
@@ -54,6 +92,10 @@ function withDynamicRelations(instance) {
|
|
|
54
92
|
if (typeof value !== 'function') {
|
|
55
93
|
return value;
|
|
56
94
|
}
|
|
95
|
+
// Exclude methods that should never be treated as relationships
|
|
96
|
+
if (shouldExcludeMethod(property)) {
|
|
97
|
+
return value;
|
|
98
|
+
}
|
|
57
99
|
// Check if this property is a loaded relation
|
|
58
100
|
if (target.relationLoaded && target.relationLoaded(property)) {
|
|
59
101
|
return target.getRelation(property);
|
|
@@ -78,7 +120,7 @@ function withDynamicRelations(instance) {
|
|
|
78
120
|
}
|
|
79
121
|
catch (e) {
|
|
80
122
|
// If calling the method fails, just return the original function
|
|
81
|
-
// This handles cases where the method requires parameters
|
|
123
|
+
// This handles cases where the method requires parameters or has side effects
|
|
82
124
|
}
|
|
83
125
|
// Return the original value for non-relationship properties
|
|
84
126
|
return value;
|
|
@@ -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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"}
|
package/package.json
CHANGED