Skip to content

Commit b6bee95

Browse files
committed
fix unwriteable internal fields
1 parent e69621a commit b6bee95

2 files changed

Lines changed: 21 additions & 15 deletions

File tree

packages/worker-task-queue/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "worker-task-queue",
3-
"version": "0.1.0",
3+
"version": "0.2.1",
44
"description": "Streamlined processing of tasks in a shared threadpool.",
55
"exports": {
66
"./processor": {

packages/worker-task-queue/src/index.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@
1111
* limitations under the License.
1212
*/
1313

14-
interface TaskQueueOptions {
14+
interface TaskQueueOptions extends WorkerOptions {
1515
size?: number;
16-
worker?: WorkerOptions;
1716
}
1817

1918
type TaskId = number;
@@ -36,13 +35,14 @@ type TaskResultDesc = [TaskId, Status, any?];
3635
// postTask<T>(taskName: string, ...args: any[]): Task<T>;
3736
// }
3837

39-
export default class WorkerTaskQueue {
40-
/** @private */
41-
$$pool!: TaskQueuePool;
38+
interface WorkerTaskQueue {
39+
$$pool: TaskQueuePool;
40+
}
4241

42+
class WorkerTaskQueue {
4343
constructor(workerUrl: string, options?: TaskQueueOptions) {
4444
const size = (options && Number(options.size)) || 1;
45-
const pool = new TaskQueuePool(size, workerUrl, options && options.worker);
45+
const pool = new TaskQueuePool(size, workerUrl, options);
4646
prop(this, '$$pool', pool);
4747
}
4848

@@ -59,6 +59,8 @@ export default class WorkerTaskQueue {
5959
}
6060
}
6161

62+
export default WorkerTaskQueue;
63+
6264
// export default WorkerTaskQueue;
6365

6466
// All IDs are generated by incrementing a shared counter
@@ -112,15 +114,17 @@ interface ResultController<T = any> extends PromiseController {
112114
result: Promise<T>;
113115
}
114116

115-
class TaskQueuePool {
117+
interface TaskQueuePool {
116118
poolSize: number;
117119
workerUrl: string;
118120
workerOptions?: WorkerOptions;
119121
workers: TaskWorker[];
120122
tasks: Record<number, Task<any>>;
121123
results: Record<number, ResultController>;
122124
workerTaskAssignments: Record<TaskId, WorkerId>;
125+
}
123126

127+
class TaskQueuePool {
124128
constructor(
125129
poolSize: number,
126130
workerUrl: string,
@@ -399,15 +403,17 @@ class TaskQueuePool {
399403
}
400404
}
401405

402-
class Task<T> {
403-
id!: number;
404-
state!: string;
405-
result!: T;
406+
interface Task<T> {
407+
id: number;
408+
state: string;
409+
result: T;
406410

407-
private $$taskIdentifier!: string;
408-
private $$result!: Promise<T>;
409-
private $$queue!: WorkerTaskQueue;
411+
$$taskIdentifier: string;
412+
$$result: Promise<T>;
413+
$$queue: WorkerTaskQueue;
414+
}
410415

416+
class Task<T> {
411417
cancel() {
412418
this.$$queue.$$pool.cancel(this.id);
413419
}

0 commit comments

Comments
 (0)