serviceScope.js 505 B

123456789101112131415161718192021
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. /**
  4. * Maintains a stack of the current service in scope.
  5. * This is used to provide the correct service to spawn().
  6. */
  7. var serviceStack = [];
  8. var provide = function (service, fn) {
  9. serviceStack.push(service);
  10. var result = fn(service);
  11. serviceStack.pop();
  12. return result;
  13. };
  14. var consume = function (fn) {
  15. return fn(serviceStack[serviceStack.length - 1]);
  16. };
  17. exports.consume = consume;
  18. exports.provide = provide;