You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iotcat 74338fbb93 auto update 5 years ago
..
dist auto update 5 years ago
src auto update 5 years ago
CHANGELOG.md auto update 5 years ago
LICENSE auto update 5 years ago
README.md auto update 5 years ago
package.json auto update 5 years ago

README.md

vlq.js

Convert integers to a Base64-encoded VLQ string, and vice versa. No dependencies, works in node.js or browsers, supports AMD.

Why would you want to do that?

Sourcemaps are the most likely use case. Mappings from original source to generated content are encoded as a sequence of VLQ strings.

What is a VLQ string?

A variable-length quantity is a compact way of encoding large integers in text (i.e. in situations where you can't transmit raw binary data). An integer represented as digits will always take up more space than the equivalent VLQ representation:

Integer VLQ
0 A
1 C
-1 D
123 2H
123456789 qxmvrH
123456789123456789 gxvh6sB

Installation

npm install vlq

...or...

bower install vlq

...or grab the vlq.js file and include it with a <script src='vlq.js'> tag.

Usage

Encoding

vlq.encode accepts an integer, or an array of integers, and returns a string:

vlq.encode( 123 ); // '2H';
vlq.encode([ 123, 456, 789 ]); // '2HwcqxB'

Decoding

vlq.decode accepts a string and always returns an array:

vlq.decode( '2H' ); // [ 123 ]
vlq.decode( '2HwcqxB' ); // [ 123, 456, 789 ]

Using vlq.js with sourcemaps

See here for an example of using vlq.js with sourcemaps.

Credits

Adapted from murzwin.com/base64vlq.html by Alexander Pavlov.

License

MIT.