lua-in-js-libloader
A nodejs library wrapper for lua-in-js.
This is a little project of mine, which allows you to refrence nodejs functions in lua using lua-in-js by teoxoy.
It currently supports:
Installation
npm i lua-libloader
Example
Heres an example on how to use it using os.platform():
var lua = require("lua-in-js")
var path = require("path");
var fs = require("fs");
var LibLoader = require("lua-libloader");
var luaEnv = lua.createEnv({
LUA_PATH:__dirname,
fileExists: p => fs.existsSync(path.join(__dirname, p)),
loadFile: p => fs.readFileSync(path.join(__dirname, p), { encoding: 'utf8' }),
osExit: code => (exitCode += code),
})
luaEnv.loadLib("libloader",LibLoader([
"os.platform"
]))
var out = luaEnv.parse(`
local os = libloader.load("os")
local platform = os.platform()
libloader.clear()
return platform
`).exec();
console.log(out);
Here is an example using a Promise:
var lua = require("lua-in-js")
var path = require("path");
var fs = require("fs");
var LibLoader = require("lua-libloader");
function sleep(ms) {
return new Promise((res,rej)=>{
setTimeout(res,ms);
})
}
var luaEnv = lua.createEnv({
LUA_PATH:__dirname,
fileExists: p => fs.existsSync(path.join(__dirname, p)),
loadFile: p => fs.readFileSync(path.join(__dirname, p), { encoding: 'utf8' }),
osExit: code => (exitCode += code),
})
luaEnv.loadLib("time",LibLoader.ObjectToTable({now:Date.now}))
luaEnv.loadLib("wait",LibLoader.ObjectToTable({sleep}))
var out = luaEnv.parse(`
local timestart = time.now();
wait.sleep(1000);
return time.now() - timestart;
`).exec()
console.log(out);