okx-api-nw
Version:
Complete & robust Node.js SDK for OKX's REST APIs and WebSockets, with TypeScript & end-to-end tests
64 lines • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.neverGuard = exports.isConnCountEvent = exports.isWsUnsubscribeEvent = exports.isWsSubscribeEvent = exports.isWsLoginEvent = exports.isWsErrorEvent = exports.isWsDataEvent = exports.isWsEvent = exports.isRawAPIResponse = void 0;
function isRawAPIResponse(response) {
if (typeof response !== 'object' || !response) {
return false;
}
if ('code' in response && 'msg' in response && 'data' in response) {
return true;
}
return false;
}
exports.isRawAPIResponse = isRawAPIResponse;
/** Simple type guard that a websocket event extends a known event schema */
function isWsEvent(evtData) {
if (typeof evtData !== 'object' || !evtData) {
return false;
}
if ('event' in evtData) {
return true;
}
return false;
}
exports.isWsEvent = isWsEvent;
function isWsDataEvent(evtData) {
if (typeof evtData !== 'object' || !evtData) {
return false;
}
if ('arg' in evtData && 'data' in evtData) {
return true;
}
return false;
}
exports.isWsDataEvent = isWsDataEvent;
function isWsErrorEvent(evt) {
return isWsEvent(evt) && evt.event === 'error';
}
exports.isWsErrorEvent = isWsErrorEvent;
/** Usually a response to authenticating over ws */
function isWsLoginEvent(evt) {
return isWsEvent(evt) && evt.event === 'login';
}
exports.isWsLoginEvent = isWsLoginEvent;
/** A response to subscribing to a channel */
function isWsSubscribeEvent(evtData) {
return isWsEvent(evtData) && evtData.event === 'subscribe';
}
exports.isWsSubscribeEvent = isWsSubscribeEvent;
/** A response to unsubscribing from a channel */
function isWsUnsubscribeEvent(evtData) {
return isWsEvent(evtData) && evtData.event === 'unsubscribe';
}
exports.isWsUnsubscribeEvent = isWsUnsubscribeEvent;
/** Information event */
function isConnCountEvent(evtData) {
return isWsEvent(evtData) && evtData.event === 'channel-conn-count';
}
exports.isConnCountEvent = isConnCountEvent;
/** Simple typescript guard never expecting code to reach it (will throw typescript error if called) */
function neverGuard(x, msg) {
return new Error(`Unhandled value exception "${x}", ${msg}`);
}
exports.neverGuard = neverGuard;
//# sourceMappingURL=typeGuards.js.map