aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts')
-rw-r--r--vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts65
1 files changed, 65 insertions, 0 deletions
diff --git a/vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts b/vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
new file mode 100644
index 0000000..d161965
--- /dev/null
+++ b/vanilla/node_modules/@jridgewell/sourcemap-codec/src/strings.ts
@@ -0,0 +1,65 @@
+const bufLength = 1024 * 16;
+
+// Provide a fallback for older environments.
+const td =
+ typeof TextDecoder !== 'undefined'
+ ? /* #__PURE__ */ new TextDecoder()
+ : typeof Buffer !== 'undefined'
+ ? {
+ decode(buf: Uint8Array): string {
+ const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
+ return out.toString();
+ },
+ }
+ : {
+ decode(buf: Uint8Array): string {
+ let out = '';
+ for (let i = 0; i < buf.length; i++) {
+ out += String.fromCharCode(buf[i]);
+ }
+ return out;
+ },
+ };
+
+export class StringWriter {
+ pos = 0;
+ private out = '';
+ private buffer = new Uint8Array(bufLength);
+
+ write(v: number): void {
+ const { buffer } = this;
+ buffer[this.pos++] = v;
+ if (this.pos === bufLength) {
+ this.out += td.decode(buffer);
+ this.pos = 0;
+ }
+ }
+
+ flush(): string {
+ const { buffer, out, pos } = this;
+ return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;
+ }
+}
+
+export class StringReader {
+ pos = 0;
+ declare private buffer: string;
+
+ constructor(buffer: string) {
+ this.buffer = buffer;
+ }
+
+ next(): number {
+ return this.buffer.charCodeAt(this.pos++);
+ }
+
+ peek(): number {
+ return this.buffer.charCodeAt(this.pos);
+ }
+
+ indexOf(char: string): number {
+ const { buffer, pos } = this;
+ const idx = buffer.indexOf(char, pos);
+ return idx === -1 ? buffer.length : idx;
+ }
+}