UNPKG

@wiz-develop/server-clock

Version:

Server-synchronized clock implementation for browsers with WebWorker support

33 lines (32 loc) 1.63 kB
import { type CalculatedResult, type ClockData, type ProcessedServerResponse, type ServerResponse, type ServerUrls } from './types'; /** * 時刻を文字列に変換する */ export declare const toDateString: (t: Date) => string; /** * タイムアウト付きで fetch する */ export declare const fetchWithTimeout: (url: string, timeout?: number) => Promise<Response>; /** * 時刻配信サーバーからのレスポンスが有効かどうか */ export declare const isValidServerResult: (value: unknown) => value is ServerResponse; /** * 時刻配信サーバーからのレスポンスを加工する */ export declare const processResponse: (itMs: number, rtMs: number, data: ServerResponse) => ProcessedServerResponse; /** * サーバーからのレスポンスを元にオフセット(クライアントとサーバーのズレ)を計算する */ export declare const calculateOffset: (responses: ProcessedServerResponse[], serverUrls: ServerUrls) => CalculatedResult; /** * クライアント時刻とサーバー時刻とのオフセットを計算する * @param serverUrls 時刻配信サーバーのURLリスト * @param fetchTimeout HTTPリクエストのタイムアウト時間(ミリ秒) * @param currentResult 現在のオフセット計算結果(オフライン時などに使用) */ export declare const fetchCalculateServerTimeOffset: (serverUrls: ServerUrls, fetchTimeout: number, currentResult?: CalculatedResult) => Promise<CalculatedResult>; /** * 時計データを取得する */ export declare const getClockData: (result: CalculatedResult, clockInterval: number) => ClockData;