Skip to content

Commit 0a2853a

Browse files
committed
Fix js require and promises
1 parent e2a061a commit 0a2853a

File tree

4 files changed

+16
-8
lines changed

4 files changed

+16
-8
lines changed

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "demoon",
3-
"version": "0.0.5",
3+
"version": "0.0.6",
44
"description": "Lua + Node",
55
"main": "src/index.js",
66
"bin": {

src/index.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@ const start = async (entryFile) => {
1919
engine.global.set('global', global)
2020
engine.global.set('mountFile', factory.mountFileSync.bind(factory))
2121
engine.global.set('jsRequire', (modulename, metaDirectory) => {
22-
if (modulename.startsWith('.')) {
23-
modulename = path.resolve(metaDirectory, '..', modulename)
22+
if (metaDirectory) {
23+
if (modulename.startsWith('.')) {
24+
modulename = path.resolve(metaDirectory, '..', modulename)
25+
}
26+
27+
modulename = require.resolve(modulename, { paths: [fullEntryFile] })
2428
}
2529

26-
return module.require(modulename);
30+
return module.require(modulename)
2731
})
2832

2933
try {

src/std.lua

+6-2
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,26 @@ function async(callback)
88
local safe, result = coroutine.resume(co, ...)
99

1010
return Promise.create(function(resolve, reject)
11-
local function step()
11+
local checkresult
12+
local step = function()
1213
if coroutine.status(co) == "dead" then
1314
local send = safe and resolve or reject
1415
return send(result)
1516
end
1617

1718
safe, result = coroutine.resume(co)
19+
checkresult()
20+
end
1821

22+
checkresult = function()
1923
if safe and result == Promise.resolve(result) then
2024
result:finally(step)
2125
else
2226
step()
2327
end
2428
end
2529

26-
result:finally(step)
30+
checkresult()
2731
end)
2832
end
2933
end

0 commit comments

Comments
 (0)