@andrew_l/tl-pack
Version:
Another implementation of binary serialization.
39 lines (34 loc) • 1.25 kB
JavaScript
;
const BinaryReader = require('./shared/tl-pack.5CF-VZgL.cjs');
const toolkit = require('@andrew_l/toolkit');
require('pako');
function createExtension(token, { encode, decode }) {
toolkit.assert.ok(Math.trunc(token) === token, " Token must be integer value.");
toolkit.assert.ok(
token === -1 || token >= 0 && token <= 255,
"Token must be a 8 bit number. (0 - 255)"
);
toolkit.assert.ok(token === -1 || token >= 35, "Tokens from 0 to 34 reserved.");
return {
token,
encode,
decode
};
}
function tlEncode(value, opts) {
return new BinaryReader.BinaryWriter(opts).writeObject(value).getBuffer();
}
function tlDecode(buffer, opts) {
return new BinaryReader.BinaryReader(buffer, opts).readObject();
}
exports.BinaryReader = BinaryReader.BinaryReader;
exports.BinaryWriter = BinaryReader.BinaryWriter;
exports.CORE_TYPES = BinaryReader.CORE_TYPES;
exports.MAX_BUFFER_SIZE = BinaryReader.MAX_BUFFER_SIZE;
exports.Structure = BinaryReader.Structure;
exports.createDictionary = BinaryReader.createDictionary;
exports.defineStructure = BinaryReader.defineStructure;
exports.createExtension = createExtension;
exports.tlDecode = tlDecode;
exports.tlEncode = tlEncode;
//# sourceMappingURL=index.cjs.map