metal-orm 1.0.70 → 1.0.72
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/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
- package/src/orm/entity.ts +74 -47
package/dist/index.js
CHANGED
|
@@ -5831,6 +5831,10 @@ var instantiateWrapper = (meta, relationName, relation, owner, createEntity) =>
|
|
|
5831
5831
|
};
|
|
5832
5832
|
|
|
5833
5833
|
// src/orm/entity.ts
|
|
5834
|
+
var isRelationWrapperLoaded = (value) => {
|
|
5835
|
+
if (!value || typeof value !== "object") return false;
|
|
5836
|
+
return Boolean(value.loaded);
|
|
5837
|
+
};
|
|
5834
5838
|
var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOptions = /* @__PURE__ */ new Map()) => {
|
|
5835
5839
|
const target = { ...row };
|
|
5836
5840
|
const meta = {
|
|
@@ -5843,6 +5847,19 @@ var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOption
|
|
|
5843
5847
|
relationWrappers: /* @__PURE__ */ new Map()
|
|
5844
5848
|
};
|
|
5845
5849
|
const createRelationEntity = (relationTable, relationRow) => createEntityFromRow(meta.ctx, relationTable, relationRow);
|
|
5850
|
+
const buildJson = (self) => {
|
|
5851
|
+
const json = {};
|
|
5852
|
+
for (const key of Object.keys(target)) {
|
|
5853
|
+
json[key] = self[key];
|
|
5854
|
+
}
|
|
5855
|
+
for (const [relationName, wrapper] of meta.relationWrappers) {
|
|
5856
|
+
if (Object.prototype.hasOwnProperty.call(json, relationName)) continue;
|
|
5857
|
+
if (isRelationWrapperLoaded(wrapper)) {
|
|
5858
|
+
json[relationName] = wrapper;
|
|
5859
|
+
}
|
|
5860
|
+
}
|
|
5861
|
+
return json;
|
|
5862
|
+
};
|
|
5846
5863
|
Object.defineProperty(target, ENTITY_META, {
|
|
5847
5864
|
value: meta,
|
|
5848
5865
|
enumerable: false,
|
|
@@ -5862,6 +5879,12 @@ var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOption
|
|
|
5862
5879
|
return void 0;
|
|
5863
5880
|
};
|
|
5864
5881
|
}
|
|
5882
|
+
if (prop === "toJSON") {
|
|
5883
|
+
if (prop in targetObj) {
|
|
5884
|
+
return Reflect.get(targetObj, prop, receiver);
|
|
5885
|
+
}
|
|
5886
|
+
return () => buildJson(receiver);
|
|
5887
|
+
}
|
|
5865
5888
|
if (typeof prop === "string" && table.relations[prop]) {
|
|
5866
5889
|
return getRelationWrapper(meta, prop, receiver, createRelationEntity);
|
|
5867
5890
|
}
|