import {Core} from './Core.js';
import {events} from './EventTypes.js';
import {default as PubSub} from 'pubsub-js';
import {Core} from './Core.js';
import {events} from './EventTypes.js';
import {default as PubSub} from 'pubsub-js';
depends: Kronicle.Core, Kronicle.EventTypes, pubsub-js The main Kronicle Class, constructor takes no arguments The class has one property
export class Kronicle {
constructor(){
this.core = null;
}
Takes an array of Kronicle Modules as an argument and initializes the core. Returns a reference to the object.
build (args = { modules: [] }) {
this.core = new Core(args.modules);
return this;
}
Takes a callback as an argument. Callback is called when Kronicle Core is initialized.
initialize(cb) {
PubSub.subscribe(events.Initialized, cb);
return this;
}
Takes a callback as an argument. Callback is called before any Kronicle modules are loaded, callback receives all modules as an argument ie cb(modules).
beforeModulesLoad(cb) {
PubSub.subscribe(events.BeforeModulesLoad, cb);
return this;
}
Takes a callback as an argument. Callback is called as each module is loaded, callback receives module as an argument ie cb(module)
moduleLoaded(cb) {
PubSub.subscribe(events.ModuleLoaded, cb);
return this;
}
Takes a callback as an argument. Callback is called after all modules are loaded, callback receives all modules as argument ie cb(modules)
afterModulesLoad(cb){
PubSub.subscribe(events.AfterModulesLoad, cb);
return this;
}
Takes a callback as an argument. Callback is called after all modules are loaded an Kronicle is ready for use.
ready(cb) {
PubSub.subscribe(events.Ready, cb);
return this;
}
Takes a callback as an argument. Callback is called when Kronicle is ready to be used, callback receives the core with added modules as a callback. Should be used as main entry point for kronicle apps.
start(cb){
cb.call(this, this.core.addedModules);
PubSub.publish(events.Start);
return this;
}
}