You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
474 B
25 lines
474 B
'use strict'; |
|
|
|
var reduce = require('object.reduce'); |
|
|
|
var validateRegistry = require('./helpers/validateRegistry'); |
|
|
|
function setTasks(inst, task, name) { |
|
inst.set(name, task); |
|
return inst; |
|
} |
|
|
|
function registry(newRegistry) { |
|
if (!newRegistry) { |
|
return this._registry; |
|
} |
|
|
|
validateRegistry(newRegistry); |
|
|
|
var tasks = this._registry.tasks(); |
|
|
|
this._registry = reduce(tasks, setTasks, newRegistry); |
|
this._registry.init(this); |
|
} |
|
|
|
module.exports = registry;
|
|
|