serviceScope.js 401 B

12345678910111213141516
  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. export { consume, provide };