UNPKG

@statezero/core

Version:

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

39 lines (38 loc) 1.39 kB
// Global singleton for reactivity adapters let modelAdapter = null; let querySetAdapter = null; let metricAdaptor = null; /** * Set the global reactivity adapters. * @param {Function} modelAdapterFn - A function that takes a model and returns its reactive version. * @param {Function} querySetAdapterFn - A function that takes a queryset and returns its reactive version. */ export function setAdapters(modelAdapterFn, querySetAdapterFn, metricAdaptorFn) { modelAdapter = modelAdapterFn; querySetAdapter = querySetAdapterFn; metricAdaptor = metricAdaptorFn; } /** * Wrap a model with the configured reactivity adapter. * @param {Object} model - The model to wrap. * @returns {Object} The reactive model. */ export function wrapReactiveModel(model) { return modelAdapter ? modelAdapter(model) : model; } /** * Wrap a queryset with the configured reactivity adapter. * @param {Object} querySet - The queryset to wrap. * @returns {Object} The reactive queryset. */ export function wrapReactiveQuerySet(querySet) { return querySetAdapter ? querySetAdapter(querySet) : querySet; } /** * Wrap a metric with the configured reactivity adaptor. * @param {Object} LiveMetric - the metric to wrap. * @returns {Object} The reactive metric */ export function wrapReactiveMetric(liveMetric) { return metricAdaptor ? metricAdaptor(liveMetric) : liveMetric; }