@trezor/transport
Version:
Low level library facilitating protocol buffers based communication with Trezor devices
118 lines (117 loc) • 2.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.info = info;
exports.version = version;
exports.devices = devices;
exports.acquire = acquire;
exports.call = call;
exports.post = post;
exports.empty = empty;
const tslib_1 = require("tslib");
const bridgeProtocolMessage_1 = require("./bridgeProtocolMessage");
const result_1 = require("./result");
const ERRORS = tslib_1.__importStar(require("../errors"));
function isString(payload) {
return typeof payload === 'string';
}
function info(res) {
if (isString(res)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
const {
version
} = res;
if (typeof version !== 'string') {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
const configured = !!res.configured;
const protocolMessages = !!res.protocolMessages;
return (0, result_1.success)({
version,
configured,
protocolMessages
});
}
function version(res) {
if (!isString(res)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
return (0, result_1.success)(res.trim());
}
function devices(res) {
if (isString(res)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
if (!(res instanceof Array)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
if (res.some(o => typeof o !== 'object' || !o || typeof o.path !== 'string' || typeof o.session !== 'string' && o.session !== null)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
return (0, result_1.success)(res.map(o => ({
path: o.path,
session: o.session,
sessionOwner: o.sessionOwner,
product: o.product,
type: o.type,
vendor: o.vendor,
debug: o.debug,
debugSession: o.debugSession,
id: o.id,
apiType: o.apiType || 'usb'
})));
}
function acquire(res) {
if (isString(res)) {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
const {
session
} = res;
if (typeof session !== 'string') {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
return (0, result_1.success)(session);
}
function call(res) {
try {
return (0, result_1.success)((0, bridgeProtocolMessage_1.validateProtocolMessage)(res, true));
} catch {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
}
function post(res) {
try {
return (0, result_1.success)((0, bridgeProtocolMessage_1.validateProtocolMessage)(res, false));
} catch {
return (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
});
}
}
function empty(res) {
return res != null && JSON.stringify(res) === '{}' ? (0, result_1.error)({
error: ERRORS.WRONG_RESULT_TYPE
}) : (0, result_1.success)(undefined);
}
//# sourceMappingURL=bridgeApiResult.js.map