UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 1.08 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FullyMappedAlphabet=void 0;const from_1=require("@reactivex/ix-es2015-cjs/iterable/from"),filter_1=require("@reactivex/ix-es2015-cjs/iterable/operators/filter"),Errors_1=require("../../Errors"),MappedAlphabetBase_1=require("./MappedAlphabetBase");class FullyMappedAlphabet extends MappedAlphabetBase_1.MappedAlphabetBase{constructor(e){super(e);const r=[...(0,from_1.from)(e.base).pipe((0,filter_1.filter)(r=>!(r in e.mapping)))];if(r.length>0)throw Errors_1.AltoError.create("A fully mapped alphabet must contain mapping for each characterin the base alphabet.\nMapping values count must be equal to base alphabet length.",{data:{unmappedCharacters:r}})}has(e){return e in this._reverseMapping&&this._base.has(this._reverseMapping[e])}getAt(e){const r=this._base.getAt(e);return this._mapping[r]}indexOf(e){return e in this._reverseMapping?this._base.indexOf(this._reverseMapping[e]):-1}*[Symbol.iterator](){for(const e of this._base)yield this._mapping[e]}}exports.FullyMappedAlphabet=FullyMappedAlphabet;