UNPKG

@statezero/core

Version:

The type-safe frontend client for StateZero - connect directly to your backend models with zero boilerplate

34 lines (33 loc) 1.54 kB
import { configInstance } from "./config.js"; import { setAdapters } from "./reactiveAdaptor.js"; import { syncManager } from "./syncEngine/sync.js"; import { initEventHandler } from "./syncEngine/stores/operationEventHandlers.js"; import { querysetStoreRegistry } from "./syncEngine/registries/querysetStoreRegistry.js"; import { modelStoreRegistry } from "./syncEngine/registries/modelStoreRegistry.js"; import { metricRegistry } from "./syncEngine/registries/metricRegistry.js"; /** * Initialize StateZero with the provided configuration * * @param {Object} config - StateZero configuration object * @param {Function} getModelClass - Model class getter function from model-registry.js * @param {Object} adapters - Adapter objects for the framework * @param {Function} adapters.ModelAdaptor - Model adapter * @param {Function} adapters.QuerySetAdaptor - QuerySet adapter * @param {Function} adapters.MetricAdaptor - Metric adapter */ export function setupStateZero(config, getModelClass, adapters) { // Initialize StateZero configuration configInstance.setConfig(config); configInstance.registerModelGetter(getModelClass); setAdapters(adapters.ModelAdaptor, adapters.QuerySetAdaptor, adapters.MetricAdaptor); initEventHandler(); syncManager.initialize(); // Expose registries and sync manager for devtools de if (typeof window !== "undefined") { window.__STATEZERO_DEVTOOLS__ = { querysetStoreRegistry, modelStoreRegistry, metricRegistry, }; } }