22 lines
505 B
JavaScript
Executable File
22 lines
505 B
JavaScript
Executable File
'use strict';
|
|
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
|
/**
|
|
* 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]);
|
|
};
|
|
|
|
exports.consume = consume;
|
|
exports.provide = provide;
|