Skip to content

Commit 0c028f3

Browse files
committed
Hide types of internal symbols
1 parent ab6a2df commit 0c028f3

File tree

9 files changed

+58
-8
lines changed

9 files changed

+58
-8
lines changed

scripts/build.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ const compilerOptions: ts.CompilerOptions = {
116116
lib: ["lib.esnext.d.ts", "lib.dom.d.ts", "lib.webworker.d.ts"],
117117
skipLibCheck: true,
118118
allowImportingTsExtensions: true,
119+
stripInternal: true,
119120
};
120121

121122
const host = ts.createCompilerHost(compilerOptions);

src/lib/json_buffer.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77

88
export type Proxyable = Record<string | symbol, any> | any[];
99

10-
const CONSOLE_VIEW = Symbol.for("SharedJsonBuffer.consoleView");
10+
const CONSOLE_VIEW = Symbol("SharedJsonBuffer.consoleView");
1111

1212
const OFFSET_FREE_PTR = 0;
1313
const OFFSET_ROOT = 8; // 8-byte aligned
@@ -1332,6 +1332,9 @@ class SharedJsonBufferImpl<T extends Proxyable> extends Serializable {
13321332
}
13331333
}
13341334

1335+
/**
1336+
* @internal
1337+
*/
13351338
[toSerialized]() {
13361339
return {
13371340
value: this.buffer,
@@ -1340,6 +1343,9 @@ class SharedJsonBufferImpl<T extends Proxyable> extends Serializable {
13401343
};
13411344
}
13421345

1346+
/**
1347+
* @internal
1348+
*/
13431349
static override [toDeserialized](
13441350
data: ReturnType<
13451351
SharedJsonBufferImpl<any>[typeof toSerialized]

src/lib/lib.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function getPool(): WorkerPool {
2727
* A branded type that ensures the array has been explicitly marked
2828
* by the move() function.
2929
*/
30-
const moveTag = Symbol.for("Thread.move");
30+
const moveTag = Symbol("Thread.move");
3131
export type MovedData<T extends any[]> = T & { readonly [moveTag]: true };
3232

3333
export function move<Args extends any[]>(...args: Args): MovedData<Args> {

src/lib/shared.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Envelope } from "./types.ts";
22

3-
export const toSerialized = Symbol.for("Thread.Serialize");
4-
export const toDeserialized = Symbol.for("Thread.Deserialize");
3+
export const toSerialized = Symbol("Thread.Serialize");
4+
export const toDeserialized = Symbol("Thread.Deserialize");
55

66
export const enum PayloadType {
77
RAW = 0, // User data (Numbers, Strings, Plain Objects)

src/lib/sync/condvar.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,19 @@ export class Condvar extends Serializable {
7070
Atomics.notify(this.#atomic, 0, Infinity);
7171
}
7272

73+
/**
74+
* @internal
75+
*/
7376
[toSerialized]() {
7477
return {
7578
value: this.#atomic.buffer,
7679
transfer: [],
7780
};
7881
}
7982

83+
/**
84+
* @internal
85+
*/
8086
static override [toDeserialized](
8187
obj: ReturnType<Condvar[typeof toSerialized]>["value"],
8288
) {

src/lib/sync/mpmc.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ class ChannelInternals<T> extends Serializable {
3737
super();
3838
}
3939

40+
/**
41+
* @internal
42+
*/
4043
[toSerialized]() {
4144
const itemsSer = serialize(this.items);
4245
const sendLockSer = serialize(this.sendLock);
@@ -205,6 +208,9 @@ export class Sender<T> extends Serializable implements Disposable {
205208
this.disposed = true;
206209
}
207210

211+
/**
212+
* @internal
213+
*/
208214
[toSerialized]() {
209215
if (this.disposed) {
210216
throw new Error("Cannot move a disposed Sender");
@@ -215,6 +221,9 @@ export class Sender<T> extends Serializable implements Disposable {
215221
return serialize(this.internals);
216222
}
217223

224+
/**
225+
* @internal
226+
*/
218227
static override [toDeserialized](
219228
obj: ReturnType<Sender<any>[typeof toSerialized]>["value"],
220229
) {
@@ -359,6 +368,9 @@ export class Receiver<T> extends Serializable implements Disposable {
359368
}
360369
}
361370

371+
/**
372+
* @internal
373+
*/
362374
[toSerialized]() {
363375
if (this.disposed) {
364376
throw new Error("Cannot move a disposed Receiver");
@@ -371,6 +383,9 @@ export class Receiver<T> extends Serializable implements Disposable {
371383
return serialize(this.internals);
372384
}
373385

386+
/**
387+
* @internal
388+
*/
374389
static override [toDeserialized](
375390
obj: ReturnType<Receiver<any>[typeof toSerialized]>["value"],
376391
) {

src/lib/sync/mutex.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,11 @@ export class MutexGuard<T extends SharedMemoryView | void>
2525
implements Disposable {
2626
#data: T;
2727
#released = false;
28-
[INTERNAL_MUTEX_CONTROLLER]!: MutexController;
29-
3028
/**
3129
* @internal
32-
* We pass the controller here, but we don't store it in a public field.
33-
* We attach it using defineProperty.
3430
*/
31+
[INTERNAL_MUTEX_CONTROLLER]!: MutexController;
32+
3533
constructor(data: T, controller: MutexController) {
3634
this.#data = data;
3735
this.#released = false;
@@ -136,6 +134,9 @@ export class Mutex<T extends SharedMemoryView | void = void>
136134
return new MutexGuard(this.#data, this.#createController());
137135
}
138136

137+
/**
138+
* @internal
139+
*/
139140
[toSerialized]() {
140141
let serializedData;
141142
let transfer: Transferable[] = [];
@@ -155,6 +156,9 @@ export class Mutex<T extends SharedMemoryView | void = void>
155156
};
156157
}
157158

159+
/**
160+
* @internal
161+
*/
158162
static override [toDeserialized](
159163
obj: ReturnType<Mutex<any>[typeof toSerialized]>["value"],
160164
) {

src/lib/sync/rwlock.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ export class RwLockReadGuard<T extends SharedMemoryView | void>
2929
implements Disposable {
3030
#data: T;
3131
#released = false;
32+
/**
33+
* @internal
34+
*/
3235
[INTERNAL_RWLOCK_CONTROLLER]!: RwLockController;
3336

3437
constructor(data: T, controller: RwLockController) {
@@ -248,6 +251,9 @@ export class RwLock<T extends SharedMemoryView | void = void>
248251
}
249252
}
250253

254+
/**
255+
* @internal
256+
*/
251257
[toSerialized]() {
252258
let serializedData;
253259
let transfer: Transferable[] = [];
@@ -267,6 +273,9 @@ export class RwLock<T extends SharedMemoryView | void = void>
267273
};
268274
}
269275

276+
/**
277+
* @internal
278+
*/
270279
static override [toDeserialized](
271280
obj: ReturnType<RwLock<any>[typeof toSerialized]>["value"],
272281
) {

src/lib/sync/semaphore.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ export class Semaphore extends Serializable {
6565
* [1]: waiters (The number of threads currently waiting)
6666
*/
6767
#state: Int32Array<SharedArrayBuffer>;
68+
/**
69+
* @internal
70+
*/
6871
[INTERNAL_SEMAPHORE_CONTROLLER]!: SemaphoreController;
6972

7073
constructor(initialCount: number, _buffer?: SharedArrayBuffer) {
@@ -175,13 +178,19 @@ export class Semaphore extends Serializable {
175178
}
176179
}
177180

181+
/**
182+
* @internal
183+
*/
178184
[toSerialized]() {
179185
return {
180186
value: this.#state.buffer,
181187
transfer: [],
182188
};
183189
}
184190

191+
/**
192+
* @internal
193+
*/
185194
static override [toDeserialized](buffer: SharedArrayBuffer) {
186195
return new Semaphore(0, buffer);
187196
}

0 commit comments

Comments
 (0)