mirror of
https://github.com/denoland/deno.git
synced 2025-07-24 05:35:33 +00:00
parent
5bfe3eb8f4
commit
260084ccbf
2 changed files with 26 additions and 3 deletions
|
@ -1,5 +1,6 @@
|
|||
import { openPlugin as openPluginOp } from "./ops/plugins.ts";
|
||||
import { core } from "./core.ts";
|
||||
import { close } from "./ops/resources.ts";
|
||||
|
||||
export interface AsyncHandler {
|
||||
(msg: Uint8Array): void;
|
||||
|
@ -32,18 +33,17 @@ class PluginOpImpl implements PluginOp {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO(afinch7): add close method.
|
||||
|
||||
interface Plugin {
|
||||
ops: {
|
||||
[name: string]: PluginOp;
|
||||
};
|
||||
close(): void;
|
||||
}
|
||||
|
||||
class PluginImpl implements Plugin {
|
||||
#ops: { [name: string]: PluginOp } = {};
|
||||
|
||||
constructor(_rid: number, ops: { [name: string]: number }) {
|
||||
constructor(readonly rid: number, ops: { [name: string]: number }) {
|
||||
for (const op in ops) {
|
||||
this.#ops[op] = new PluginOpImpl(ops[op]);
|
||||
}
|
||||
|
@ -52,6 +52,10 @@ class PluginImpl implements Plugin {
|
|||
get ops(): { [name: string]: PluginOp } {
|
||||
return Object.assign({}, this.#ops);
|
||||
}
|
||||
|
||||
close(): void {
|
||||
close(this.rid);
|
||||
}
|
||||
}
|
||||
|
||||
export function openPlugin(filename: string): Plugin {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue