/** * 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 };