Archived
1
0

Add evaluate

This commit is contained in:
Kyle Carberry
2019-01-11 13:33:44 -06:00
parent 32294a5b1b
commit cff746db32
23 changed files with 5257 additions and 2 deletions

View File

@ -0,0 +1,39 @@
import { createClient } from "./helpers";
describe("Evaluate", () => {
const client = createClient();
it("should transfer string", async () => {
const value = await client.evaluate(function () {
return "hi";
});
expect(value).toEqual("hi");
}, 100);
it("should compute from object", async () => {
const value = await client.evaluate((arg) => {
return arg.bananas * 2;
}, { bananas: 1 });
expect(value).toEqual(2);
}, 100);
it("should transfer object", async () => {
const value = await client.evaluate(() => {
return { alpha: "beta" };
});
expect(value.alpha).toEqual("beta");
}, 100);
it("should require", async () => {
const value = await client.evaluate(() => {
const fs = require("fs") as typeof import("fs");
return Object.keys(fs).filter((f) => f === "readFileSync");
});
expect(value[0]).toEqual("readFileSync");
}, 100);
});

View File

@ -0,0 +1,28 @@
import { Emitter } from "@coder/events";
import { Client } from "../src/browser/client";
import { Server } from "../src/node/server";
export const createClient = (): Client => {
const s2c = new Emitter<Uint8Array | Buffer>();
const c2s = new Emitter<Uint8Array | Buffer>();
new Server({
close: () => undefined,
onClose: () => undefined,
onMessage: (cb) => {
c2s.event((d) => cb(d));
},
send: (data) => setTimeout(() => s2c.emit(data), 0),
});
const client = new Client({
close: () => undefined,
onClose: () => undefined,
onMessage: (cb) => {
s2c.event((d) => cb(d));
},
send: (data) => setTimeout(() => c2s.emit(data), 0),
});
return client;
};