realm-object-server
Version:
61 lines (60 loc) • 3.17 kB
TypeScript
/// <reference types="node" />
import { Realm } from "./realmUtil";
import * as superagent from "superagent";
import { EventEmitter } from "events";
import { StrictEventEmitter } from "strict-event-emitter-types";
import { RealmType } from "../realms/RealmType";
export declare function Promisify<T>(callback: any, ...args: any[]): Promise<T>;
export declare class TimeoutError extends Error {
ms: number;
constructor(ms: number);
}
export declare function timeout<T>(promise: Promise<T>, ms: number): Promise<T>;
export declare function delay(ms: number): Promise<void>;
export declare function validateRealmPath(path: string, userId: string): string;
export declare function getUserIdFromRealmPath(path: string): string;
export declare function writeAsync(realm: Realm, callback: () => void): Promise<void>;
export declare function downloadAllServerChanges(realm: Realm): Promise<void>;
export declare function uploadAllLocalChanges(realm: Realm): Promise<void>;
export declare function closeAfterUpload(realm: Realm): void;
export declare function convertHttpError(error: any): any;
export declare function waitAsync<T>(getter: () => T | Promise<T>, verifier?: (item: T) => boolean, timeout?: number, throwOnTimeout?: boolean): Promise<T>;
export declare function retryRequest(retries?: number, delay?: number, shouldRetry?: (response: superagent.Response) => boolean): superagent.Plugin;
export declare function isPartialPath(path: string): boolean;
export declare function extractPartialInfo(path: string): {
partialIndex: number;
isPartial: boolean;
canonicalPath: string;
customIdentifier: string;
fullPath: string;
};
export declare function getValueIfResolved<T>(promise: Promise<T>): Promise<T | undefined>;
export declare function enumerateObject<T>(obj: {
[key: string]: T;
}): T[];
export declare function enumValues<T extends Object>(enumObject: T): [keyof T];
export declare function mapEnum<T extends Object, U>(enumObject: T, func: (current: keyof T) => U): {
[key in keyof T]: U;
};
export declare function createPromise<T>(): {
promise: Promise<T>;
resolve: (value: T) => void;
reject: (reason?: any) => void;
};
export declare function waitForEvent<TEventRecord, P extends keyof TEventRecord>(emitter: StrictEventEmitter<EventEmitter, TEventRecord>, eventName: P): Promise<TEventRecord[P]>;
export declare function gaussianRandom(array: number[]): number;
export declare function startStopwatch(): [number, number];
export declare function readStopwatch(stopwatch: [number, number]): number;
export declare function measureTime<T>(toMeasure: () => Promise<T>): Promise<{
result: T;
time: number;
}>;
export declare function ensureRealmOfType(requiredType: RealmType, actualType: RealmType): void;
export declare function getValueOrDefault<T>(value: T | undefined, defaultValue: T): T;
export declare function isArrayEmpty(arr: any[]): boolean;
export declare function getAccessLevel(permissions: {
mayRead: boolean;
mayWrite: boolean;
mayManage: boolean;
}): Realm.Sync.AccessLevel;
export declare function nameof<T>(name: Exclude<Extract<keyof T, string>, Function>): string;