1 | /**
|
2 | * Maintains a stack of the current service in scope.
|
3 | * This is used to provide the correct service to spawn().
|
4 | */
|
5 | var serviceStack = [];
|
6 | var provide = function (service, fn) {
|
7 | serviceStack.push(service);
|
8 | var result = fn(service);
|
9 | serviceStack.pop();
|
10 | return result;
|
11 | };
|
12 | var consume = function (fn) {
|
13 | return fn(serviceStack[serviceStack.length - 1]);
|
14 | };
|
15 |
|
16 | export { consume, provide };
|