All files / src/commands index.js

100% Statements 18/18
100% Branches 2/2
100% Functions 6/6
100% Lines 18/18
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 29 30 31 32 33 34 35 36 37 38    1x 1x 1x   1x   2x 2x 2x     2x 2x   2x 2x 1x   2x     2x 2x     1x 1x     2x            
'use strict';
 
const fs = require('fs');
const Path = require('path');
const Deploy = require('./deploy');
 
module.exports = {
    deploy: (service, path, argv, options) => {
        return new Promise((resolve, reject) => {
            let failed = false;
            const logStream = fs.createWriteStream(
                Path.resolve('./serviceless.log')
            );
            logStream.on('error', reject);
            const deploy = new Deploy(path, argv, options, logStream);
 
            logStream.on('finish', () => {
                if (failed) {
                    process.exit(1);
                }
                resolve();
            });
 
            logStream.once('open', () => {
                deploy
                    .exec(service)
                    .catch(err => {
                        failed = true;
                        logStream.end();
                    })
                    .then(() => {
                        logStream.end();
                    });
            });
        });
    }
};