vanilla-party
Version:
An easy to use library for simple multi-user JavaScript apps.
153 lines • 6.36 kB
TypeScript
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