You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
988 B

// boot the framework for use in testing
const framework$ = (function() {
class FrameworkLoader {
listeners = []
booted = false
subscribe(handler) {
if ( !this.booted ) this.listeners.push(handler)
else handler()
}
boot() {
const units = require('../../Units.flitter')
delete units.App
const { FlitterApp, RunLevelErrorHandler } = require('libflitter')
this.flitter = new FlitterApp(units)
this.rleh = new RunLevelErrorHandler()
this.flitter.up().then(() => {
this.booted = true
for ( const listener of this.listeners ) {
try {
listener()
} catch (e) {}
}
})
}
stop() {
return this.flitter.down()
}
}
return new FrameworkLoader()
})()
module.exports = exports = framework$