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.cjs
CHANGED
|
@@ -6106,6 +6106,10 @@ var instantiateWrapper = (meta, relationName, relation, owner, createEntity) =>
|
|
|
6106
6106
|
};
|
|
6107
6107
|
|
|
6108
6108
|
// src/orm/entity.ts
|
|
6109
|
+
var isRelationWrapperLoaded = (value) => {
|
|
6110
|
+
if (!value || typeof value !== "object") return false;
|
|
6111
|
+
return Boolean(value.loaded);
|
|
6112
|
+
};
|
|
6109
6113
|
var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOptions = /* @__PURE__ */ new Map()) => {
|
|
6110
6114
|
const target = { ...row };
|
|
6111
6115
|
const meta = {
|
|
@@ -6118,6 +6122,19 @@ var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOption
|
|
|
6118
6122
|
relationWrappers: /* @__PURE__ */ new Map()
|
|
6119
6123
|
};
|
|
6120
6124
|
const createRelationEntity = (relationTable, relationRow) => createEntityFromRow(meta.ctx, relationTable, relationRow);
|
|
6125
|
+
const buildJson = (self) => {
|
|
6126
|
+
const json = {};
|
|
6127
|
+
for (const key of Object.keys(target)) {
|
|
6128
|
+
json[key] = self[key];
|
|
6129
|
+
}
|
|
6130
|
+
for (const [relationName, wrapper] of meta.relationWrappers) {
|
|
6131
|
+
if (Object.prototype.hasOwnProperty.call(json, relationName)) continue;
|
|
6132
|
+
if (isRelationWrapperLoaded(wrapper)) {
|
|
6133
|
+
json[relationName] = wrapper;
|
|
6134
|
+
}
|
|
6135
|
+
}
|
|
6136
|
+
return json;
|
|
6137
|
+
};
|
|
6121
6138
|
Object.defineProperty(target, ENTITY_META, {
|
|
6122
6139
|
value: meta,
|
|
6123
6140
|
enumerable: false,
|
|
@@ -6137,6 +6154,12 @@ var createEntityProxy = (ctx, table, row, lazyRelations = [], lazyRelationOption
|
|
|
6137
6154
|
return void 0;
|
|
6138
6155
|
};
|
|
6139
6156
|
}
|
|
6157
|
+
if (prop === "toJSON") {
|
|
6158
|
+
if (prop in targetObj) {
|
|
6159
|
+
return Reflect.get(targetObj, prop, receiver);
|
|
6160
|
+
}
|
|
6161
|
+
return () => buildJson(receiver);
|
|
6162
|
+
}
|
|
6140
6163
|
if (typeof prop === "string" && table.relations[prop]) {
|
|
6141
6164
|
return getRelationWrapper(meta, prop, receiver, createRelationEntity);
|
|
6142
6165
|
}
|