Comparing version 1.1.2 to 1.2.0
@@ -18,8 +18,2 @@ /* | ||
// Adapters | ||
var adapters = {}; | ||
_libAdapter.adapter.builtIns.forEach(function (builtIn) { | ||
adapters[builtIn] = require('./adapters/' + builtIn + '/index')[builtIn]; | ||
}); | ||
/** | ||
@@ -41,10 +35,5 @@ * Binds model and adapter to make usable entity | ||
*/ | ||
var modli = { | ||
use: use, model: _libModel.model, adapter: _libAdapter.adapter, Joi: _libModel.Joi | ||
}; | ||
/** | ||
* Extend modli to include adapters | ||
*/ | ||
exports['default'] = _.extend(modli, adapters); | ||
module.exports = exports['default']; | ||
exports.use = use; | ||
exports.model = _libModel.model; | ||
exports.adapter = _libAdapter.adapter; | ||
exports.Joi = _libModel.Joi; |
@@ -0,1 +1,5 @@ | ||
/** | ||
* Exports the core adapter object | ||
* @namespace adapter | ||
*/ | ||
'use strict'; | ||
@@ -6,8 +10,2 @@ | ||
}); | ||
var fs = require('fs'); | ||
var path = require('path'); | ||
/** | ||
* Exports the core adapter object | ||
* @namespace adapter | ||
*/ | ||
var adapter = {}; | ||
@@ -23,7 +21,2 @@ | ||
/** | ||
* @property {Array} builtIns Available built-in adapters | ||
*/ | ||
adapter.builtIns = []; | ||
/** | ||
* Adds an adapter to the store | ||
@@ -51,2 +44,3 @@ * @param {Object} a The adapter to add | ||
adapter.init = function (a) { | ||
var adapterObj = undefined; | ||
// Ensure model is defined | ||
@@ -57,5 +51,7 @@ if (!adapter.store[a]) { | ||
var source = adapter.store[a].source; | ||
var adapterPath = adapter.builtIns.indexOf(source) >= 0 ? './../adapters/' + source + '/index' : source; | ||
var adapterModule = require(adapterPath); | ||
var adapterObj = adapterModule[Object.keys(adapterModule)[0]]; | ||
if (typeof source === 'object') { | ||
adapterObj = source; | ||
} else { | ||
adapterObj = require(source); | ||
} | ||
// Check config object | ||
@@ -68,21 +64,2 @@ /* istanbul ignore if */ | ||
return adapterObj; | ||
}; | ||
/** | ||
* Adds all adapters to the builtIns array | ||
* @memberof adapter | ||
*/ | ||
/* istanbul ignore next */ | ||
adapter.getBuiltIns = function () { | ||
var src = __dirname + '/../adapters'; | ||
fs.readdirSync(path.resolve(src)).filter(function (file) { | ||
if (fs.statSync(path.join(src, file)).isDirectory()) { | ||
adapter.builtIns.push(file); | ||
} | ||
}); | ||
}; | ||
/** | ||
* Run getBuiltIns to load adapters available | ||
*/ | ||
adapter.getBuiltIns(); | ||
}; |
@@ -1,1 +0,1 @@ | ||
{"/home/fluidbyte/workspace/ta/modli/src/adapters/mysql/index.js":{"path":"/home/fluidbyte/workspace/ta/modli/src/adapters/mysql/index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":7,"9":7,"10":7,"11":0,"12":7,"13":1,"14":2,"15":2,"16":2,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":4,"24":4,"25":4,"26":1,"27":1,"28":1,"29":3,"30":3,"31":3,"32":3,"33":2,"34":1,"35":1,"36":1,"37":3,"38":3,"39":1,"40":1,"41":1,"42":2,"43":2,"44":1,"45":1,"46":2,"47":1,"48":1,"49":1,"50":1,"51":1,"52":0,"53":1,"54":1,"55":1,"56":1,"57":2,"58":2,"59":2,"60":2,"61":1,"62":1,"63":1,"64":1,"65":1},"b":{"1":[0,7],"2":[1,1],"3":[3,1],"4":[3,0],"5":[3,0],"6":[2,1],"7":[1,1],"8":[1,0],"9":[1,0],"10":[0,1],"11":[2,0],"12":[1,1]},"f":{"1":7,"2":7,"3":7,"4":2,"5":2,"6":1,"7":3,"8":3,"9":2,"10":1,"11":1,"12":1,"13":1},"fnMap":{"1":{"name":"(anonymous_1)","line":25,"loc":{"start":{"line":25,"column":14},"end":{"line":25,"column":31}}},"2":{"name":"(anonymous_2)","line":26,"loc":{"start":{"line":26,"column":21},"end":{"line":26,"column":48}}},"3":{"name":"(anonymous_3)","line":27,"loc":{"start":{"line":27,"column":28},"end":{"line":27,"column":51}}},"4":{"name":"(anonymous_4)","line":46,"loc":{"start":{"line":46,"column":15},"end":{"line":46,"column":30}}},"5":{"name":"(anonymous_5)","line":48,"loc":{"start":{"line":48,"column":21},"end":{"line":48,"column":36}}},"6":{"name":"(anonymous_6)","line":62,"loc":{"start":{"line":62,"column":20},"end":{"line":62,"column":37}}},"7":{"name":"(anonymous_7)","line":84,"loc":{"start":{"line":84,"column":15},"end":{"line":84,"column":31}}},"8":{"name":"(anonymous_8)","line":87,"loc":{"start":{"line":87,"column":21},"end":{"line":87,"column":48}}},"9":{"name":"(anonymous_9)","line":113,"loc":{"start":{"line":113,"column":13},"end":{"line":113,"column":30}}},"10":{"name":"(anonymous_10)","line":131,"loc":{"start":{"line":131,"column":15},"end":{"line":131,"column":38}}},"11":{"name":"(anonymous_11)","line":134,"loc":{"start":{"line":134,"column":21},"end":{"line":134,"column":48}}},"12":{"name":"(anonymous_12)","line":160,"loc":{"start":{"line":160,"column":18},"end":{"line":160,"column":35}}},"13":{"name":"(anonymous_13)","line":170,"loc":{"start":{"line":170,"column":15},"end":{"line":170,"column":35}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":34}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":35}},"4":{"start":{"line":12,"column":0},"end":{"line":12,"column":15}},"5":{"start":{"line":14,"column":0},"end":{"line":14,"column":22}},"6":{"start":{"line":18,"column":0},"end":{"line":18,"column":16}},"7":{"start":{"line":25,"column":0},"end":{"line":35,"column":2}},"8":{"start":{"line":26,"column":2},"end":{"line":34,"column":5}},"9":{"start":{"line":27,"column":4},"end":{"line":33,"column":7}},"10":{"start":{"line":28,"column":6},"end":{"line":32,"column":7}},"11":{"start":{"line":29,"column":8},"end":{"line":29,"column":20}},"12":{"start":{"line":31,"column":8},"end":{"line":31,"column":24}},"13":{"start":{"line":46,"column":0},"end":{"line":53,"column":2}},"14":{"start":{"line":47,"column":2},"end":{"line":47,"column":49}},"15":{"start":{"line":48,"column":2},"end":{"line":52,"column":5}},"16":{"start":{"line":49,"column":4},"end":{"line":51,"column":5}},"17":{"start":{"line":50,"column":6},"end":{"line":50,"column":53}},"18":{"start":{"line":62,"column":0},"end":{"line":75,"column":2}},"19":{"start":{"line":64,"column":2},"end":{"line":64,"column":38}},"20":{"start":{"line":65,"column":2},"end":{"line":65,"column":12}},"21":{"start":{"line":66,"column":2},"end":{"line":66,"column":69}},"22":{"start":{"line":67,"column":2},"end":{"line":71,"column":3}},"23":{"start":{"line":68,"column":4},"end":{"line":68,"column":38}},"24":{"start":{"line":69,"column":4},"end":{"line":69,"column":56}},"25":{"start":{"line":70,"column":4},"end":{"line":70,"column":8}},"26":{"start":{"line":72,"column":2},"end":{"line":72,"column":16}},"27":{"start":{"line":74,"column":2},"end":{"line":74,"column":28}},"28":{"start":{"line":84,"column":0},"end":{"line":105,"column":2}},"29":{"start":{"line":85,"column":2},"end":{"line":85,"column":91}},"30":{"start":{"line":87,"column":2},"end":{"line":104,"column":5}},"31":{"start":{"line":89,"column":4},"end":{"line":89,"column":57}},"32":{"start":{"line":90,"column":4},"end":{"line":103,"column":5}},"33":{"start":{"line":91,"column":6},"end":{"line":91,"column":31}},"34":{"start":{"line":94,"column":6},"end":{"line":94,"column":20}},"35":{"start":{"line":95,"column":6},"end":{"line":95,"column":20}},"36":{"start":{"line":96,"column":6},"end":{"line":99,"column":7}},"37":{"start":{"line":97,"column":8},"end":{"line":97,"column":24}},"38":{"start":{"line":98,"column":8},"end":{"line":98,"column":42}},"39":{"start":{"line":100,"column":6},"end":{"line":100,"column":114}},"40":{"start":{"line":102,"column":6},"end":{"line":102,"column":34}},"41":{"start":{"line":113,"column":0},"end":{"line":121,"column":2}},"42":{"start":{"line":114,"column":2},"end":{"line":114,"column":24}},"43":{"start":{"line":115,"column":2},"end":{"line":119,"column":3}},"44":{"start":{"line":116,"column":4},"end":{"line":116,"column":30}},"45":{"start":{"line":118,"column":4},"end":{"line":118,"column":15}},"46":{"start":{"line":120,"column":2},"end":{"line":120,"column":65}},"47":{"start":{"line":131,"column":0},"end":{"line":152,"column":2}},"48":{"start":{"line":132,"column":2},"end":{"line":132,"column":91}},"49":{"start":{"line":134,"column":2},"end":{"line":151,"column":5}},"50":{"start":{"line":135,"column":4},"end":{"line":135,"column":57}},"51":{"start":{"line":136,"column":4},"end":{"line":150,"column":5}},"52":{"start":{"line":137,"column":6},"end":{"line":137,"column":31}},"53":{"start":{"line":139,"column":6},"end":{"line":139,"column":16}},"54":{"start":{"line":140,"column":6},"end":{"line":140,"column":23}},"55":{"start":{"line":141,"column":6},"end":{"line":141,"column":41}},"56":{"start":{"line":142,"column":6},"end":{"line":148,"column":7}},"57":{"start":{"line":143,"column":8},"end":{"line":147,"column":9}},"58":{"start":{"line":144,"column":10},"end":{"line":144,"column":44}},"59":{"start":{"line":145,"column":10},"end":{"line":145,"column":60}},"60":{"start":{"line":146,"column":10},"end":{"line":146,"column":14}},"61":{"start":{"line":149,"column":6},"end":{"line":149,"column":96}},"62":{"start":{"line":160,"column":0},"end":{"line":162,"column":2}},"63":{"start":{"line":161,"column":2},"end":{"line":161,"column":75}},"64":{"start":{"line":170,"column":0},"end":{"line":172,"column":2}},"65":{"start":{"line":171,"column":2},"end":{"line":171,"column":31}}},"branchMap":{"1":{"line":28,"type":"if","locations":[{"start":{"line":28,"column":6},"end":{"line":28,"column":6}},{"start":{"line":28,"column":6},"end":{"line":28,"column":6}}]},"2":{"line":49,"type":"if","locations":[{"start":{"line":49,"column":4},"end":{"line":49,"column":4}},{"start":{"line":49,"column":4},"end":{"line":49,"column":4}}]},"3":{"line":68,"type":"cond-expr","locations":[{"start":{"line":68,"column":28},"end":{"line":68,"column":32}},{"start":{"line":68,"column":35},"end":{"line":68,"column":37}}]},"4":{"line":85,"type":"cond-expr","locations":[{"start":{"line":85,"column":70},"end":{"line":85,"column":75}},{"start":{"line":85,"column":78},"end":{"line":85,"column":90}}]},"5":{"line":85,"type":"binary-expr","locations":[{"start":{"line":85,"column":16},"end":{"line":85,"column":37}},{"start":{"line":85,"column":41},"end":{"line":85,"column":67}}]},"6":{"line":90,"type":"if","locations":[{"start":{"line":90,"column":4},"end":{"line":90,"column":4}},{"start":{"line":90,"column":4},"end":{"line":90,"column":4}}]},"7":{"line":115,"type":"if","locations":[{"start":{"line":115,"column":2},"end":{"line":115,"column":2}},{"start":{"line":115,"column":2},"end":{"line":115,"column":2}}]},"8":{"line":132,"type":"cond-expr","locations":[{"start":{"line":132,"column":70},"end":{"line":132,"column":75}},{"start":{"line":132,"column":78},"end":{"line":132,"column":90}}]},"9":{"line":132,"type":"binary-expr","locations":[{"start":{"line":132,"column":16},"end":{"line":132,"column":37}},{"start":{"line":132,"column":41},"end":{"line":132,"column":67}}]},"10":{"line":136,"type":"if","locations":[{"start":{"line":136,"column":4},"end":{"line":136,"column":4}},{"start":{"line":136,"column":4},"end":{"line":136,"column":4}}]},"11":{"line":143,"type":"if","locations":[{"start":{"line":143,"column":8},"end":{"line":143,"column":8}},{"start":{"line":143,"column":8},"end":{"line":143,"column":8}}]},"12":{"line":144,"type":"cond-expr","locations":[{"start":{"line":144,"column":34},"end":{"line":144,"column":38}},{"start":{"line":144,"column":41},"end":{"line":144,"column":43}}]}}},"/home/fluidbyte/workspace/ta/modli/src/adapters/nedb/index.js":{"path":"/home/fluidbyte/workspace/ta/modli/src/adapters/nedb/index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":2,"8":2,"9":1,"10":3,"11":3,"12":3,"13":3,"14":2,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":0,"24":1,"25":1,"26":1,"27":1,"28":1},"b":{"1":[3,0],"2":[3,0],"3":[2,1],"4":[1,0],"5":[1,0],"6":[0,1]},"f":{"1":2,"2":3,"3":3,"4":1,"5":1,"6":1,"7":1,"8":1},"fnMap":{"1":{"name":"(anonymous_1)","line":20,"loc":{"start":{"line":20,"column":14},"end":{"line":20,"column":29}}},"2":{"name":"(anonymous_2)","line":32,"loc":{"start":{"line":32,"column":14},"end":{"line":32,"column":30}}},"3":{"name":"(anonymous_3)","line":38,"loc":{"start":{"line":38,"column":21},"end":{"line":38,"column":48}}},"4":{"name":"(anonymous_4)","line":54,"loc":{"start":{"line":54,"column":12},"end":{"line":54,"column":29}}},"5":{"name":"(anonymous_5)","line":66,"loc":{"start":{"line":66,"column":14},"end":{"line":66,"column":37}}},"6":{"name":"(anonymous_6)","line":72,"loc":{"start":{"line":72,"column":21},"end":{"line":72,"column":48}}},"7":{"name":"(anonymous_7)","line":88,"loc":{"start":{"line":88,"column":17},"end":{"line":88,"column":34}}},"8":{"name":"(anonymous_8)","line":98,"loc":{"start":{"line":98,"column":14},"end":{"line":98,"column":34}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":34}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":32}},"4":{"start":{"line":12,"column":0},"end":{"line":12,"column":14}},"5":{"start":{"line":14,"column":0},"end":{"line":14,"column":20}},"6":{"start":{"line":20,"column":0},"end":{"line":23,"column":2}},"7":{"start":{"line":21,"column":2},"end":{"line":21,"column":53}},"8":{"start":{"line":22,"column":2},"end":{"line":22,"column":14}},"9":{"start":{"line":32,"column":0},"end":{"line":46,"column":2}},"10":{"start":{"line":33,"column":2},"end":{"line":33,"column":91}},"11":{"start":{"line":36,"column":2},"end":{"line":36,"column":54}},"12":{"start":{"line":38,"column":2},"end":{"line":45,"column":5}},"13":{"start":{"line":40,"column":4},"end":{"line":44,"column":5}},"14":{"start":{"line":41,"column":6},"end":{"line":41,"column":31},"skip":true},"15":{"start":{"line":43,"column":6},"end":{"line":43,"column":41}},"16":{"start":{"line":54,"column":0},"end":{"line":56,"column":2}},"17":{"start":{"line":55,"column":2},"end":{"line":55,"column":34}},"18":{"start":{"line":66,"column":0},"end":{"line":80,"column":2}},"19":{"start":{"line":67,"column":2},"end":{"line":67,"column":91}},"20":{"start":{"line":70,"column":2},"end":{"line":70,"column":54}},"21":{"start":{"line":72,"column":2},"end":{"line":79,"column":5}},"22":{"start":{"line":74,"column":4},"end":{"line":78,"column":5}},"23":{"start":{"line":75,"column":6},"end":{"line":75,"column":31},"skip":true},"24":{"start":{"line":77,"column":6},"end":{"line":77,"column":75}},"25":{"start":{"line":88,"column":0},"end":{"line":90,"column":2}},"26":{"start":{"line":89,"column":2},"end":{"line":89,"column":53}},"27":{"start":{"line":98,"column":0},"end":{"line":100,"column":2}},"28":{"start":{"line":99,"column":2},"end":{"line":99,"column":29}}},"branchMap":{"1":{"line":33,"type":"cond-expr","locations":[{"start":{"line":33,"column":70},"end":{"line":33,"column":75}},{"start":{"line":33,"column":78},"end":{"line":33,"column":90}}]},"2":{"line":33,"type":"binary-expr","locations":[{"start":{"line":33,"column":16},"end":{"line":33,"column":37}},{"start":{"line":33,"column":41},"end":{"line":33,"column":67}}]},"3":{"line":40,"type":"if","locations":[{"start":{"line":40,"column":4},"end":{"line":40,"column":4},"skip":true},{"start":{"line":40,"column":4},"end":{"line":40,"column":4}}]},"4":{"line":67,"type":"cond-expr","locations":[{"start":{"line":67,"column":70},"end":{"line":67,"column":75}},{"start":{"line":67,"column":78},"end":{"line":67,"column":90}}]},"5":{"line":67,"type":"binary-expr","locations":[{"start":{"line":67,"column":16},"end":{"line":67,"column":37}},{"start":{"line":67,"column":41},"end":{"line":67,"column":67}}]},"6":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4},"skip":true},{"start":{"line":74,"column":4},"end":{"line":74,"column":4}}]}}},"/home/fluidbyte/workspace/ta/modli/src/lib/adapter.js":{"path":"/home/fluidbyte/workspace/ta/modli/src/lib/adapter.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":2,"10":1,"11":1,"12":1,"13":2,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":3,"26":2,"27":1},"b":{"1":[1,1],"2":[2,1,1],"3":[1,1],"4":[1,0],"5":[1,0],"6":[2,1]},"f":{"1":2,"2":2,"3":1,"4":3},"fnMap":{"1":{"name":"(anonymous_1)","line":30,"loc":{"start":{"line":30,"column":14},"end":{"line":30,"column":27}}},"2":{"name":"(anonymous_2)","line":48,"loc":{"start":{"line":48,"column":15},"end":{"line":48,"column":28}}},"3":{"name":"(anonymous_3)","line":71,"loc":{"start":{"line":71,"column":22},"end":{"line":71,"column":34}},"skip":true},"4":{"name":"(anonymous_4)","line":73,"loc":{"start":{"line":73,"column":43},"end":{"line":73,"column":59}},"skip":true}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":5,"column":3}},"2":{"start":{"line":6,"column":0},"end":{"line":6,"column":23}},"3":{"start":{"line":7,"column":0},"end":{"line":7,"column":27}},"4":{"start":{"line":12,"column":0},"end":{"line":12,"column":17}},"5":{"start":{"line":14,"column":0},"end":{"line":14,"column":26}},"6":{"start":{"line":19,"column":0},"end":{"line":19,"column":19}},"7":{"start":{"line":24,"column":0},"end":{"line":24,"column":22}},"8":{"start":{"line":30,"column":0},"end":{"line":40,"column":2}},"9":{"start":{"line":32,"column":2},"end":{"line":34,"column":3}},"10":{"start":{"line":33,"column":4},"end":{"line":33,"column":70}},"11":{"start":{"line":36,"column":2},"end":{"line":39,"column":4}},"12":{"start":{"line":48,"column":0},"end":{"line":64,"column":2}},"13":{"start":{"line":50,"column":2},"end":{"line":52,"column":3}},"14":{"start":{"line":51,"column":4},"end":{"line":51,"column":43}},"15":{"start":{"line":53,"column":2},"end":{"line":53,"column":39}},"16":{"start":{"line":54,"column":2},"end":{"line":54,"column":106}},"17":{"start":{"line":55,"column":2},"end":{"line":55,"column":43}},"18":{"start":{"line":56,"column":2},"end":{"line":56,"column":64}},"19":{"start":{"line":59,"column":2},"end":{"line":62,"column":3}},"20":{"start":{"line":61,"column":4},"end":{"line":61,"column":47},"skip":true},"21":{"start":{"line":63,"column":2},"end":{"line":63,"column":20}},"22":{"start":{"line":71,"column":0},"end":{"line":78,"column":2},"skip":true},"23":{"start":{"line":72,"column":2},"end":{"line":72,"column":39},"skip":true},"24":{"start":{"line":73,"column":2},"end":{"line":77,"column":5},"skip":true},"25":{"start":{"line":74,"column":4},"end":{"line":76,"column":5},"skip":true},"26":{"start":{"line":75,"column":6},"end":{"line":75,"column":34},"skip":true},"27":{"start":{"line":83,"column":0},"end":{"line":83,"column":22}}},"branchMap":{"1":{"line":32,"type":"if","locations":[{"start":{"line":32,"column":2},"end":{"line":32,"column":2}},{"start":{"line":32,"column":2},"end":{"line":32,"column":2}}]},"2":{"line":32,"type":"binary-expr","locations":[{"start":{"line":32,"column":6},"end":{"line":32,"column":13}},{"start":{"line":32,"column":17},"end":{"line":32,"column":26}},{"start":{"line":32,"column":30},"end":{"line":32,"column":39}}]},"3":{"line":50,"type":"if","locations":[{"start":{"line":50,"column":2},"end":{"line":50,"column":2}},{"start":{"line":50,"column":2},"end":{"line":50,"column":2}}]},"4":{"line":54,"type":"cond-expr","locations":[{"start":{"line":54,"column":60},"end":{"line":54,"column":96}},{"start":{"line":54,"column":99},"end":{"line":54,"column":105}}]},"5":{"line":59,"type":"if","locations":[{"start":{"line":59,"column":2},"end":{"line":59,"column":2},"skip":true},{"start":{"line":59,"column":2},"end":{"line":59,"column":2}}]},"6":{"line":74,"type":"if","locations":[{"start":{"line":74,"column":4},"end":{"line":74,"column":4},"skip":true},{"start":{"line":74,"column":4},"end":{"line":74,"column":4},"skip":true}]}}},"/home/fluidbyte/workspace/ta/modli/src/lib/model.js":{"path":"/home/fluidbyte/workspace/ta/modli/src/lib/model.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":3,"9":1,"10":2,"11":1,"12":2,"13":2,"14":8,"15":4,"16":2,"17":1,"18":2,"19":1,"20":1,"21":5,"22":5,"23":5,"24":3,"25":2,"26":1,"27":3,"28":2,"29":1,"30":1},"b":{"1":[1,2],"2":[3,2,2],"3":[1,1],"4":[4,4],"5":[8,6],"6":[1,1],"7":[5,3],"8":[3,2],"9":[2,1]},"f":{"1":3,"2":8,"3":2,"4":5,"5":5,"6":3},"fnMap":{"1":{"name":"(anonymous_1)","line":29,"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":25}}},"2":{"name":"(anonymous_2)","line":41,"loc":{"start":{"line":41,"column":25},"end":{"line":41,"column":41}}},"3":{"name":"(anonymous_3)","line":55,"loc":{"start":{"line":55,"column":13},"end":{"line":55,"column":26}}},"4":{"name":"validate","line":64,"loc":{"start":{"line":64,"column":14},"end":{"line":64,"column":47}}},"5":{"name":"(anonymous_5)","line":67,"loc":{"start":{"line":67,"column":75},"end":{"line":67,"column":90}}},"6":{"name":"(anonymous_6)","line":83,"loc":{"start":{"line":83,"column":30},"end":{"line":83,"column":45}}}},"statementMap":{"1":{"start":{"line":6,"column":0},"end":{"line":8,"column":3}},"2":{"start":{"line":9,"column":0},"end":{"line":9,"column":25}},"3":{"start":{"line":11,"column":0},"end":{"line":11,"column":18}},"4":{"start":{"line":16,"column":0},"end":{"line":16,"column":15}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":22}},"6":{"start":{"line":23,"column":0},"end":{"line":23,"column":17}},"7":{"start":{"line":29,"column":0},"end":{"line":48,"column":2}},"8":{"start":{"line":31,"column":2},"end":{"line":33,"column":3}},"9":{"start":{"line":32,"column":4},"end":{"line":32,"column":69}},"10":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}},"11":{"start":{"line":37,"column":4},"end":{"line":37,"column":29}},"12":{"start":{"line":40,"column":2},"end":{"line":40,"column":20}},"13":{"start":{"line":41,"column":2},"end":{"line":45,"column":5}},"14":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"15":{"start":{"line":43,"column":6},"end":{"line":43,"column":31}},"16":{"start":{"line":47,"column":2},"end":{"line":47,"column":44}},"17":{"start":{"line":55,"column":0},"end":{"line":75,"column":2}},"18":{"start":{"line":57,"column":2},"end":{"line":59,"column":3}},"19":{"start":{"line":58,"column":4},"end":{"line":58,"column":41}},"20":{"start":{"line":61,"column":2},"end":{"line":74,"column":4}},"21":{"start":{"line":65,"column":6},"end":{"line":65,"column":45}},"22":{"start":{"line":67,"column":6},"end":{"line":72,"column":9}},"23":{"start":{"line":68,"column":8},"end":{"line":70,"column":9}},"24":{"start":{"line":69,"column":10},"end":{"line":69,"column":50}},"25":{"start":{"line":71,"column":8},"end":{"line":71,"column":20}},"26":{"start":{"line":83,"column":0},"end":{"line":89,"column":2}},"27":{"start":{"line":84,"column":2},"end":{"line":87,"column":3}},"28":{"start":{"line":86,"column":4},"end":{"line":86,"column":44}},"29":{"start":{"line":88,"column":2},"end":{"line":88,"column":13}},"30":{"start":{"line":95,"column":0},"end":{"line":95,"column":36}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":31,"column":2}},{"start":{"line":31,"column":2},"end":{"line":31,"column":2}}]},"2":{"line":31,"type":"binary-expr","locations":[{"start":{"line":31,"column":6},"end":{"line":31,"column":13}},{"start":{"line":31,"column":17},"end":{"line":31,"column":27}},{"start":{"line":31,"column":31},"end":{"line":31,"column":40}}]},"3":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":35,"column":2}},{"start":{"line":35,"column":2},"end":{"line":35,"column":2}}]},"4":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":4}},{"start":{"line":42,"column":4},"end":{"line":42,"column":4}}]},"5":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":8},"end":{"line":42,"column":26}},{"start":{"line":42,"column":30},"end":{"line":42,"column":45}}]},"6":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":2},"end":{"line":57,"column":2}},{"start":{"line":57,"column":2},"end":{"line":57,"column":2}}]},"7":{"line":65,"type":"binary-expr","locations":[{"start":{"line":65,"column":14},"end":{"line":65,"column":21}},{"start":{"line":65,"column":25},"end":{"line":65,"column":44}}]},"8":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":8}},{"start":{"line":68,"column":8},"end":{"line":68,"column":8}}]},"9":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]}}}} | ||
{"/home/fluidbyte/workspace/ta/modli/core/src/index.js":{"path":"/home/fluidbyte/workspace/ta/modli/core/src/index.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1},"b":{},"f":{"1":1},"fnMap":{"1":{"name":"use","line":23,"loc":{"start":{"line":23,"column":10},"end":{"line":23,"column":47}}}},"statementMap":{"1":{"start":{"line":8,"column":0},"end":{"line":10,"column":3}},"2":{"start":{"line":12,"column":0},"end":{"line":12,"column":39}},"3":{"start":{"line":14,"column":0},"end":{"line":14,"column":43}},"4":{"start":{"line":16,"column":0},"end":{"line":16,"column":26}},"5":{"start":{"line":23,"column":0},"end":{"line":29,"column":2}},"6":{"start":{"line":25,"column":2},"end":{"line":25,"column":42}},"7":{"start":{"line":26,"column":2},"end":{"line":26,"column":48}},"8":{"start":{"line":28,"column":2},"end":{"line":28,"column":38}},"9":{"start":{"line":34,"column":0},"end":{"line":34,"column":18}},"10":{"start":{"line":35,"column":0},"end":{"line":35,"column":32}},"11":{"start":{"line":36,"column":0},"end":{"line":36,"column":38}},"12":{"start":{"line":37,"column":0},"end":{"line":37,"column":28}}},"branchMap":{}},"/home/fluidbyte/workspace/ta/modli/core/src/lib/model.js":{"path":"/home/fluidbyte/workspace/ta/modli/core/src/lib/model.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":4,"9":1,"10":3,"11":2,"12":3,"13":3,"14":11,"15":5,"16":3,"17":1,"18":3,"19":1,"20":2,"21":9,"22":9,"23":9,"24":5,"25":4,"26":1,"27":5,"28":2,"29":3,"30":1},"b":{"1":[1,3],"2":[4,3,3],"3":[2,1],"4":[5,6],"5":[11,8],"6":[1,2],"7":[9,7],"8":[5,4],"9":[2,3]},"f":{"1":4,"2":11,"3":3,"4":9,"5":9,"6":5},"fnMap":{"1":{"name":"(anonymous_1)","line":29,"loc":{"start":{"line":29,"column":12},"end":{"line":29,"column":25}}},"2":{"name":"(anonymous_2)","line":41,"loc":{"start":{"line":41,"column":25},"end":{"line":41,"column":41}}},"3":{"name":"(anonymous_3)","line":55,"loc":{"start":{"line":55,"column":13},"end":{"line":55,"column":26}}},"4":{"name":"validate","line":64,"loc":{"start":{"line":64,"column":14},"end":{"line":64,"column":47}}},"5":{"name":"(anonymous_5)","line":67,"loc":{"start":{"line":67,"column":75},"end":{"line":67,"column":90}}},"6":{"name":"(anonymous_6)","line":83,"loc":{"start":{"line":83,"column":30},"end":{"line":83,"column":45}}}},"statementMap":{"1":{"start":{"line":6,"column":0},"end":{"line":8,"column":3}},"2":{"start":{"line":9,"column":0},"end":{"line":9,"column":25}},"3":{"start":{"line":11,"column":0},"end":{"line":11,"column":18}},"4":{"start":{"line":16,"column":0},"end":{"line":16,"column":15}},"5":{"start":{"line":18,"column":0},"end":{"line":18,"column":22}},"6":{"start":{"line":23,"column":0},"end":{"line":23,"column":17}},"7":{"start":{"line":29,"column":0},"end":{"line":48,"column":2}},"8":{"start":{"line":31,"column":2},"end":{"line":33,"column":3}},"9":{"start":{"line":32,"column":4},"end":{"line":32,"column":69}},"10":{"start":{"line":35,"column":2},"end":{"line":38,"column":3}},"11":{"start":{"line":37,"column":4},"end":{"line":37,"column":29}},"12":{"start":{"line":40,"column":2},"end":{"line":40,"column":20}},"13":{"start":{"line":41,"column":2},"end":{"line":45,"column":5}},"14":{"start":{"line":42,"column":4},"end":{"line":44,"column":5}},"15":{"start":{"line":43,"column":6},"end":{"line":43,"column":31}},"16":{"start":{"line":47,"column":2},"end":{"line":47,"column":44}},"17":{"start":{"line":55,"column":0},"end":{"line":75,"column":2}},"18":{"start":{"line":57,"column":2},"end":{"line":59,"column":3}},"19":{"start":{"line":58,"column":4},"end":{"line":58,"column":41}},"20":{"start":{"line":61,"column":2},"end":{"line":74,"column":4}},"21":{"start":{"line":65,"column":6},"end":{"line":65,"column":45}},"22":{"start":{"line":67,"column":6},"end":{"line":72,"column":9}},"23":{"start":{"line":68,"column":8},"end":{"line":70,"column":9}},"24":{"start":{"line":69,"column":10},"end":{"line":69,"column":50}},"25":{"start":{"line":71,"column":8},"end":{"line":71,"column":20}},"26":{"start":{"line":83,"column":0},"end":{"line":89,"column":2}},"27":{"start":{"line":84,"column":2},"end":{"line":87,"column":3}},"28":{"start":{"line":86,"column":4},"end":{"line":86,"column":44}},"29":{"start":{"line":88,"column":2},"end":{"line":88,"column":13}},"30":{"start":{"line":95,"column":0},"end":{"line":95,"column":36}}},"branchMap":{"1":{"line":31,"type":"if","locations":[{"start":{"line":31,"column":2},"end":{"line":31,"column":2}},{"start":{"line":31,"column":2},"end":{"line":31,"column":2}}]},"2":{"line":31,"type":"binary-expr","locations":[{"start":{"line":31,"column":6},"end":{"line":31,"column":13}},{"start":{"line":31,"column":17},"end":{"line":31,"column":27}},{"start":{"line":31,"column":31},"end":{"line":31,"column":40}}]},"3":{"line":35,"type":"if","locations":[{"start":{"line":35,"column":2},"end":{"line":35,"column":2}},{"start":{"line":35,"column":2},"end":{"line":35,"column":2}}]},"4":{"line":42,"type":"if","locations":[{"start":{"line":42,"column":4},"end":{"line":42,"column":4}},{"start":{"line":42,"column":4},"end":{"line":42,"column":4}}]},"5":{"line":42,"type":"binary-expr","locations":[{"start":{"line":42,"column":8},"end":{"line":42,"column":26}},{"start":{"line":42,"column":30},"end":{"line":42,"column":45}}]},"6":{"line":57,"type":"if","locations":[{"start":{"line":57,"column":2},"end":{"line":57,"column":2}},{"start":{"line":57,"column":2},"end":{"line":57,"column":2}}]},"7":{"line":65,"type":"binary-expr","locations":[{"start":{"line":65,"column":14},"end":{"line":65,"column":21}},{"start":{"line":65,"column":25},"end":{"line":65,"column":44}}]},"8":{"line":68,"type":"if","locations":[{"start":{"line":68,"column":8},"end":{"line":68,"column":8}},{"start":{"line":68,"column":8},"end":{"line":68,"column":8}}]},"9":{"line":84,"type":"if","locations":[{"start":{"line":84,"column":2},"end":{"line":84,"column":2}},{"start":{"line":84,"column":2},"end":{"line":84,"column":2}}]}}},"/home/fluidbyte/workspace/ta/modli/core/src/lib/adapter.js":{"path":"/home/fluidbyte/workspace/ta/modli/core/src/lib/adapter.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":3,"7":1,"8":2,"9":1,"10":3,"11":3,"12":1,"13":2,"14":2,"15":2,"16":0,"17":2,"18":2,"19":2},"b":{"1":[1,2],"2":[3,2,2],"3":[1,2],"4":[2,0],"5":[2,0]},"f":{"1":3,"2":3},"fnMap":{"1":{"name":"(anonymous_1)","line":23,"loc":{"start":{"line":23,"column":14},"end":{"line":23,"column":27}}},"2":{"name":"(anonymous_2)","line":41,"loc":{"start":{"line":41,"column":15},"end":{"line":41,"column":28}}}},"statementMap":{"1":{"start":{"line":7,"column":0},"end":{"line":9,"column":3}},"2":{"start":{"line":10,"column":0},"end":{"line":10,"column":17}},"3":{"start":{"line":12,"column":0},"end":{"line":12,"column":26}},"4":{"start":{"line":17,"column":0},"end":{"line":17,"column":19}},"5":{"start":{"line":23,"column":0},"end":{"line":33,"column":2}},"6":{"start":{"line":25,"column":2},"end":{"line":27,"column":3}},"7":{"start":{"line":26,"column":4},"end":{"line":26,"column":70}},"8":{"start":{"line":29,"column":2},"end":{"line":32,"column":4}},"9":{"start":{"line":41,"column":0},"end":{"line":60,"column":2}},"10":{"start":{"line":42,"column":2},"end":{"line":42,"column":29}},"11":{"start":{"line":44,"column":2},"end":{"line":46,"column":3}},"12":{"start":{"line":45,"column":4},"end":{"line":45,"column":43}},"13":{"start":{"line":47,"column":2},"end":{"line":47,"column":39}},"14":{"start":{"line":48,"column":2},"end":{"line":52,"column":3}},"15":{"start":{"line":49,"column":4},"end":{"line":49,"column":24}},"16":{"start":{"line":51,"column":4},"end":{"line":51,"column":33}},"17":{"start":{"line":55,"column":2},"end":{"line":58,"column":3}},"18":{"start":{"line":57,"column":4},"end":{"line":57,"column":47},"skip":true},"19":{"start":{"line":59,"column":2},"end":{"line":59,"column":20}}},"branchMap":{"1":{"line":25,"type":"if","locations":[{"start":{"line":25,"column":2},"end":{"line":25,"column":2}},{"start":{"line":25,"column":2},"end":{"line":25,"column":2}}]},"2":{"line":25,"type":"binary-expr","locations":[{"start":{"line":25,"column":6},"end":{"line":25,"column":13}},{"start":{"line":25,"column":17},"end":{"line":25,"column":26}},{"start":{"line":25,"column":30},"end":{"line":25,"column":39}}]},"3":{"line":44,"type":"if","locations":[{"start":{"line":44,"column":2},"end":{"line":44,"column":2}},{"start":{"line":44,"column":2},"end":{"line":44,"column":2}}]},"4":{"line":48,"type":"if","locations":[{"start":{"line":48,"column":2},"end":{"line":48,"column":2}},{"start":{"line":48,"column":2},"end":{"line":48,"column":2}}]},"5":{"line":55,"type":"if","locations":[{"start":{"line":55,"column":2},"end":{"line":55,"column":2},"skip":true},{"start":{"line":55,"column":2},"end":{"line":55,"column":2}}]}}}} |
{ | ||
"name": "modli", | ||
"version": "1.1.2", | ||
"version": "1.2.0", | ||
"description": "A module for building models and adapters for multiple data sources", | ||
@@ -8,3 +8,3 @@ "main": "build/index.js", | ||
"type": "git", | ||
"url": "https://github.com/TechnologyAdvice/modli" | ||
"url": "https://github.com/node-modli/modli" | ||
}, | ||
@@ -14,7 +14,3 @@ "keywords": [ | ||
"data", | ||
"database", | ||
"dynamo", | ||
"dynamodb", | ||
"mysql", | ||
"nedb" | ||
"database" | ||
], | ||
@@ -46,2 +42,3 @@ "author": "TechnologyAdvice <devteam@technologyadvice.com>", | ||
"mocha": "^2.2.5", | ||
"modli-nedb": "^1.0.0", | ||
"pre-commit": "^1.1.1", | ||
@@ -53,11 +50,8 @@ "should": "^7.0.2" | ||
"joi": "^6.6.1", | ||
"lodash": "^3.10.1", | ||
"mysql": "^2.9.0", | ||
"nedb": "^1.1.3" | ||
"lodash": "^3.10.1" | ||
}, | ||
"pre-commit": [ | ||
"test-libs", | ||
"test-integration", | ||
"lint" | ||
"lint", | ||
"test" | ||
] | ||
} |
177
README.md
@@ -1,27 +0,13 @@ | ||
[![wercker status](https://app.wercker.com/status/e65545f185b1def5e6cca11cc4161812/s/master "wercker status")](https://app.wercker.com/project/bykey/e65545f185b1def5e6cca11cc4161812) | ||
[![Code Climate](https://codeclimate.com/github/TechnologyAdvice/modli/badges/gpa.svg)](https://codeclimate.com/github/TechnologyAdvice/modli) | ||
[![Test Coverage](https://codeclimate.com/github/TechnologyAdvice/modli/badges/coverage.svg)](https://codeclimate.com/github/TechnologyAdvice/modli/coverage) | ||
[![Dependency Status](https://www.versioneye.com/user/projects/55da64048d9c4b0018000442/badge.svg?style=flat)](https://www.versioneye.com/user/projects/55da64048d9c4b0018000442) | ||
[![wercker status](https://app.wercker.com/status/f3739d627fd42f6eb10bf5e1a1c09a84/s/master "wercker status")](https://app.wercker.com/project/bykey/f3739d627fd42f6eb10bf5e1a1c09a84) | ||
[![Code Climate](https://codeclimate.com/github/node-modli/modli/badges/gpa.svg)](https://codeclimate.com/github/node-modli/modli) | ||
[![Test Coverage](https://codeclimate.com/github/node-modli/modli/badges/coverage.svg)](https://codeclimate.com/github/node-modli/modli/coverage) | ||
[![NPM](https://nodei.co/npm/modli.png)](https://www.npmjs.com/package/modli) | ||
# Modli | ||
A module for building models and adapters for multiple data sources. The core | ||
goal of this project is to create a minimal barrier to entrance for creating | ||
model-validated CRUD operations on data sources. | ||
Modli is an NPM module designed to help create unified data modelling, validation | ||
and CRUD operations across numerous data sources. It accomplishes this by exposing | ||
a `model` object and an `adapter` object which are extended upon eachother with | ||
the desired adapter for a data source to create a more standard, extensible | ||
object. | ||
This is done by addressing two core areas: | ||
**Models** | ||
Create a simple, universally similar modeling structure for any and all data | ||
sources to which an application may be connected. | ||
**Adapters** | ||
Create basic CRUD operations that function similarly between all adapters | ||
which can be connected to a model to perform the CRUD operations and are easily | ||
extensible for more complex operations. | ||
## Installation | ||
@@ -35,8 +21,12 @@ | ||
Below is an example of a basic setup where a **model** and an **adapter** | ||
are added. Once added they are available to be `use`'d to create an | ||
instance of the object with the methods from the adapter, validation, etc: | ||
Below is an example of a basic setup where a **model** and an **adapter** | ||
are added. Once added they are available to be `use`'d to create an | ||
instance of the object with the methods from the adapter, validation, etc. | ||
In this example, the [modli-nedb](https://www.npmjs.com/package/modli-nedb) is | ||
utilized (`npm install modli-nedb --save`). | ||
```javascript | ||
import { model, adapter, use, Joi } from 'modli'; | ||
import { nedb } from 'modli-nedb'; | ||
@@ -47,3 +37,3 @@ // Create adapter object | ||
// Uses the built-in NeDB adapter | ||
source: 'nedb', | ||
source: nedb, | ||
// Initiates adapter with following config | ||
@@ -93,38 +83,64 @@ config: { | ||
## Examples | ||
## Custom Adapters | ||
As often times it is easier to understand something when seen in practice, there | ||
are several [examples](/examples) available. | ||
While the team behind Modli provides a number of adapters, Modli core is also | ||
designed to accept a path to a custom adapter: | ||
The [`/test/index.int.js`](/test/index.int.js) file also serves as an integration | ||
test suite which shows how functionality of Modli is designed. | ||
```javascript | ||
adapter.use({ | ||
name: 'myCustomAdapter', | ||
source: 'path/to/myCustomAdapter' | ||
config: { | ||
/*...custom config properties...*/ | ||
} | ||
}); | ||
``` | ||
### Validate Model Data | ||
To see a functional example of a custom adapter see [/examples/custom-adapter](/examples/custom-adapter) | ||
Validating a model (using the above example) is then simply a matter of the | ||
model's `validate` method which returns any (or `null`) validation errors: | ||
## Extending Adapters | ||
Adapters can be esily extended upon. For example, a custom method could be added to | ||
the NeDB adapter used in the [Getting Started section](#getting-started): | ||
```javascript | ||
// Some data | ||
const testData = { | ||
id: 12345, | ||
fname: 'John', | ||
lname: 'Doe', | ||
email: 'jdoe@gmail.com' | ||
}; | ||
import { nedb } from 'modli-nedb'; | ||
// Run validation against testData with model version 1 | ||
const validationErrors = someModel.validate(testData, 1); | ||
if (!validationErrors) { | ||
// Everything passed | ||
console.log('Passed!'); | ||
} else { | ||
// Failed, logs 'Failed' along with the validation errors | ||
console.log('Failed', validationErrors); | ||
} | ||
nedb.extend('myCustomMethod', (someVal) => { | ||
// Just return the value passed | ||
return someVal; | ||
}); | ||
``` | ||
All adapters contain the `extend` method which becomes part of the created object | ||
when a model and adapter are `use`'d, so the adapter can be extended before | ||
initialization with a model, or inline: | ||
```javascript | ||
// Initial setup | ||
adapter.add({ name: 'myAdapter', /*...*/ }); | ||
model.add({ name: 'myModel', /*...*/ }); | ||
// Usable object | ||
const myTest = use('myModel', 'myAdapter'); | ||
// Extend... | ||
myTest.extend('myCustomMethod', (someVal) => { | ||
// Just return the value passed | ||
return someVal; | ||
}); | ||
``` | ||
The above would allow you to then call `myTest.myCustomMethod('foo')` and expect | ||
the response to be `foo`. | ||
### Validate Model Data | ||
Validation of model data is done by the adapter when data is being insertered, | ||
i.e. create and update procedures. The adapter inherits the model's `validate` | ||
method which utilizes the [Joi](https://github.com/hapijs/joi) library to ensure | ||
properties are correct. | ||
### Validation Error Formatting | ||
By default, the `validation` methods `fail` response will return the Joi error | ||
By default, the `validation` method's `fail` response will return the Joi error | ||
object. This can be overridden using the following: | ||
@@ -147,32 +163,4 @@ | ||
The above would return `"id" must be a number` if the above model was tested | ||
with an invalid (`string`) id. | ||
with an invalid `string` id when the expected input was an `integer`. | ||
## Adapters | ||
*Please see the [Adapters Readme](/src/adapters) for additional information.* | ||
Adapters allow for creating standard CRUD methods which are then extended upon | ||
the model to make interacting with the datasource simple. | ||
### Default methods | ||
All adapters have 6 main methods which are exposed on the model; `create`, `read`, | ||
`update`, `delete`, `config` and `extend`. | ||
While these methods are mostly self-explanatory, some noteworthy specifics: | ||
The `config` method is called automatically by the model when the adapter is | ||
bound to it (see above model example). | ||
The `extend` method allows adapters to be dynamically built upon. An example of | ||
this method would be: | ||
```javascript | ||
import { myAdapter } from '/path/to/myAdapter'; | ||
// namespace: myAdapter | ||
myAdapter.extend = (name, fn) => { | ||
myAdapter[name] = fn.bind(nedb); | ||
}; | ||
``` | ||
### Adapters and Validation | ||
@@ -191,2 +179,10 @@ | ||
## Examples | ||
As often times it is easier to understand something when seen in practice, there | ||
are several [examples](/examples) available. | ||
The [`/test/index.spec.js`](/test/index.spec.js) file also serves as an integration | ||
test suite which shows how functionality of Modli is designed. | ||
## Makefile and Scripts | ||
@@ -203,5 +199,2 @@ | ||
* `test` will run all spec files in `/test/src` | ||
* `test-libs` will test modli's libs | ||
* `test-adapters` will test all adapters | ||
* `test-integration` will run integration test | ||
* `test-cover` will run code coverage on all tests | ||
@@ -212,19 +205,7 @@ * `lint` will lint all files in `/src` | ||
Running `make test` will run the full test suite. Since adapters require a data | ||
source if one is not configured the tests will fail. To counter this tests are | ||
able to be broken up. | ||
Running `make test` will run the full test suite. | ||
**Core Modli Tests** | ||
When working on core Modli functionality (i.e. the `/src/libs`) running the | ||
`make test-libs` command will unit test the code. | ||
**Adapter Tests** | ||
When building (mostly in CI) if all adapters have access to test data sources the | ||
`make test-adapters` command will run all tests on `/src/adapters`. | ||
**Test Inidividual File** | ||
An individual spec can be run by specifying the `FILE`. This is convenient when | ||
An individual spec can be run by specifying the `FILE`. This is convenient when | ||
working on an individual adapter. | ||
@@ -236,3 +217,3 @@ | ||
The `FILE` is relative to the `test/src/` directory. | ||
The `FILE` is relative to the `test/` directory. | ||
@@ -239,0 +220,0 @@ **Deploys** |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
3
959
2
105703
13
27
228
- Removedmysql@^2.9.0
- Removednedb@^1.1.3
- Removedasync@0.2.10(transitive)
- Removedbignumber.js@9.0.0(transitive)
- Removedbinary-search-tree@0.2.5(transitive)
- Removedcore-util-is@1.0.3(transitive)
- Removedimmediate@3.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedisarray@1.0.0(transitive)
- Removedlie@3.1.1(transitive)
- Removedlocalforage@1.10.0(transitive)
- Removedminimist@1.2.8(transitive)
- Removedmkdirp@0.5.6(transitive)
- Removedmysql@2.18.1(transitive)
- Removednedb@1.8.0(transitive)
- Removedprocess-nextick-args@2.0.1(transitive)
- Removedreadable-stream@2.3.7(transitive)
- Removedsafe-buffer@5.1.2(transitive)
- Removedsqlstring@2.3.1(transitive)
- Removedstring_decoder@1.1.1(transitive)
- Removedunderscore@1.4.4(transitive)
- Removedutil-deprecate@1.0.2(transitive)