iridium
Version:
A custom lightweight ORM for MongoDB designed for power-users
214 lines (212 loc) • 7.09 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for dist\lib\ModelHandlers.js</title>
<meta charset="utf-8">
<link rel="stylesheet" href="../../prettify.css">
<link rel="stylesheet" href="../../base.css">
<style type='text/css'>
div.coverage-summary .sorter {
background-image: url(../../sort-arrow-sprite.png);
}
</style>
</head>
<body>
<div class="header high">
<h1>Code coverage report for <span class="entity">dist\lib\ModelHandlers.js</span></h1>
<h2>
Statements: <span class="metric">100% <small>(39 / 39)</small></span>
Branches: <span class="metric">100% <small>(19 / 19)</small></span>
Functions: <span class="metric">100% <small>(10 / 10)</small></span>
Lines: <span class="metric">100% <small>(38 / 38)</small></span>
Ignored: <span class="metric"><span class="ignore-none">none</span></span>
</h2>
<div class="path"><a href="../../index.html">All files</a> » <a href="index.html">dist/lib/</a> » ModelHandlers.js</div>
</div>
<div class="body">
<pre><table class="coverage">
<tr><td class="line-count">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</td><td class="line-coverage"><span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">31</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">410</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">35</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-yes">35</span>
<span class="cline-any cline-yes">412</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">116</span>
<span class="cline-any cline-yes">116</span>
<span class="cline-any cline-yes">228</span>
<span class="cline-any cline-yes">228</span>
<span class="cline-any cline-yes">19</span>
<span class="cline-any cline-yes">228</span>
<span class="cline-any cline-yes">228</span>
<span class="cline-any cline-yes">228</span>
<span class="cline-any cline-yes">8</span>
<span class="cline-any cline-yes">220</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">16</span>
<span class="cline-any cline-yes">16</span>
<span class="cline-any cline-yes">16</span>
<span class="cline-any cline-yes">4</span>
<span class="cline-any cline-yes">16</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">var _ = require('lodash');
var Bluebird = require('bluebird');
var ModelHandlers = (function () {
function ModelHandlers(model) {
this.model = model;
}
ModelHandlers.prototype.documentReceived = function (conditions, result, wrapper, options) {
var _this = this;
if (options === void 0) { options = {}; }
_.defaults(options, {
cache: true,
partial: false
});
return Bluebird.resolve(result).then(function (target) {
return Bluebird.resolve().then(function () {
// Cache the document if caching is enabled
if (_this.model.core.cache && options.cache && !options.fields) {
_this.model.cache.set(target); // Does not block execution pipeline - fire and forget
}
// Trigger the received hook
if (_this.model.hooks.onRetrieved)
_this.model.hooks.onRetrieved(target);
// Wrap the document and trigger the ready hook
var wrapped = wrapper(target, false, !!options.fields);
if (_this.model.hooks.onReady && wrapped instanceof _this.model.Instance)
_this.model.hooks.onReady(wrapped);
return wrapped;
});
});
};
ModelHandlers.prototype.creatingDocuments = function (documents) {
var _this = this;
return Bluebird.all(documents.map(function (document) {
return Bluebird.resolve().then(function () {
if (_this.model.hooks.onCreating)
_this.model.hooks.onCreating(document);
document = _this.model.helpers.convertToDB(document);
var validation = _this.model.helpers.validate(document);
if (validation.failed)
return Bluebird.reject(validation.error);
return document;
});
}));
};
ModelHandlers.prototype.savingDocument = function (instance, changes) {
var _this = this;
return Bluebird.resolve().then(function () {
if (_this.model.hooks.onSaving)
_this.model.hooks.onSaving(instance, changes);
return instance;
});
};
return ModelHandlers;
})();
exports.default = ModelHandlers;
//# sourceMappingURL=../lib/ModelHandlers.js.map</pre></td></tr>
</table></pre>
</div>
<div class="footer">
<div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Thu Jun 18 2015 15:09:28 GMT+0200 (South Africa Standard Time)</div>
</div>
<script src="../../prettify.js"></script>
<script>
window.onload = function () {
if (typeof prettyPrint === 'function') {
prettyPrint();
}
};
</script>
<script src="../../sorter.js"></script>
</body>
</html>