Skip to content

return native promises from LootAsync and derive its declaration from Loot - #39

Merged
IDCs merged 1 commit into
masterfrom
task/laz-1068
Sep 28, 2026
Merged

IDCs merged 1 commit into
masterfrom
task/laz-1068

Conversation

@IDCs

@IDCs IDCs commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

LootAsync.create, restart and every worker call return native promises and take no callback (breaking, 7.0.0). The proxies come from the native Loot prototype, so a proxy exists exactly for each native method. index.d.ts derives LootAsync from the Loot declaration, which matches the binding: optional results and flags, the payload fields libloot sends, no masterlist members. The errors a call rejects with are exported and declared, and LogLevel is declared as the plain object it is.

An optional parameter passed as null or undefined keeps its default and a required one is rejected. A PluginNotLoaded without the loaded plugins can be built, and a late init answer after a failed start is ignored.

part of LAZ-1068

LootAsync.create, restart and every worker call return native promises
and take no callback (breaking, 7.0.0). The proxies come from the native
Loot prototype, so a proxy exists exactly for each native method.
index.d.ts derives LootAsync from the Loot declaration, which matches the
binding: optional results and flags, the payload fields libloot sends, no
masterlist members. The errors a call rejects with are exported and
declared, and LogLevel is declared as the plain object it is.

An optional parameter passed as null or undefined keeps its default and a
required one is rejected. A PluginNotLoaded without the loaded plugins
can be built, and a late init answer after a failed start is ignored.

part of LAZ-1068
@IDCs IDCs changed the title return promises from LootAsync and derive its declaration from Loot return native promises from LootAsync and derive its declaration from Loot Sep 28, 2026
@IDCs IDCs self-assigned this Sep 28, 2026
@IDCs
IDCs requested a review from a team September 28, 2026 10:21
@IDCs
IDCs merged commit ef39d71 into master Sep 28, 2026
6 checks passed
IDCs added a commit to Nexus-Mods/Vortex that referenced this pull request Sep 30, 2026
autosort calls LootAsync's native promises directly instead of
Bluebird.promisifyAll wrappers. The loot instance, the test fake and
metadataLists take their types from node-loot's declaration instead of a
hand-kept mirror, and the synthetic "no LOOT metadata" message carries its
text in the content shape libloot sends.

loot is pinned to a21cad7 until Nexus-Mods/node-loot#39 merges.

part of LAZ-1068
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants