factorio-recipes/wasmoon-test.js

26 lines
1011 B
JavaScript

const { LuaFactory } = require('wasmoon');
const main = async () => {
const luaFactory = new LuaFactory();
const lua = await luaFactory.createEngine({ enableProxy: false });
lua.global.set("data", { a: 1, b: 2 });
await lua.doString("print(11, data.a)").catch(console.error);
await lua.doString("print(12, pairs(data))").catch(console.error);
lua.global.set("getData", () => ({ a: 1, b: 2 }));
await lua.doString("data = getData()");
await lua.doString("print(21, data.a)").catch(console.error);
await lua.doString("print(22, pairs(data))").catch(console.error);
lua.global.set("data", { data: { a: 1, b: 2 } });
await lua.doString("data = data.data");
await lua.doString("print(31, data.a)").catch(console.error);
await lua.doString("print(32, pairs(data))").catch(console.error);
await lua.doString("data = { a = 1, b = 2 }");
await lua.doString("print(41, data.a)").catch(console.error);
await lua.doString("print(42, pairs(data))").catch(console.error);
};
main().catch(console.error);