@kumologica/builder
Version:
Kumologica build and deploy module
72 lines (60 loc) • 1.79 kB
JavaScript
const AWSBuilder = require('./build/aws');
const codegen = require('./build/codegen');
const exporter = require('./export');
const docs = require('./docs');
const code = require('./code');
const Updater = require('./updater');
function exp(lang, provider, argv, log) {
return exporter.exp(lang, provider, argv, log);
}
function doc(lang, argv) {
return docs.generate(lang, argv);
}
async function deploy(provider, argv, log) {
if (!["aws", "kumohub", "azure", "google"].includes(provider)) {
throw new Error(`Unsupported value for provider: <${provider}>, valid values are: azure, kumohub`);
}
switch (provider) {
case 'azure':
const AzureDeployer = require('./deploy/azure');
const azureDeployer = new AzureDeployer(log);
await azureDeployer.deploy(argv);
break;
default:
throw new Error(`Deployment not implemented yet for provider: <${provider}>`);
}
}
async function build(provider, argv, log) {
if (!["aws", "azure", "kumohub", "google"].includes(provider)) {
throw new Error(`Unsupported value for provider: <${provider}>, valid values are: aws, azure, kumohub, google`);
}
console.log('Executing build for provider: ', provider);
let buildFileName;
switch (provider) {
case 'aws':
const awsBuilder = new AWSBuilder();
await awsBuilder.build(argv);
break;
case 'kumohub':
const kumohubBuilder = new KumohubBuilder(log);
await kumohubBuilder.build(argv);
break;
case 'azure':
const AzureBuilder = require('./build/azure');
const azureBuilder = new AzureBuilder(log);
buildFileName = await azureBuilder.build(argv);
break;
default:
throw new Error(`provider: ${argv.provider} not supported yet`);
}
return buildFileName;
}
module.exports = {
build,
exp,
deploy,
doc,
code,
codegen,
Updater
}