biketrack-app/node_modules/@ethersphere/bee-js/dist/cjs/utils/reference.js

37 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeBytesReference = void 0;
const types_1 = require("../types");
const bytes_1 = require("./bytes");
const hex_1 = require("./hex");
function makeBytesReference(reference, offset = 0) {
if (typeof reference === 'string') {
if (offset) {
throw new Error('Offset property can be set only for UintArray reference!');
}
try {
// Non-encrypted chunk hex string reference
const hexReference = (0, hex_1.makeHexString)(reference, types_1.REFERENCE_HEX_LENGTH);
return (0, hex_1.hexToBytes)(hexReference);
}
catch (e) {
if (!(e instanceof TypeError)) {
throw e;
}
// Encrypted chunk hex string reference
const hexReference = (0, hex_1.makeHexString)(reference, types_1.ENCRYPTED_REFERENCE_HEX_LENGTH);
return (0, hex_1.hexToBytes)(hexReference);
}
}
else if (reference instanceof Uint8Array) {
if ((0, bytes_1.hasBytesAtOffset)(reference, offset, types_1.ENCRYPTED_REFERENCE_BYTES_LENGTH)) {
return (0, bytes_1.bytesAtOffset)(reference, offset, types_1.ENCRYPTED_REFERENCE_BYTES_LENGTH);
}
else if ((0, bytes_1.hasBytesAtOffset)(reference, offset, types_1.REFERENCE_BYTES_LENGTH)) {
return (0, bytes_1.bytesAtOffset)(reference, offset, types_1.REFERENCE_BYTES_LENGTH);
}
}
throw new TypeError('invalid chunk reference');
}
exports.makeBytesReference = makeBytesReference;