|
1 | 1 | const promise = require('promise') |
2 | | -const Observable = require("zen-observable") |
3 | 2 |
|
4 | | -let adapter |
5 | | -const adapterName = `micro-analytics-adapter-${process.env.DB_ADAPTER || 'flat-file-db'}` |
| 3 | +function initDbAdapter(adapterName) { |
| 4 | + let adapter |
| 5 | + const repeatCharacter = (char, n) => `${Array(n + 1).join(char)}` |
6 | 6 |
|
7 | | -const repeatCharacter = (char, n) => `${Array(n + 1).join(char)}` |
8 | | - |
9 | | -try { |
10 | | - adapter = require(adapterName) |
11 | | -} catch (err) { |
12 | | - if (err.code === 'MODULE_NOT_FOUND') { |
13 | | - // Console.error a warning message, but normally exit the process to avoid printing ugly npm ERR lines and stack trace. |
14 | | - console.error(`\n${repeatCharacter(' ', 22)}⚠️ ERROR ⚠️\n${repeatCharacter('-', 55)}\nYou specified "${process.env.DB_ADAPTER}" as the DB_ADAPTER, but no package\ncalled "${adapterName}" was found.\n\nPlease make sure you spelled the name correctly and\nhave "npm install"ed the necessary adapter package!\n${repeatCharacter('-', 55)}\n`) |
15 | | - process.exit(0) |
16 | | - } else { |
17 | | - throw err |
| 7 | + try { |
| 8 | + adapter = require(`micro-analytics-adapter-${adapterName}`) |
| 9 | + } catch (err) { |
| 10 | + if (err.code === 'MODULE_NOT_FOUND') { |
| 11 | + // Console.error a warning message, but normally exit the process to avoid printing ugly npm ERR lines and stack trace. |
| 12 | + console.error(`\n${repeatCharacter(' ', 22)}⚠️ ERROR ⚠️\n${repeatCharacter('-', 55)}\nYou specified "${adapterName}" as the DB_ADAPTER, but no package\ncalled "micro-analytics-adapter-${adapterName}" was found.\n\nPlease make sure you spelled the name correctly and\nhave "npm install"ed the necessary adapter package!\n${repeatCharacter('-', 55)}\n`) |
| 13 | + process.exit(0) |
| 14 | + } else { |
| 15 | + throw err |
| 16 | + } |
18 | 17 | } |
19 | | -} |
20 | 18 |
|
21 | | -const observable = new Observable((observer) => { |
22 | | - let timer = setInterval(_ => { |
23 | | - observer.next("hello") |
24 | | - }, 1000) |
25 | 19 |
|
26 | | - return _ => clearTimeout(timer) |
27 | | -}); |
| 20 | + module.exports.get = adapter.get; |
| 21 | + module.exports.getAll = adapter.getAll; |
| 22 | + module.exports.put = adapter.put; |
| 23 | + module.exports.has = adapter.has; |
| 24 | + module.exports.keys = adapter.keys; |
| 25 | + module.exports.subscribe = adapter.subscribe; |
| 26 | + module.exports.hasFeature = (feature) => typeof adapter[feature] === "function"; |
28 | 27 |
|
| 28 | +} |
29 | 29 |
|
30 | 30 | module.exports = { |
31 | | - get: adapter.get, |
32 | | - getAll: adapter.getAll, |
33 | | - put: adapter.put, |
34 | | - has: adapter.has, |
35 | | - keys: adapter.keys, |
36 | | - subscribe: adapter.subscribe, |
| 31 | + initDbAdapter: initDbAdapter, |
| 32 | + hasFeature: (feature) => false, |
37 | 33 | } |
0 commit comments