UNPKG

periodicjs.core.data

Version:

Core data is the ORM wrapping component of periodicjs.core.controller that provides database adapters for commonly used databases (ie. mongo, sql, postgres). Adapters provide a standard set of methods and options regardless of the type of database and so

50 lines (48 loc) 1.09 kB
'use strict'; const mongoose = require('mongoose'); const path = require('path'); /** * Default changeset schema for mongo databases * @type {mongoose.Schema} */ const CHANGESET = new mongoose.Schema({ createdat: { index: true, type: Date, default: Date.now }, editor: { type: mongoose.Schema.ObjectId, ref: 'User' }, editor_username: String, changeset: mongoose.Schema.Types.Mixed, parent_document: { id: { index: true, type: mongoose.Schema.ObjectId }, document_type: { index: true, type: String } } }); /** * Exports the changeset model as a singleton * @return {Object} Returns a mongo adapter with changeset as its model property */ module.exports = (function (Mongo_Adapter) { let ChangeSet; try { ChangeSet = mongoose.model('Changeset', CHANGESET); } catch (e) { ChangeSet = mongoose.model('Changeset'); } let Changes = new Mongo_Adapter({ model: ChangeSet, track_changes: false }); return { Changes }; })(require(path.join(__dirname, '../../adapters/mongo')));