Алгоритмы сжатия списков чисел для передачи в текстовом виде. В реализацию входят парсер строк и поле для django-rest-framework.
Поддерживаются 2 способа сжатия: диапазоны с выносом за скобку и дельта-строки.
-
Сжимает строку по одному из двух способов сжатия, который можно выбрать:
- диапазоны с выносом за скобку
- дельта-строки
-
Разжимает строку, сжатую по одному из двух алгоритмов.
$ npm install zip-numbers
const zip = require('zip-numbers');
zip.encode([1,3,6]);
//=> '1(0,2,5)'
zip.encode([1,3,6], zip.constants.MODE_SIMPLE_STRING);
//=> '1(0,2,5)'
zip.encode([1,3,6], zip.constants.MODE_DELTA_STRING);
//=> '~.123'
const zip = require('zip-numbers');
zip.decode('1(0,2,5)');
//=> [1, 3, 6]
zip.decode('~.123');
//=> [1, 3, 6]
- encode(tokens, [mode]) ⇒
string
Encodes an array of tokens into a string.
- decode(string) ⇒
Array.<number>
Decodes a string into an array of tokens.
Encodes an array of tokens into a string.
Returns: string
- Encoded string.
Param | Type | Default | Description |
---|---|---|---|
tokens | Array.<number> |
Array of tokens. | |
[mode] | number |
MODE_SIMPLE_STRING |
Mode: MODE_SIMPLE_STRING or MODE_DELTA_STRING. See: zip.constants |
Decodes a string into an array of tokens.
Returns: Array.<number>
- Array of tokens.
Param | Type | Description |
---|---|---|
string | string |
Encoded string. |