in fusion-cli/build/dev-runtime.js [23:62]
function Lifecycle() {
const emitter = new EventEmitter();
const state = {started: false, error: undefined};
let listening = false;
return {
start: () => {
state.started = true;
state.error = undefined;
emitter.emit('message');
},
stop: () => {
state.started = false;
},
error: error => {
state.error = error;
// The error listener may emit before we call wait.
// Make sure that we're listening before attempting to emit.
if (listening) {
emitter.emit('message', error);
}
},
wait: () => {
return new Promise((resolve, reject) => {
if (state.started) resolve();
else if (state.error) reject(state.error);
else {
listening = true;
emitter.once('message', (error /*: Error */) => {
if (error) {
listening = false;
return reject(error);
}
resolve();
});
}
});
},
};
}