17 lines
401 B
JavaScript
Executable File
17 lines
401 B
JavaScript
Executable File
/**
|
|
* Maintains a stack of the current service in scope.
|
|
* This is used to provide the correct service to spawn().
|
|
*/
|
|
var serviceStack = [];
|
|
var provide = function (service, fn) {
|
|
serviceStack.push(service);
|
|
var result = fn(service);
|
|
serviceStack.pop();
|
|
return result;
|
|
};
|
|
var consume = function (fn) {
|
|
return fn(serviceStack[serviceStack.length - 1]);
|
|
};
|
|
|
|
export { consume, provide };
|