All files / core/src/tasks task-definition.registry.ts

100% Statements 18/18
100% Branches 6/6
100% Functions 3/3
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26      1x 3x   3x 3x 3x 1x 1x   2x 3x 3x 2x   2x 1x 1x   1x 2x 3x 3x  
import type { TaskDefinitionRegistry } from './task-definition.types';
import type { TaskDefinition } from './tasks.types';
 
export function createTaskDefinitionRegistry(): TaskDefinitionRegistry {
  const taskDefinitions = new Map<string, TaskDefinition>();
 
  return {
    add: (taskDefinition: TaskDefinition) => {
      if (taskDefinitions.has(taskDefinition.name)) {
        throw new Error(`Task definition already exists: ${taskDefinition.name}`);
      }
 
      taskDefinitions.set(taskDefinition.name, taskDefinition);
    },
    get: (name: string) => {
      const taskDefinition = taskDefinitions.get(name);
 
      if (!taskDefinition) {
        throw new Error(`Task definition not found: ${name}`);
      }
 
      return taskDefinition;
    },
  };
}