UNPKG

1.28 kBJavaScriptView Raw
1'use strict'
2
3export var Container = {
4
5 _bindings: {},
6
7 bind: function(service_name, service_provider, allow_override = false) {
8 if (this.isBound(service_name)) {
9 if (allow_override) {
10 this._bindings[service_name] = service_provider;
11 } else {
12 console.error('Container error: Service "' + service_name + '" is already bound and override is not allowed. ' +
13 'Pass true as second argument to Container.bind() to allow override.');
14 return false;
15 }
16 } else {
17 this._bindings[service_name] = service_provider;
18 }
19 },
20
21 get: function(service_name) {
22 if (this._bindings[service_name] !== undefined) {
23 return this._bindings[service_name];
24 } else {
25 console.error('Container error: Service "' + service_name + '" is not bound. Use Container.bind() first.');
26 return false;
27 }
28 },
29
30 isBound(service_name) {
31 return this._bindings[service_name] !== undefined;
32 },
33
34 getRegisteredBindings: function() {
35 var a = [];
36 for (var key in this._bindings) {
37 a.push(key);
38 }
39 return a;
40 }
41
42};