@ngrx/signals
Version:
Reactive Store and Set of Utilities for Angular Signals
34 lines (33 loc) • 1.02 kB
TypeScript
import { Prettify } from '@ngrx/signals';
import { EventCreator } from './event-creator';
type EventType<Source extends string, EventName extends string> = `[${Source}] ${EventName}`;
type EventCreatorGroup<Source extends string, Events extends Record<string, any>> = {
[EventName in keyof Events]: EventName extends string ? EventCreator<EventType<Source, EventName>, Events[EventName]> : never;
};
/**
* @experimental
* @description
*
* Creates a group of event creators.
*
* @usageNotes
*
* ```ts
* import { type } from '@ngrx/signals';
* import { eventGroup } from '@ngrx/signals/events';
*
* const counterPageEvents = eventGroup({
* source: 'Counter Page',
* events: {
* increment: type<void>(),
* decrement: type<void>(),
* set: type<number>(),
* },
* });
* ```
*/
export declare function eventGroup<Source extends string, Events extends Record<string, unknown>>(config: {
source: Source;
events: Events;
}): Prettify<EventCreatorGroup<Source, Events>>;
export {};