internal: Add lints for promises (#3733)
* Add lints for floating and misued promises * Add logging async errors in main * Add async error catch in test-utils * Change any to unknown * Trap promise errors and ignore more await warnings * Add more ignores and toSync helper * Fix more lint warnings * Add more ignores and fixes * Add more reject reporting * Add accepting arbitrary parameters to toSync() * Fix more lints * Revert unintentional change to non-arrow function * Revert unintentional change to use arrow function * Fix new warnings in main with auto updater * Fix formatting * Change lints to error This is what the recommended type checked rules do. * Fix to properly report promise rejections * Fix formatting * Fix formatting * Remove unused import * Remove unused convenience function * Move type helpers * Fix to not return promise when caller doesn't expect it * Add ignores to lsp code
This commit is contained in:
@ -98,3 +98,18 @@ export function isEnumMember<T extends Record<string, unknown>>(
|
||||
export type DeepPartial<T> = {
|
||||
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P]
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace a function's return type with another type.
|
||||
*/
|
||||
export type WithReturnType<F extends (...args: any[]) => any, NewReturn> = (
|
||||
...args: Parameters<F>
|
||||
) => NewReturn
|
||||
|
||||
/**
|
||||
* Assert that a function type is async, preserving its parameter types.
|
||||
*/
|
||||
export type AsyncFn<F extends (...args: any[]) => any> = WithReturnType<
|
||||
F,
|
||||
Promise<unknown>
|
||||
>
|
||||
|
Reference in New Issue
Block a user