bit-crush
Version:
Javascript dictionary encoder
24 lines (20 loc) • 812 B
text/typescript
export default class CharGenerator {
private availableChars: Array<string>
private index: number
constructor (code: string) {
const allChars = [
...'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
...'0123456789',
...'+-*/()[]{}^%$!@.,_<>?:;',
...'αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ',
...'абвгдеёжзийклмнопрстуфхцчшщыэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩъЫьЭЮЯ',
]
this.availableChars = allChars.filter(char => !code.includes(char))
this.index = 0
}
getNextChar () {
const nextChar = this.availableChars[this.index] || String.fromCharCode(192 + this.index)
this.index++
return nextChar
}
}