@glimmer/interfaces
Version:
Common interfaces shared among all @glimmer/\* projects
34 lines (26 loc) • 895 B
TypeScript
import type { Arguments } from '../runtime.js';
import type { Capabilities } from './capabilities.js';
export interface HelperCapabilitiesVersions {
'3.23': {
hasValue?: boolean;
hasDestroyable?: boolean;
};
}
export interface HelperCapabilities extends Capabilities {
hasValue: boolean;
hasDestroyable: boolean;
hasScheduledEffect: boolean;
}
export interface HelperManager<HelperStateBucket> {
capabilities: HelperCapabilities;
createHelper(definition: object, args: Arguments): HelperStateBucket;
getDebugName?(definition: object): string;
}
export interface HelperManagerWithValue<HelperStateBucket>
extends HelperManager<HelperStateBucket> {
getValue(bucket: HelperStateBucket): unknown;
}
export interface HelperManagerWithDestroyable<HelperStateBucket>
extends HelperManager<HelperStateBucket> {
getDestroyable(bucket: HelperStateBucket): object;
}