-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
28 lines (22 loc) · 862 Bytes
/
index.js
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
'use strict'
const Promise = require('bluebird')
const domapic = require('domapic-base')
const options = require('./lib/options')
const serviceHandlers = require('./lib/serviceHandlers')
const { SERVICE_TYPES } = require('./lib/utils')
const ServiceCreator = function (Builder, type) {
return serviceOptions => domapic.Service(options.extendWith(serviceOptions, type))
.then(service => {
const serviceHandler = new Builder(service)
return serviceHandler.init()
.then(() => Promise.resolve(serviceHandler.publicMethods))
})
}
const createModule = new ServiceCreator(serviceHandlers.Module, SERVICE_TYPES.MODULE)
const createPlugin = new ServiceCreator(serviceHandlers.Plugin, SERVICE_TYPES.PLUGIN)
const cli = cliOptions => domapic.cli(options.extendWith(cliOptions))
module.exports = {
createModule,
createPlugin,
cli
}