From cfe5cd2ddb43baf770db6022cba9774974315b29 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Wed, 26 Dec 2018 18:57:25 -0200 Subject: [PATCH] fix(deployer): Installs and compiles additional .gbapps on server startup. --- packages/core.gbapp/services/GBDeployer.ts | 44 ++++++++++++++++------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/packages/core.gbapp/services/GBDeployer.ts b/packages/core.gbapp/services/GBDeployer.ts index d55a875c..87cc8c91 100644 --- a/packages/core.gbapp/services/GBDeployer.ts +++ b/packages/core.gbapp/services/GBDeployer.ts @@ -45,7 +45,7 @@ const express = require('express'); const child_process = require('child_process'); import { GBMinInstance, IGBCoreService, IGBInstance } from 'botlib'; -import { GBError,IGBPackage } from 'botlib'; +import { GBError, IGBPackage } from 'botlib'; import { AzureSearch } from 'pragmatismo-io-framework'; import { AzureDeployerService } from '../../azuredeployer.gbapp/services/AzureDeployerService'; import { GuaribasInstance, GuaribasPackage } from '../models/GBModel'; @@ -375,18 +375,38 @@ export class GBDeployer { // Skips .gbapp inside deploy folder. if (!e.startsWith('packages')) { logger.info(`Deploying app: ${e}...`); - import(e) - .then(m => { - const p = new m.Package(); - p.loadPackage(core, core.sequelize); - appPackages.push(p); - logger.info(`App (.gbapp) deployed: ${e}.`); + + let folder = Path.join(e, 'node_modules'); + if (!Fs.existsSync(folder)) { + logger.info(`Installing modules for ${e}...`); + child_process.execSync('npm install', { cwd: e }); + } + + folder = Path.join(e, 'dist'); + if (!Fs.existsSync()) { + logger.info(`Compiling ${e}...`); + + try { + child_process.execSync(Path.join(e, 'node_modules/.bin/tsc'), { cwd: e }); + import(e) + .then(m => { + const p = new m.Package(); + p.loadPackage(core, core.sequelize); + appPackages.push(p); + logger.info(`App (.gbapp) deployed: ${e}.`); + appPackagesProcessed++; + }) + .catch(err => { + logger.error(`Error deploying .gbapp package: ${e}\n${err}`); + appPackagesProcessed++; + }); + + } catch (error) { + logger.error(`Error compiling .gbapp package ${e}:\n${error.stdout.toString()}`); appPackagesProcessed++; - }) - .catch(err => { - logger.error(`Error deploying App (.gbapp): ${e}: ${err}`); - appPackagesProcessed++; - }); + } + } + } else { appPackagesProcessed++; }