trpc-browser
Version:
tRPC adapters and links for everywhere in the browser
31 lines • 1.26 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTRPCRequestWithId = exports.isTRPCRequest = exports.isTRPCResponse = exports.isTRPCMessage = void 0;
function isPlainObject(obj) {
return typeof obj === 'object' && obj !== null && !Array.isArray(obj);
}
function isNullOrUndefined(x) {
return x === null || x === undefined;
}
function isTRPCMessage(message) {
return Boolean(isPlainObject(message) && 'trpc' in message && isPlainObject(message.trpc));
}
exports.isTRPCMessage = isTRPCMessage;
function isTRPCMessageWithId(message) {
return isTRPCMessage(message) && 'id' in message.trpc && !isNullOrUndefined(message.trpc.id);
}
// reponse needs error or result
function isTRPCResponse(message) {
return isTRPCMessageWithId(message) && ('error' in message.trpc || 'result' in message.trpc);
}
exports.isTRPCResponse = isTRPCResponse;
// request needs method
function isTRPCRequest(message) {
return isTRPCMessageWithId(message) && 'method' in message.trpc;
}
exports.isTRPCRequest = isTRPCRequest;
function isTRPCRequestWithId(message) {
return isTRPCRequest(message) && isTRPCMessageWithId(message);
}
exports.isTRPCRequestWithId = isTRPCRequestWithId;
//# sourceMappingURL=trpcMessage.js.map
;