2020-03-09 10:18:02 -04:00
|
|
|
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
|
2020-07-06 21:45:39 -04:00
|
|
|
|
2020-03-09 10:18:02 -04:00
|
|
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
|
|
import { sendAsync, sendSync } from "./dispatch_json.ts";
|
|
|
|
|
2020-07-06 21:45:39 -04:00
|
|
|
interface CreateWorkerResponse {
|
|
|
|
id: number;
|
|
|
|
}
|
|
|
|
|
2020-03-09 10:18:02 -04:00
|
|
|
export function createWorker(
|
|
|
|
specifier: string,
|
|
|
|
hasSourceCode: boolean,
|
|
|
|
sourceCode: string,
|
2020-04-16 17:40:29 -04:00
|
|
|
useDenoNamespace: boolean,
|
2020-07-14 15:24:17 -04:00
|
|
|
name?: string,
|
2020-07-06 21:45:39 -04:00
|
|
|
): CreateWorkerResponse {
|
2020-03-09 10:18:02 -04:00
|
|
|
return sendSync("op_create_worker", {
|
|
|
|
specifier,
|
|
|
|
hasSourceCode,
|
|
|
|
sourceCode,
|
2020-03-28 13:03:49 -04:00
|
|
|
name,
|
2020-04-16 17:40:29 -04:00
|
|
|
useDenoNamespace,
|
2020-03-09 10:18:02 -04:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export function hostTerminateWorker(id: number): void {
|
|
|
|
sendSync("op_host_terminate_worker", { id });
|
|
|
|
}
|
|
|
|
|
|
|
|
export function hostPostMessage(id: number, data: Uint8Array): void {
|
|
|
|
sendSync("op_host_post_message", { id }, data);
|
|
|
|
}
|
|
|
|
|
2020-03-20 09:38:34 -04:00
|
|
|
export function hostGetMessage(id: number): Promise<any> {
|
2020-03-16 05:22:16 -04:00
|
|
|
return sendAsync("op_host_get_message", { id });
|
2020-03-09 10:18:02 -04:00
|
|
|
}
|