UNPKG

nuclear-binding-container

Version:

A binding registry to be used within a nuclear app to register resolver functions for specific keys.

54 lines (47 loc) 1.16 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.bind = bind; exports.bindIf = bindIf; exports.singleton = singleton; var _actionTypes = require('./actionTypes'); var _getters = require('./getters'); /** * Register a binding with the container. * * @public * @param {Nuclear.Reactor} reactor * @param {string} key * @param {boolean} shared * @param {function} resolver */ function bind(reactor, key, shared, resolver) { reactor.dispatch(_actionTypes.ADD, { key: key, shared: shared, resolver: resolver }); } /** * Register a binding if it is not in the container. * * @public * @param {Nuclear.Reactor} reactor * @param {string} key * @param {boolean} shared * @param {function} resolver */ function bindIf(reactor, key, shared, resolver) { if (reactor.evaluate((0, _getters.binding)(key))) { return; } bind(reactor, key, shared, resolver); } /** * Register a shared binding in the container. * * @public * @param {Nuclear.Reactor} reactor * @param {string} key * @param {function} resolver */ function singleton(reactor, key, resolver) { bind(reactor, key, true, resolver); }