UNPKG

vanilla-party

Version:

An easy to use library for simple multi-user JavaScript apps.

153 lines 6.36 kB
declare module "src/log" { export const debug: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; export const log: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; export const alert: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; export const warn: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; export const error: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; export const styled: { (...data: any[]): void; (message?: any, ...optionalParams: any[]): void; }; } declare module "src/validate" { import { JSONValue, JSONObject, RecordData } from "@deepstream/client/dist/src/constants"; import { SubscriptionCallback as OriginalSubscriptionCallback } from "@deepstream/client/dist/src/record/record"; export { JSONValue, JSONObject, RecordData }; export type UserData = unknown; export type SubscriptionCallback = OriginalSubscriptionCallback | ((...args: Parameters<OriginalSubscriptionCallback>) => Promise<void>); /** * checks if `value` is JSONValue (JSON serializable) * logs error message if not * * @param value value to check * @param name the name of the value to use in debugging messages * @returns if the value is JSONValue */ export function isJSONValue(value: UserData, name?: string): value is JSONValue; /** * checks if `value` is JSONObject (JSON serializable + object) * logs error message if not * * @param value value to check * @returns if the value is JSONObject */ export function isJSONObject(value: UserData, name?: string): value is JSONObject; export function isEmpty(o: any): boolean; } declare module "src/patch" { import { JSONObject } from "src/validate"; /** * patches _old to deep equal _new * needed so objects can be updated without breaking references to them * * @param oldObject object to be updated * @param newObject object with values to use for update * @param path path to the object to be updated */ export function patchInPlace(oldObject: JSONObject, newObject: JSONObject, path?: string): void; } declare module "src/Record" { import { DeepstreamClient } from "@deepstream/client"; import { SubscriptionCallback } from "src/validate"; import { UserData, JSONValue, JSONObject } from "src/validate"; export class Record { #private; constructor(ds: DeepstreamClient, name: string); load(initObject?: UserData, overwrite?: boolean): Promise<void>; get whenLoaded(): Promise<void>; /** * sets initial data on the record only if the record is empty * * @param data initial data to set on the record */ initData(data: UserData, overwrite?: boolean): Promise<void>; setData(data: UserData): void; watchShared(callback: SubscriptionCallback, triggerNow?: boolean): void; watchShared(path: string, callback: SubscriptionCallback, triggerNow?: boolean): void; get shared(): JSONObject; get name(): string; delete(): Promise<unknown>; _set(path: string, value: JSONValue): Promise<void>; _get(key?: string): JSONValue; static recordForShared(watchedShared: JSONObject): Record | undefined; } } declare module "src/Room" { import { SubscriptionCallback } from "src/validate"; import { UserData, JSONObject } from "src/validate"; import { Record } from "src/Record"; export class Room { #private; constructor(host: string, appName: string, roomName: string); isConnected(): boolean; get whenConnected(): Promise<void>; disconnect(): void; info(): { appName: string; roomName: string; guestNames: string[]; guestName: string; isConnected: boolean; isHost: boolean; }; getRecord(name: string): Record; subscribe(event: string, cb: SubscriptionCallback): void; unsubscribe(event: string, cb?: SubscriptionCallback): void; emit(event: string, data?: UserData): void; get hostName(): string | undefined; get _guestNames(): string[]; get myGuestRecord(): Record; get guestShareds(): JSONObject[]; isHost(): boolean; } } declare module "version" { export const version: "0.5.0"; } declare module "src/core" { import { JSONObject, UserData } from "src/validate"; import { SubscriptionCallback } from "@deepstream/client/dist/src/record/record"; import { Room } from "src/Room"; import { Record } from "src/Record"; export const partyConnect: (host: string, appName: string, roomName?: string, cb?: () => void) => void; export const partyDisconnect: () => void; export const partyLoadShared: (name: string, initObject?: UserData, cb?: (shared: JSONObject) => void) => JSONObject | undefined; export const partyLoadMyShared: (initObject?: {}, cb?: (shared: JSONObject) => void) => JSONObject | undefined; export const partyLoadGuestShareds: () => JSONObject[] | undefined; export const partyIsHost: () => boolean; export const partySetShared: (shared: JSONObject, object: JSONObject) => void; export const partyWatchShared: (shared: JSONObject, a: any, b: any, c: any) => void; export const partyEmit: (event: string, data?: UserData) => void; export const partySubscribe: (event: string, cb: SubscriptionCallback) => void; export const partyUnsubscribe: (event: string, cb?: SubscriptionCallback) => void; export const partyCountGuests: () => number | undefined; export const partyGetRoom: () => Room | null; export { Room as PartyRoom, Record as PartyRecord }; } declare module "src/addons/info_panel/index" { /** * @param {boolean} show */ export function partyToggleInfo(show: boolean): void; } declare module "src/index" { export * from "src/core"; export { partyToggleInfo } from "src/addons/info_panel/index"; } declare module "src/web" { } //# sourceMappingURL=vanilla-party.d.ts.map