UNPKG

689 BJavaScriptView Raw
1const fs = require('fs');
2const path = require('path');
3const { validate } = require('./src/utils/options');
4const load = require('./src/utils/load');
5
6// Read folders to list APIs ('/src/api/*')
7const APIs = fs.readdirSync(path.resolve(__dirname, 'src/api'));
8
9// Load each API (support, sunshine, ...)
10const zdAPIs = {};
11APIs.forEach(api => (zdAPIs[api] = load(api)));
12
13// Initialize each API
14const init = (options = {}) => {
15 const { error } = validate(options);
16 if (error) throw new Error(error.details[0].message);
17
18 const initialized = {};
19 for (const api in zdAPIs) initialized[api] = zdAPIs[api].init(options);
20
21 return initialized;
22};
23
24module.exports = { init, ...zdAPIs };