feat: add sync typescript types

This commit is contained in:
Richard 2024-02-29 22:26:39 -08:00
parent a30293ee3b
commit dda00f7a4e
3 changed files with 55 additions and 13 deletions

View file

@ -7,13 +7,13 @@ type ClientSyncOptions = {
atoms: { [string]: Atom<any> },
}
type ClientSync = {
sync: (self: ClientSync, payload: types.SyncPayload) -> (),
type ClientSyncer = {
sync: (self: ClientSyncer, payload: types.SyncPayload) -> (),
}
local function client(options: ClientSyncOptions): ClientSync
local function client(options: ClientSyncOptions): ClientSyncer
local atoms = options.atoms
local self = {} :: ClientSync
local self = {} :: ClientSyncer
function self:sync(payload)
for key, state in payload.data do

View file

@ -11,16 +11,16 @@ type ServerSyncOptions = {
interval: number?,
}
type ServerSync = {
onSync: (self: ServerSync, callback: (player: Player, payload: types.SyncPayload) -> ()) -> () -> (),
flush: (self: ServerSync, player: Player?) -> (),
hydrate: (self: ServerSync, player: Player) -> (),
type ServerSyncer = {
onSync: (self: ServerSyncer, callback: (player: Player, payload: types.SyncPayload) -> ()) -> () -> (),
flush: (self: ServerSyncer, player: Player?) -> (),
hydrate: (self: ServerSyncer, player: Player) -> (),
}
local function server(options: ServerSyncOptions): ServerSync
local function server(options: ServerSyncOptions): ServerSyncer
local atoms = options.atoms
local interval = options.interval or 0
local self = {} :: ServerSync
local self = {} :: ServerSyncer
local sync: (player: Player, payload: types.SyncPayload) -> ()
local state: {}