@syncable/core
Version:
31 lines (25 loc) • 922 B
text/typescript
import {ResolvedViewQuery, ViewQueryFilter} from '../connection-client';
import {IContext} from '../context';
import {SyncableRefType} from './syncable';
import {SyncableContainer} from './syncable-container';
import {ISyncableObject} from './syncable-object';
export interface ISyncableAdapterGenericParams {
context: IContext;
syncableObject: ISyncableObject;
}
export interface ISyncableAdapter<
TGenericParams extends ISyncableAdapterGenericParams = ISyncableAdapterGenericParams
> {
instantiateByRef(
ref: SyncableRefType<TGenericParams['syncableObject']>,
container: SyncableContainer,
): TGenericParams['syncableObject'] | undefined;
instantiateBySyncable(
syncable: TGenericParams['syncableObject']['syncable'],
): TGenericParams['syncableObject'];
getViewQueryFilter(
context: TGenericParams['context'],
name: string,
query: ResolvedViewQuery,
): ViewQueryFilter;
}