Skip to content

Commit e2bacf6

Browse files
committed
Commit
1 parent 7e20eee commit e2bacf6

File tree

8 files changed

+16
-8
lines changed

8 files changed

+16
-8
lines changed

node-serialization-api/deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"name": "@workers/node-serialization-api",
3-
"version": "0.1.9",
3+
"version": "0.1.10",
44
"exports": "./v8.ts"
55
}

node-serialization-api/node-serdes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Buffer } from 'node:buffer';
2-
import { ValueSerializer, type ValueSerializerDelegate, ValueDeserializer, type ValueDeserializerDelegate } from "jsr:@workers/v8-value-serializer-core@^0.1.9";
2+
import { ValueSerializer, type ValueSerializerDelegate, ValueDeserializer, type ValueDeserializerDelegate } from "jsr:@workers/v8-value-serializer-core@^0.1.10";
33

44
// This file has no direct C++ equivalent, it's a mishmash of the following files,
55
// with the goal of making node's v8 module (v8.js) work without modification.

v8-value-serializer-core/deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@workers/v8-value-serializer-core",
3-
"version": "0.1.9",
3+
"version": "0.1.10",
44
"exports": "./v8-value-serializer.ts",
55
"publish": {
66
"exclude": [

v8-value-serializer-core/v8-value-serializer.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -669,6 +669,14 @@ export class ValueSerializer {
669669
private te = new TextEncoder();
670670
private forceUtf8 = false;
671671

672+
private encodeInto: (chunk: string, dest: Uint8Array) => { read: number, written: number } = 'encodeInto' in TextEncoder.prototype
673+
? (chunk, dest) => this.te.encodeInto(chunk, dest)
674+
: (chunk, dest) => {
675+
const encoded = (this.te as TextEncoder).encode(chunk);
676+
dest.set(encoded);
677+
return { read: chunk.length, written: encoded.length };
678+
}
679+
672680
private writeString(str: string): boolean {
673681
// Older versions of the protocol supported UTF-8 strings. It was likely removed because it breaks certain WTF-16 strings,
674682
// or because it's faster for V8 to dump its internal string representation.
@@ -702,7 +710,7 @@ export class ValueSerializer {
702710
const currentChunk = str.substring(offset, offset + currentChunkSize);
703711

704712
const dest = this.reserveRawBytes(currentChunk.length);
705-
const { read, written } = this.te.encodeInto(currentChunk, dest);
713+
const { read, written } = this.encodeInto(currentChunk, dest);
706714
if (written !== currentChunk.length || read !== written) {
707715
// It wasn't ASCII, bailing out.
708716
// Note that this also bails on latin-1 strings, which would still be encoded as one-byte in V8, but whatever.

v8-value-serializer/deno.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@workers/v8-value-serializer",
3-
"version": "0.3.6",
3+
"version": "0.3.7",
44
"exports": "./index.ts",
55
"publish": {
66
"exclude": [

v8-value-serializer/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { serialize, deserialize } from "./index.ts";
22
import { assertEquals } from "jsr:@std/assert";
33
import { Deserializer, Serializer } from "./serdes.ts";
4-
import { SerializationTag } from "jsr:@workers/v8-value-serializer-core@^0.1.9";
4+
import { SerializationTag } from "jsr:@workers/v8-value-serializer-core@^0.1.10";
55

66
Deno.test("serialize and deserialize ArrayBuffer", () => {
77
const o = new ArrayBuffer(8);

v8-value-serializer/serdes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
ValueDeserializerDelegate,
55
ValueSerializer,
66
ValueSerializerDelegate
7-
} from "jsr:@workers/v8-value-serializer-core@^0.1.9";
7+
} from "jsr:@workers/v8-value-serializer-core@^0.1.10";
88

99
function copy(source: Uint8Array, dest: Uint8Array, destStart: number, sourceStart: number, sourceEnd: number) {
1010
dest.set(source.subarray(sourceStart, sourceEnd), destStart);

v8-value-serializer/stream.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { assertEquals } from "jsr:@std/assert";
22
import { DeserializerStream, SerializerStream } from "./stream.ts";
33
import { Deserializer, Serializer } from "./serdes.ts";
4-
import { SerializationTag } from "jsr:@workers/v8-value-serializer-core@^0.1.9";
4+
import { SerializationTag } from "jsr:@workers/v8-value-serializer-core@^0.1.10";
55

66
Deno.test("basic stream support", async () => {
77
const stream = ReadableStream.from((async function* () {

0 commit comments

Comments
 (0)