iridium
Version:
A custom lightweight ORM for MongoDB designed for power-users
244 lines (242 loc) • 7.92 kB
HTML
<html lang="en">
<head>
<title>Code coverage report for dist\lib\Decorators.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\Decorators.js</span></h1>
<h2>
Statements: <span class="metric">100% <small>(46 / 46)</small></span>
Branches: <span class="metric">80% <small>(24 / 30)</small></span>
Functions: <span class="metric">100% <small>(14 / 14)</small></span>
Lines: <span class="metric">100% <small>(45 / 45)</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> » Decorators.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
58
59
60
61
62
63
64
65
66
67</td><td class="line-coverage"><span class="cline-any cline-neutral"> </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">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">1</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">1</span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-yes">2</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">1</span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-yes">23</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">1</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">9</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-yes">3</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">5</span>
<span class="cline-any cline-yes">2</span>
<span class="cline-any cline-neutral"> </span>
<span class="cline-any cline-yes">3</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">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-neutral"> </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-neutral"> </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">1</span>
<span class="cline-any cline-yes">1</span>
<span class="cline-any cline-yes">29</span>
<span class="cline-any cline-yes">21</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-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/// <reference path="../_references.d.ts" />
var MongoDB = require('mongodb');
var _ = require('lodash');
var skmatc = require('skmatc');
function Collection(name) {
return function (target) {
target.collection = name;
};
}
exports.Collection = Collection;
function Index(spec, options) {
return function (target) {
target.indexes = (target.indexes || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.concat({ spec: spec, options: options || {} });
};
}
exports.Index = Index;
function Validate(forType, validate) {
return function (target) {
target.validators = (target.validators || <span class="branch-1 cbranch-no" title="branch not covered" >[])</span>.concat(skmatc.create(function (schema) { return schema === forType; }, validate));
};
}
exports.Validate = Validate;
function Property() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i - 0] = arguments[_i];
}
var name = null, asType = false, required = true;
if (args.length > 1 && typeof args[args.length - 1] === 'boolean')
required = args.pop();
return function (target, property) {
if (!property)
name = args.shift();
else {
name = property;
target = target.constructor;
}
asType = args.pop() || <span class="branch-1 cbranch-no" title="branch not covered" >false;</span>
target.schema = _.clone(target.schema || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>;
if (!required && typeof asType !== 'boolean')
target.schema[name] = { $required: required, $type: asType };
else
target.schema[name] = asType;
};
}
exports.Property = Property;
function Transform(fromDB, toDB) {
return function (target, property) {
target.constructor.transforms = _.clone(target.constructor.transforms || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>;
target.constructor.transforms[property] = {
fromDB: fromDB,
toDB: toDB
};
};
}
exports.Transform = Transform;
function ObjectID(target, name) {
target.constructor.schema = _.clone(target.constructor.schema || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>;
target.constructor.schema[name] = MongoDB.ObjectID;
target.constructor.transforms[name] = {
fromDB: function (value) { return value._bsontype == 'ObjectID' ? new MongoDB.ObjectID(value.id).toHexString() : value; },
toDB: function (value) { return value && typeof value === 'string' ? new MongoDB.ObjectID(value) : value; }
};
}
exports.ObjectID = ObjectID;
//# sourceMappingURL=../lib/Decorators.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 14:55:18 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>