piral-core
Version:
The core library for creating a Piral instance.
61 lines • 2.24 kB
JavaScript
import { installPiralDebug } from 'piral-debug-utils';
export function integrateDebugger(context, options, debug = {}) {
installPiralDebug({
emulator: debug.emulator,
customSettings: debug.customSettings,
defaultSettings: debug.defaultSettings,
addPilet: context.addPilet,
removePilet: context.removePilet,
updatePilet(pilet) {
if (!pilet.disabled) {
context.addPilet(pilet);
}
else {
context.injectPilet(pilet);
}
},
fireEvent: context.emit,
getDependencies() {
return Object.keys(options.dependencies);
},
getExtensions() {
return context.readState((s) => Object.keys(s.registry.extensions));
},
getRoutes() {
const registeredRoutes = context.readState((state) => Object.keys(state.registry.pages));
const componentRoutes = context.readState((state) => Object.keys(state.routes));
return [...componentRoutes, ...registeredRoutes];
},
getGlobalState() {
return context.readState((s) => s);
},
navigate(path, state) {
return context.navigation.push(path, state);
},
getPilets() {
return context.readState((s) => s.modules);
},
integrate(dbg) {
context.dispatch((s) => ({
...s,
routes: {
...s.routes,
...dbg.routes,
},
}));
context.state.subscribe((current, previous) => {
const pilets = current.modules !== previous.modules;
const pages = current.registry.pages !== previous.registry.pages || current.routes !== previous.routes;
const extensions = current.registry.extensions !== previous.registry.extensions;
const state = current !== previous;
dbg.onChange(previous, current, {
pilets,
pages,
extensions,
state,
});
});
},
});
}
//# sourceMappingURL=debugger.js.map