UNPKG

@rattus-orm/react-signals

Version:

ORM for your JS/TS apps: react-signals bindings

40 lines (34 loc) 1.89 kB
import { RattusOrmInstallerOptions, UseRepository } from '@rattus-orm/core/utils/integrationsHelpers'; import React, { PropsWithChildren } from 'react'; import { State, Elements, DataProviderHelpers, DataProvider, ModulePath, SerializedStorage, Repository, Model } from '@rattus-orm/core'; import { Signal } from '@preact/signals-react'; export { reactUseDatabase as useDatabase } from '@rattus-orm/core/utils/reactIntegrationHelpers'; declare function RattusProvider(props: PropsWithChildren<RattusOrmInstallerOptions>): React.JSX.Element; declare class SignalStore { protected signal: Signal<State>; constructor(initialState?: State); destroy(ids: string[]): void; flush(): void; fresh(records: Elements): void; save(records: Elements): void; getData(): State; protected peekData(): Elements; } declare class ReactSignalsDataProvider extends DataProviderHelpers implements DataProvider { protected readonly storesMap: Map<string, SignalStore>; delete(module: ModulePath, ids: string[]): void; dump(): SerializedStorage; flush(module: ModulePath): void; getModuleState(module: ModulePath): State; hasModule(module: ModulePath): boolean; insert(module: ModulePath, records: Elements): void; registerConnection(): void; registerModule(path: ModulePath, initialState?: State): void; replace(module: ModulePath, records: Elements): void; save(module: ModulePath, records: Elements): void; update(module: ModulePath, records: Elements): void; protected getModulePathAsString(modulePath: ModulePath): string; protected getSignalStore(modulePath: ModulePath): SignalStore; } declare function useRepository<R extends Repository<InstanceType<M>>, M extends typeof Model = typeof Model>(model: M, connection?: string): UseRepository<R, M>; export { RattusProvider, ReactSignalsDataProvider, useRepository };