refactor(streamingRequest): internal method for request functions

- TS package type inference for request functions.
- Type fix for Lua's waitFor callback.
- Lua request functions cannot return nil.
This commit is contained in:
Linden
2024-03-31 16:15:44 +11:00
parent e3ece4f337
commit 0f0c7a6591
10 changed files with 50 additions and 74 deletions

View File

@@ -0,0 +1,19 @@
---@async
---@package
---@generic T : string | number
---@param request function
---@param hasLoaded function
---@param assetType string
---@param asset T
---@param timeout? number
---@param ... any
---Used internally.
function lib.streamingRequest(request, hasLoaded, assetType, asset, timeout, ...)
if hasLoaded(asset) then return asset end
request(asset, ...)
return lib.waitFor(function()
if hasLoaded(asset) then return asset end
end, ("failed to load %s '%s'"):format(assetType), timeout)
end