fix(invariants): harden runtime contracts and gates

This commit is contained in:
Tianyi Cui
2026-07-21 00:25:38 +08:00
parent a4be4b5e52
commit 0c08e34a4a
27 changed files with 288 additions and 111 deletions
+17 -16
View File
@@ -162,27 +162,28 @@ export class InvariantService extends Service {
throw new InvariantError(packageName, message)
})
)
const child = ctx.plugin(installer.inject === undefined
? installInvariant
: Object.assign(installInvariant, { inject: installer.inject }))
try {
await child
} catch (error) {
try {
await child.dispose()
} finally {
registrations.delete(packageName)
}
throw error
}
const child = ctx.plugin(installer.inject === undefined
? installInvariant
: Object.assign(installInvariant, { inject: installer.inject }))
return async () => {
try {
await child
} catch (error) {
await child.dispose()
} finally {
registrations.delete(packageName)
throw error
}
return async () => {
try {
await child.dispose()
} finally {
registrations.delete(packageName)
}
}
} catch (error) {
registrations.delete(packageName)
throw error
}
}, `invariants.register(${JSON.stringify(packageName)})`)
} catch (error) {