@syncable/core
Version:
24 lines (23 loc) • 784 B
TypeScript
import { Dict, Nominal } from 'tslang';
import { ISyncableObject, SyncableRef } from '../syncable';
import { NumericTimestamp } from '../types';
export declare type ChangePacketId = Nominal<string, 'change-packet-id'>;
export interface SyncableCreationRef<T extends ISyncableObject = ISyncableObject> {
type: T['syncable']['_type'];
create: {
id: T['syncable']['_id'];
};
}
export declare type GeneralSyncableRef = SyncableRef | SyncableCreationRef | SyncableRef[];
export interface IChange {
type: string;
refs: object;
options: object | undefined;
}
export interface GeneralChange extends IChange {
refs: Dict<GeneralSyncableRef>;
}
export interface ChangePacket extends GeneralChange {
id: ChangePacketId;
createdAt: NumericTimestamp;
}