Skip to content

Commit

Permalink
feat: two-way deno bindings with support for external.invoke
Browse files Browse the repository at this point in the history
  • Loading branch information
eliassjogreen committed Dec 2, 2020
1 parent 0a9b842 commit 050332f
Show file tree
Hide file tree
Showing 6 changed files with 175 additions and 64 deletions.
4 changes: 4 additions & 0 deletions denon.json
Expand Up @@ -28,6 +28,10 @@
"cmd": "deno run scripts/dev.ts examples/remote.ts",
"desc": "run `remote` example"
},
"dev:server": {
"cmd": "deno run scripts/dev.ts examples/server.ts",
"desc": "run `server` example"
},
"dev:user_agent": {
"cmd": "deno run scripts/dev.ts examples/user_agent.ts",
"desc": "run `user_agent` example"
Expand Down
3 changes: 2 additions & 1 deletion deps.ts
@@ -1,2 +1,3 @@
export { Plug } from "https://deno.land/x/plug@0.2.6/mod.ts";
export { deferred } from "https://deno.land/std@0.79.0/async/mod.ts";
export type { Deferred } from "https://deno.land/std@0.79.0/async/mod.ts";
export { Plug } from "https://deno.land/x/plug@0.2.6/mod.ts";
28 changes: 28 additions & 0 deletions examples/external.ts
@@ -0,0 +1,28 @@
import { Webview } from "../mod.ts";

const html = `
<html>
<body>
<button onclick="external.invoke('A')">A</button>
<button onclick="external.invoke('B')">B</button>
<button onclick="external.invoke('C')">C</button>
</body>
</html>
`;

const webview = new Webview(
{ url: `data:text/html,${encodeURIComponent(html)}` },
);

const interval = setInterval(() => {
const success = webview.loop();
const events = webview.step();

if (events.length > 0) {
console.log(events);
}

if (!success) {
clearInterval(interval);
}
}, 1000 / 60);
14 changes: 14 additions & 0 deletions examples/server.ts
@@ -0,0 +1,14 @@
import { serve } from "https://deno.land/std@0.79.0/http/mod.ts";
import { Webview } from "../mod.ts";

const webview = new Webview(
{ url: `http://localhost:8080` },
);
const promise = webview.run();

const server = serve({ port: 8080 });
for await (const req of server) {
req.respond({ body: "Hello World" });
}

await promise;

0 comments on commit 050332f

Please sign in to comment.