From da18bb47d6950a8884af4f1c3ffec326873d6f23 Mon Sep 17 00:00:00 2001 From: Zalmoxisus Date: Sun, 11 Sep 2016 17:43:36 +0300 Subject: [PATCH] Support adapters --- lib/adapter.js | 5 +++++ lib/options.js | 2 +- lib/store.js | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 lib/adapter.js diff --git a/lib/adapter.js b/lib/adapter.js new file mode 100644 index 0000000..643e74d --- /dev/null +++ b/lib/adapter.js @@ -0,0 +1,5 @@ +function getAdapter(adapter) { + return require('js-data-' + adapter); +} + +module.exports = getAdapter; diff --git a/lib/options.js b/lib/options.js index af9fef5..b970e4b 100644 --- a/lib/options.js +++ b/lib/options.js @@ -9,7 +9,7 @@ module.exports = function getOptions(argv) { passphrase: argv.passphrase || process.env.npm_package_remotedev_passphrase || null }, adapter: argv.adapter || process.env.npm_package_remotedev_adapter, - db: argv.adapter || process.env.npm_package_remotedev_db, + dbOptions: argv.dbOptions || process.env.npm_package_remotedev_db, logLevel: argv.logLevel || 3 }; } diff --git a/lib/store.js b/lib/store.js index ea65bd5..b350c4d 100644 --- a/lib/store.js +++ b/lib/store.js @@ -1,6 +1,7 @@ var uuid = require('node-uuid'); var pick = require('lodash/pick'); var JSData = require('js-data'); +var getAdapter = require('./adapter'); var store; var adapter; @@ -92,7 +93,15 @@ function byBaseFields(data) { } function createStore(options) { + var adapterName = options.adapter; store = new JSData.DS(); + + if (adapterName) { + var DSAdapter = getAdapter(adapterName); + adapter = new DSAdapter(options.dbOptions); + store.registerAdapter(adapterName, adapter, { default: true }); + } + Report = store.defineResource('report'); return {