Code coverage report for dist\lib\ModelHelpers.js

Statements: 100% (28 / 28)      Branches: 100% (2 / 2)      Functions: 100% (8 / 8)      Lines: 100% (27 / 27)      Ignored: none     

All files » dist/lib/ » ModelHelpers.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 651 1 1 1 1 31 31 31 31             1 249                 1 397               1 580 603 27 580               1 580 580             1 18 18 18   1   1    
var skmatc = require('skmatc');
var Omnom_1 = require('./utils/Omnom');
var _ = require('lodash');
var ModelHelpers = (function () {
    function ModelHelpers(model) {
        var _this = this;
        this.model = model;
        this._validator = new skmatc(model.schema);
        model.validators.forEach(function (validator) { return _this._validator.register(validator); });
    }
    /**
     * Validates a document to ensure that it matches the model's ISchema requirements
     * @param {any} document The document to validate against the ISchema
     * @returns {SkmatcCore.IResult} The result of the validation
     */
    ModelHelpers.prototype.validate = function (document) {
        return this._validator.validate(document);
    };
    /**
     * Wraps the given document in an instance wrapper for use throughout the application
     * @param {any} document The document to be wrapped as an instance
     * @param {Boolean} isNew Whether the instance originated from the database or was created by the application
     * @param {Boolean} isPartial Whether the document supplied contains all information present in the database
     * @returns {any} An instance which wraps this document
     */
    ModelHelpers.prototype.wrapDocument = function (document, isNew, isPartial) {
        return new this.model.Instance(document, isNew, isPartial);
    };
    /**
     * Converts the given document to its database form into a form
     * using the transforms defined on the model.
     * @param {any} document The document to be converted
     * @returns {any} A new document cloned from the original and transformed
     */
    ModelHelpers.prototype.transformToDB = function (document) {
        for (var property in this.model.transforms)
            if (document.hasOwnProperty(property))
                document[property] = this.model.transforms[property].toDB(document[property]);
        return document;
    };
    /**
     * Converts the given document to its database form into a form
     * using the transforms defined on the model.
     * @param {any} document The document to be converted
     * @returns {any} A new document cloned from the original and transformed
     */
    ModelHelpers.prototype.convertToDB = function (document) {
        var doc = _.cloneDeep(document);
        return this.transformToDB(doc);
    };
    /**
     * Performs a diff operation between two documents and creates a MongoDB changes object to represent the differences
     * @param {any} original The original document prior to changes being made
     * @param {any} modified The document after changes were made
     */
    ModelHelpers.prototype.diff = function (original, modified) {
        var omnom = new Omnom_1.default();
        omnom.diff(original, modified);
        return omnom.changes;
    };
    return ModelHelpers;
})();
exports.default = ModelHelpers;
 
//# sourceMappingURL=../lib/ModelHelpers.js.map