Download node_modules/@jridgewell/sourcemap-codec/src/vlq.ts from metarm/QMetaRam: direct link, hf CLI and curl.
- Browser
- Download file 1.32 kB
-
https://huggingface.co/metarm/QMetaRam/resolve/main/node_modules/%40jridgewell/sourcemap-codec/src/vlq.ts
- Command line
-
hf download hf://metarm/QMetaRam/node_modules/@jridgewell/sourcemap-codec/src/vlq.ts
-
curl -L -o vlq.ts https://huggingface.co/metarm/QMetaRam/resolve/main/node_modules/%40jridgewell/sourcemap-codec/src/vlq.ts
1.32 kB
| import type { StringReader, StringWriter } from './strings'; | |
| export const comma = ','.charCodeAt(0); | |
| export const semicolon = ';'.charCodeAt(0); | |
| const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; | |
| const intToChar = new Uint8Array(64); // 64 possible chars. | |
| const charToInt = new Uint8Array(128); // z is 122 in ASCII | |
| for (let i = 0; i < chars.length; i++) { | |
| const c = chars.charCodeAt(i); | |
| intToChar[i] = c; | |
| charToInt[c] = i; | |
| } | |
| export function decodeInteger(reader: StringReader): number { | |
| let value = 0; | |
| let shift = 0; | |
| let integer = 0; | |
| do { | |
| const c = reader.next(); | |
| integer = charToInt[c]; | |
| value |= (integer & 31) << shift; | |
| shift += 5; | |
| } while (integer & 32); | |
| return value; | |
| } | |
| export function decodeSign(num: number): number { | |
| return num & 1 ? -0x80000000 | -(num >>> 1) : num >>> 1; | |
| } | |
| export function encodeInteger(builder: StringWriter, num: number) { | |
| do { | |
| let clamped = num & 0b011111; | |
| num >>>= 5; | |
| if (num > 0) clamped |= 0b100000; | |
| builder.write(intToChar[clamped]); | |
| } while (num > 0); | |
| } | |
| export function encodeSign(num: number): number { | |
| return num < 0 ? (-num << 1) | 1 : num << 1; | |
| } | |
| export function hasMoreVlq(reader: StringReader, max: number) { | |
| if (reader.pos >= max) return false; | |
| return reader.peek() !== comma; | |
| } | |