const { Amplify } = require('aws-amplify')
const auth = require('./src/auth')
const user = require('./src/user')
const command = require('./src/command')
const device = require('./src/device')
const deviceDescription = require('./src/deviceDescription')
const event = require('./src/event')
const log = require('./src/log')
const process = require('./src/process')
const uIConfig = require('./src/uIConfig')
const dataPoints = require('./src/dataPoints')
const utils = require('./src/utilsService')
const licence = require('./src/licence')
const { createConfig } = require('./src/amplify/configGenerator')
const DEFAULT_OPTS = {
ENV: 'dev',
AWS_REGION: 'eu-central-1',
}
/**
* @desc sets the environement and region for the API
* @memberof nexus
* @function configure
* @param {Object} [customOptions]
* @param {string} [customOptions.ENV = 'dev']
* @param {string} [customOptions.AWS_REGION = 'eu-central-1']
* @returns {Object} the generated configuration for the given options
*/
const configure = customOptions => {
const connectionOpts = {
...DEFAULT_OPTS,
...customOptions,
}
const config = createConfig(connectionOpts)
Amplify.configure(config)
return config
}
/**
* @namespace nexus
*/
module.exports = {
auth,
user,
command,
device,
deviceDescription,
event,
log,
process,
uIConfig,
dataPoints,
configure,
utils,
licence,
}