wana
Version:
Easy observable state for React
41 lines (30 loc) • 968 B
text/typescript
export interface Disposable {
/** Release any memory that would otherwise leak */
dispose: () => void
}
export type Falsy = false | null | undefined
export const emptyArray: readonly any[] = Object.freeze([])
export const setHidden = (obj: any, key: any, value: any) =>
Object.defineProperty(obj, key, { value, configurable: true })
export function rethrowError(error: Error) {
throw error
}
export const noop = () => {}
export const nope = () => false
export const flop: any = () => {
throw Error('Not yet implemented')
}
export const hasOwn = Function.call.bind({}.hasOwnProperty) as (
obj: object,
key: keyof any
) => boolean
export const getOwnDescriptor = Object.getOwnPropertyDescriptor
export function getDescriptor(self: object, key: any) {
let desc: PropertyDescriptor | undefined
let proto = self
do {
if ((desc = getOwnDescriptor(proto, key))) {
return desc
}
} while ((proto = Object.getPrototypeOf(proto)))
}