Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
refactor: rename doc to obj in applyVirtuals helper
  • Loading branch information
vkarpov15 committed Sep 25, 2024
commit fdfb3856ef8833ca86f7f1f53c7cddc5a4518886
32 changes: 16 additions & 16 deletions lib/helpers/document/applyVirtuals.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ module.exports = applyVirtuals;
* Apply a given schema's virtuals to a given POJO
*
* @param {Schema} schema
* @param {Object} doc
* @param {Object} obj
* @param {Array<string>} [virtuals] optional whitelist of virtuals to apply
* @returns
*/

function applyVirtuals(schema, doc, virtuals) {
if (doc == null) {
return doc;
function applyVirtuals(schema, obj, virtuals) {
if (obj == null) {
return obj;
}

let virtualsForChildren = virtuals;
Expand All @@ -33,8 +33,8 @@ function applyVirtuals(schema, doc, virtuals) {
}
}

applyVirtualsToChildren(schema, doc, virtualsForChildren);
return applyVirtualsToDoc(schema, doc, toApply);
applyVirtualsToChildren(schema, obj, virtualsForChildren);
return applyVirtualsToDoc(schema, obj, toApply);
}

/**
Expand All @@ -53,8 +53,8 @@ function applyVirtualsToChildren(schema, res, virtuals) {
if (!_path) {
continue;
}
const _doc = mpath.get(_path, res);
if (_doc == null || (Array.isArray(_doc) && _doc.flat(Infinity).length === 0)) {
const _obj = mpath.get(_path, res);
if (_obj == null || (Array.isArray(_obj) && _obj.flat(Infinity).length === 0)) {
continue;
}

Expand All @@ -72,7 +72,7 @@ function applyVirtualsToChildren(schema, res, virtuals) {
}
}

applyVirtuals(_schema, _doc, virtualsForChild);
applyVirtuals(_schema, _obj, virtualsForChild);
attachedVirtuals = true;
}

Expand All @@ -90,12 +90,12 @@ function applyVirtualsToChildren(schema, res, virtuals) {
* @returns
*/

function applyVirtualsToDoc(schema, doc, virtuals) {
if (doc == null || typeof doc !== 'object') {
function applyVirtualsToDoc(schema, obj, virtuals) {
if (obj == null || typeof obj !== 'object') {
return;
}
if (Array.isArray(doc)) {
for (const el of doc) {
if (Array.isArray(obj)) {
for (const el of obj) {
applyVirtualsToDoc(schema, el, virtuals);
}
return;
Expand All @@ -106,7 +106,7 @@ function applyVirtualsToDoc(schema, doc, virtuals) {
const discriminator = schema.discriminators[discriminatorKey];
const key = discriminator.discriminatorMapping.key;
const value = discriminator.discriminatorMapping.value;
if (doc[key] == value) {
if (obj[key] == value) {
schema = discriminator;
break;
}
Expand All @@ -126,12 +126,12 @@ function applyVirtualsToDoc(schema, doc, virtuals) {
: virtual.indexOf('.') === -1
? [virtual]
: virtual.split('.');
let cur = doc;
let cur = obj;
for (let i = 0; i < sp.length - 1; ++i) {
cur[sp[i]] = sp[i] in cur ? cur[sp[i]] : {};
cur = cur[sp[i]];
}
let val = virtualType.applyGetters(cur[sp[sp.length - 1]], doc);
let val = virtualType.applyGetters(cur[sp[sp.length - 1]], obj);
const isPopulateVirtual =
virtualType.options && (virtualType.options.ref || virtualType.options.refPath);
if (isPopulateVirtual && val === undefined) {
Expand Down