All files / server controller.js

100% Statements 12/12
100% Branches 2/2
100% Functions 8/8
100% Lines 12/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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            4x         2x 2x 1x   2x               2x         3x 1x 1x 1x   3x 3x      
import Service from './service.js'
 
 
export default class Controller {
 
  constructor () {
    this.service = new Service()
  }
 
 
  createClientStream () {
    const { id, stream } = this.service.createClientStream()
    const onClose = () => {
      this.service.removeClientStream(id)
    }
    return {
      stream, onClose
    }
  }
 
 
  /** @param {string} fileName */
  async getFileStream (fileName) {
    return this.service.getFileStream(fileName)
  }
 
 
  async handleCommand ({ command }) {
    const commands = {
      'fx': () => this.service.appendFxStream(command),
      'start': () => this.service.startStream(),
      'stop': () => this.service.stopStream()
    }
    const exec = commands[command] || commands.fx
    return await exec()
  }
 
}