xstate
Version:
Finite State Machines and Statecharts for the Modern Web.
17 lines (15 loc) • 401 B
JavaScript
/**
* 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 };