UNPKG

@hms-networks/kolibri-js-core

Version:

Kolibri Core library containing common kolibri models and utils

51 lines 2.02 kB
/* * Copyright 2021 HMS Industrial Networks AB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http: //www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { constants } from '../../common/constant'; import { errorcode, KolibriError } from '../../common/errorcode'; var OpcodeDecoder = /** @class */ (function () { function OpcodeDecoder(opcodes, opcodeCompatMapper) { var _this = this; this.opcodes = opcodes; this.opcodeCompatMapper = opcodeCompatMapper; this.opcodesMap = new Map(); this.opcodes.forEach(function (opcode) { _this.opcodesMap.set(opcode.getCode(), opcode); }); } OpcodeDecoder.prototype.getOpcode = function (code) { var opcode = this.opcodesMap.get(code); if (!opcode) { throw new KolibriError(errorcode.INVALID_OPCODE); } return opcode; }; OpcodeDecoder.prototype.getNameFromOpcode = function (opcode) { return this.getOpcode(opcode).getName(); }; OpcodeDecoder.prototype.decode = function (buffer) { var opcode = this.getOpcode(buffer[0]); var kpo = opcode.decode(buffer); return this.opcodeCompatMapper.map(kpo, constants.INCOMING_DIRECTION); }; OpcodeDecoder.prototype.encode = function (kpo) { var opcode = this.getOpcode(kpo.opcode); var compatKpo = this.opcodeCompatMapper.map(kpo, constants.OUTGOING_DIRECTION); return opcode.encode(compatKpo); }; return OpcodeDecoder; }()); export { OpcodeDecoder }; //# sourceMappingURL=opcode_decoder.js.map