mongoosastic-ts
Version:
A mongoose plugin that indexes models into elastic search
42 lines • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.serialize = void 0;
function serialize(model, mapping) {
let name;
function _serializeObject(object, mappingData) {
const serialized = {};
let field;
let val;
for (field in mappingData.properties) {
if (mappingData.properties.hasOwnProperty(field)) {
val = serialize.call(object, object[field], mappingData.properties[field]);
if (val !== undefined) {
serialized[field] = val;
}
}
}
return serialized;
}
if (mapping.properties && model) {
if (Array.isArray(model)) {
return model.map((object) => _serializeObject(object, mapping));
}
return _serializeObject(model, mapping);
}
if (mapping.cast && typeof mapping.cast !== 'function') {
throw new Error('es_cast must be a function');
}
const outModel = mapping.cast ? mapping.cast.call(this, model) : model;
if (typeof outModel === 'object' && outModel !== null) {
name = outModel.constructor.name;
if (name === 'ObjectID') {
return outModel.toString();
}
if (name === 'Date') {
return new Date(outModel).toJSON();
}
}
return outModel;
}
exports.serialize = serialize;
//# sourceMappingURL=serialize.js.map