han-feng/modular

View on GitHub
src/ModulesLoader.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { ModuleConfig } from './Modular'

export default class ModulesLoader {
  private readonly modules: ModuleConfig[] = []
  private readonly nameMap: { [index: string]: ModuleConfig } = {}
  add(module: ModuleConfig): void {
    if (!this.contains(module)) {
      this.nameMap[module.name] = module
      this.modules.push(module)
    }
  }
  getModules(): ModuleConfig[] {
    return this.modules
  }
  contains(module: ModuleConfig): boolean {
    return !!this.nameMap[module.name]
  }
}