UNPKG

@wmfs/statebox

Version:

Orchestrate Node functions using Amazon States Language

42 lines (33 loc) 1.06 kB
const debug = require('debug')('statebox') const ModuleResource = require('./ModuleResource') const moduleClasses = new Map() function createModule (moduleName, moduleClass) { moduleClasses.set(moduleName, moduleClass) debug(`Add module class '${moduleName}'`) } function createModules (resourceModules) { for (const [moduleName, moduleClass] of Object.entries(resourceModules)) { this.createModule(moduleName, moduleClass) } } function findModuleByName (name) { return moduleClasses.get(name) } function listModules () { return [...moduleClasses.keys()] } function moduleResolver (moduleName, resourceConfig, stateMachineName) { const resourceClass = findModuleByName(moduleName) if (!resourceClass) { // Should be picked-up by stateMachine validation before now throw new Error(`Module class '${moduleName}' not found`) } return new ModuleResource(resourceClass, resourceConfig, stateMachineName) } // moduleResolver module.exports = { createModule, createModules, findModuleByName, listModules, moduleResolver }