UNPKG

els-addon-typed-templates

Version:
139 lines (122 loc) 4.79 kB
import EmberArray from '@ember/array'; declare module "@glimmer/component" { type UnknownConfig = Record<string, unknown>; export default class Component<Args extends UnknownConfig = {}> extends BaseComponent< Args > { constructor(owner: unknown, args: Args) { super(...arguments); this.args = args; } args: Args; willDestroy: () => void; toString: () => string; } } declare module "@ember/component" { type UnknownConfig = Record<string, unknown>; export function setComponentTemplate<T, U>(Template: T, Klass: U): U; export default class Component<Args extends UnknownConfig = { }> extends BaseComponent< Args > { constructor(owner: unknown, args: Args = { }) { super(...arguments); this.args = args; } static extend(args) { return class ExtendedComponent extends Component<typeof args> { } } args: Args; willDestroy: () => void; toString: () => string; } } declare module "@ember/component/helper" { export function helper<T>(Helper: T): T; export default class Helper extends Function { }; } declare module "@ember/modifier" { export function setModifierManager<T, U>(Manager: T, Modifier: U): U; } declare module "ember-modifier" { export function modifier<T>(Modifier: T): T; export default class Modifier extends Function { }; } declare module "ember-typed-templates" { type PropType<TObj, TProp extends keyof TObj> = TObj[TProp]; type Unpromisify<T> = T extends PromiseLike<infer R> ? R : T; type YieldHelper = <A, B, C, D, E>( items?: [A?, B?, C?, D?, E?], hash?: { to?: string } ) => [A, B, C, D, E]; type EachHelper = <T extends any, A extends ArrayLike<T> | EmberArray<T>>([items]: [A], hash?) => [T, number]; type EachInHelper = <T extends object, A extends keyof T>([items]: [T]) => [A,PropType<T, A>]; type LetHelper = <A, B, C, D, E>( items: [A, B?, C?, D?, E?], hash? ) => [A, B, C, D, E]; type AbstractHelper = <T>([items]: T[], hash?) => T; export type AbstractBlockHelper = <T>([items]: ArrayLike<T>[], hash?) => [T]; type HashHelper = <T>(items: any[], hash: T) => T; type ArrayHelper = <T>(items?: ArrayLike<T>, hash?) => ArrayLike<T>; type AnyFn = (...args) => any; type OnModifer = ([event, handler]: [string, Function], hash?) => void; type FnHelper = AnyFn; type ConcatHelper = (...args: any[]) => string; type AndHelper = <A, B, C, D, E>(items: [A, B, C?, D?, E?]) => boolean; type EventCatcherHelper = <A, B, C, D, E>( items?: [A?, B?, C?, D?, E?] ) => AnyFn; // ember-async-await-helper type AsyncAwaitHelper = <T>( params: [T], hash?: { onReject: ((reason: any) => void) | null } ) => [Unpromisify<T>] function TIfHeper<T, U, Y>([a, b, c]: [T, U?, Y?], hash?) { return !!a ? b : c; } function TUnlessHeper<T, U, Y>([a, b, c]: [T, U?, Y?], hash?) { return !TIfHeper(a,b,c, hash); } export interface GlobalRegistry { ["each"]: EachHelper; ["each-in"]: EachInHelper; ["let"]: LetHelper; ["hash"]: HashHelper; ["array"]: ArrayHelper; ["if"]: typeof TIfHeper; ["unless"]: typeof TUnlessHeper; ["on"]: OnModifer; ["fn"]: FnHelper; ["has-block"]: YieldHelper; ["yield"]: YieldHelper; ["outlet"]: YieldHelper; ["concat"]: ConcatHelper; ["prevent-default"]: EventCatcherHelper; ["toggle"]: <T>(props: [keyof T, T]) => Function; ["includes"]: <T>(props: [T, T[]]) => boolean; ["chunk"]: <T>(props: [T[], number]) => Array<T[]>; ["sort-by"]: <T>(props: [...string, T]) => T; ["filter-by"]: <T, K extends keyof T, B extends PropType<T, K>>(props: [K, B, T[]]) => T[]; ["drop"]: <T>(props: [number, T[]]) => T[]; ["take"]: <T>(props: [number, T[]]) => T[]; ["get"]: <T, K extends keyof T>(props: [K, T]) => T[K]; ["eq"]: (props: [any, any]) => boolean; ["gt"]: (props: [number, number]) => boolean; ["gte"]: (props: [number, number]) => boolean; ["lt"]: (props: [number, number]) => boolean; ["lte"]: (props: [number, number]) => boolean; ["optional"]: (props: [ Function | undefined | void | false ]) => Function; ["stop-propagation"]: EventCatcherHelper; ["lazy-mount"]: (params?, hash?) => [{ isLoading: boolean; error: any }]; ["v-get"]: ([ctx, prop, propTwo]: [any, any, any?], hash?) => any; ["did-insert"]: (params: [ Function, ...any], hash?: any) => void; ["did-update"]: (params: [ Function, ...any], hash?: any) => void; ["will-destroy"]: (params: [ Function, ...any], hash?: any) => void; ["and"]: AndHelper; ["async-await"]: AsyncAwaitHelper; } }