UNPKG

genome.js

Version:

Genetics algorithms done right

32 lines (27 loc) 837 B
class GenomeEvent { static listeners: GenomeListener[] = []; static dispatch(eventType: GenomeEventType, data: any = {}) { GenomeEvent.listeners.map((listener: GenomeListener) => { if (listener.eventType === eventType) { listener.callback(data); } }); } static on(eventType: GenomeEventType, callback: any) { GenomeEvent.listeners.push({ eventType, callback, }); } } interface GenomeListener { eventType: GenomeEvent; callback: any; } enum GenomeEventType { GENOME_EVENT_GENERATION_BEGIN = 'GENOME_EVENT_GENERATION_BEGIN', GENOME_EVENT_POPULATION_CREATED = 'GENOME_EVENT_POPULATION_CREATED', GENOME_EVENT_GENERATION_END = 'GENOME_EVENT_GENERATION_END', GENOME_EVENT_GENERATION_FINISH = 'GENOME_EVENT_GENERATION_FINISH', } export { GenomeEvent, GenomeEventType };