mirror of
https://github.com/cypress-io/cypress.git
synced 2026-02-10 00:59:47 -06:00
55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
require('../cwd')
|
|
|
|
const EE = require('events')
|
|
const debug = require('debug')('cypress:ct:dev-server')
|
|
const plugins = require('../plugins')
|
|
const errors = require('../errors')
|
|
|
|
const baseEmitter = new EE()
|
|
|
|
plugins.registerHandler((ipc) => {
|
|
baseEmitter.on('dev-server:specs:changed', (specs) => {
|
|
ipc.send('dev-server:specs:changed', specs)
|
|
})
|
|
|
|
ipc.on('dev-server:compile:error', (error) => {
|
|
baseEmitter.emit('dev-server:compile:error', error)
|
|
})
|
|
|
|
ipc.on('dev-server:compile:success', ({ specFile } = {}) => {
|
|
baseEmitter.emit('dev-server:compile:success', { specFile })
|
|
})
|
|
|
|
baseEmitter.on('dev-server:close', () => {
|
|
debug('base emitter plugin close event')
|
|
|
|
ipc.send('dev-server:close')
|
|
})
|
|
})
|
|
|
|
// for simpler stubbing from unit tests
|
|
const API = {
|
|
emitter: baseEmitter,
|
|
|
|
start ({ specs, config }) {
|
|
if (!plugins.has('dev-server:start')) {
|
|
throw errors.get('CONFIG_FILE_INVALID_DEV_START_EVENT', config.pluginsFile)
|
|
}
|
|
|
|
return plugins.execute('dev-server:start', { specs, config })
|
|
},
|
|
|
|
updateSpecs (specs) {
|
|
baseEmitter.emit('dev-server:specs:changed', specs)
|
|
},
|
|
|
|
close () {
|
|
debug('close dev-server')
|
|
baseEmitter.emit('close')
|
|
|
|
baseEmitter.removeAllListeners()
|
|
},
|
|
}
|
|
|
|
module.exports = API
|