UNPKG

st-bundle

Version:

CLI for watching and bundling SpringType projects.

75 lines (74 loc) 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const events_1 = require("events"); const ElectronLauncher_1 = require("./ElectronLauncher"); const ServerLauncher_1 = require("./ServerLauncher"); class UserHandlerComplete { constructor(initial, ctx, bundles) { this.initial = initial; this.ctx = ctx; this.bundles = bundles; } get server() { if (this.serverLauncher) { return this.serverLauncher; } if (this.ctx.config.target !== 'server') { this.ctx.log.error('Cannot create Server launcher. Target must be electron'); } else { this.serverLauncher = new ServerLauncher_1.ServerLauncher(this.ctx, this.bundles); } return this.serverLauncher; } get electron() { if (this.electronLauncher) { return this.electronLauncher; } const FATAL_ERR = 'Unable to create Electron launcher'; if (this.ctx.config.target !== 'electron') { this.ctx.fatal(FATAL_ERR, ['Reason: Target must be "electron"']); } else { if (this.bundles.length !== 1) { this.ctx.fatal(FATAL_ERR, ['Reason: Set useSingleBundle field in your config']); } try { const electronPath = require('electron'); this.electronLauncher = new ElectronLauncher_1.ElectronLauncher(this.ctx, this.bundles, electronPath); return this.electronLauncher; } catch (e) { this.ctx.fatal(FATAL_ERR, ['Reason: Install electron package first']); } } } } exports.UserHandlerComplete = UserHandlerComplete; class UserHandler { constructor(ctx) { this.ctx = ctx; this.events = new events_1.EventEmitter(); ctx.ict.on('complete', props => { this.events.emit('complete', [this.createDeveloperHandlerComplete(true, ctx, props.bundles)]); return props; }); ctx.ict.on('rebundle_complete', props => { this.events.emit('complete', [this.createDeveloperHandlerComplete(false, ctx, props.bundles)]); return props; }); } createDeveloperHandlerComplete(initial, ctx, bundles) { if (!this.completeHandler) { this.completeHandler = new UserHandlerComplete(initial, ctx, bundles); } return this.completeHandler; } onComplete(fn) { this.events.addListener('complete', args => fn(args[0])); } onChange(fn) { this.events.addListener('complete', args => fn(args[0])); } } exports.UserHandler = UserHandler;