Katlux Providers Development

Isomorphic Data, Cache, and Request Providers for state management, client/server side caching, and API data fetching.

Framework-Agnostic Architecture

The @katlux/providers package is a 100% standalone, zero-framework-dependency TypeScript library. It works seamlessly in Node.js, CLI applications, Vanilla JS, React, Svelte, and Vue 3 / Nuxt 3.

  • Data Providers: CFlatClientDataProvider, CFlatServerDataProvider, CTreeClientDataProvider, CTreeServerDataProvider, CAPIFlatClientDataProvider, CAPIFlatServerDataProvider - handle client/server filtering, sorting, pagination, and tree hierarchies.
  • Observer Pattern: Standalone event-driven updates via provider.subscribe((state) => ...) and snapshot retrieval via provider.getState().
  • Framework-Agnostic State: Access native properties directly (provider.pageData, provider.loading, provider.currentPage, provider.rowCount) with zero framework overhead.
  • Vue 3 Bridge: Use useDataProvider(provider) from @katlux/toolkit for idiomatic Vue refs with automatic lifecycle cleanup (onScopeDispose) and zero SSR memory leaks.
  • Cache Providers: Isomorphic caching mechanisms including Cookie, IndexedDB, Memory, LocalStorage, Application Cache, and Session Cache strategies.
  • Request Providers: Encapsulated API fetchers with automatic retry logic, caching strategies (ECacheStrategy), request deduplication, and error handling.

For full monorepo environment setup and local dev commands, visit the Katlux Showcase Development guide.

Package Structure
TEXT
packages/katlux-providers/
├── services/
│   ├── DataProvider/   # ADataProvider, AAPIDataProvider, Flat & Tree providers
│   ├── CacheProvider/  # CMemoryCache, CIndexedDBCache, CLocalStorageCache, etc.
│   ├── RequestProvider/# RequestProvider, RequestQueue, RequestProviderRegistry
│   ├── utils/          # filterLogic, sortLogic, debounce
│   ├── types.ts        # Interfaces, enums & type definitions
│   └── index.ts        # Package export barrel
├── package.json
└── tsconfig.json