aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js')
-rw-r--r--node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js121
1 files changed, 121 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js b/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js
new file mode 100644
index 0000000..a0a7cf5
--- /dev/null
+++ b/node_modules/rxjs/dist/cjs/internal/scheduler/VirtualTimeScheduler.js
@@ -0,0 +1,121 @@
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ if (typeof b !== "function" && b !== null)
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.VirtualAction = exports.VirtualTimeScheduler = void 0;
+var AsyncAction_1 = require("./AsyncAction");
+var Subscription_1 = require("../Subscription");
+var AsyncScheduler_1 = require("./AsyncScheduler");
+var VirtualTimeScheduler = (function (_super) {
+ __extends(VirtualTimeScheduler, _super);
+ function VirtualTimeScheduler(schedulerActionCtor, maxFrames) {
+ if (schedulerActionCtor === void 0) { schedulerActionCtor = VirtualAction; }
+ if (maxFrames === void 0) { maxFrames = Infinity; }
+ var _this = _super.call(this, schedulerActionCtor, function () { return _this.frame; }) || this;
+ _this.maxFrames = maxFrames;
+ _this.frame = 0;
+ _this.index = -1;
+ return _this;
+ }
+ VirtualTimeScheduler.prototype.flush = function () {
+ var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
+ var error;
+ var action;
+ while ((action = actions[0]) && action.delay <= maxFrames) {
+ actions.shift();
+ this.frame = action.delay;
+ if ((error = action.execute(action.state, action.delay))) {
+ break;
+ }
+ }
+ if (error) {
+ while ((action = actions.shift())) {
+ action.unsubscribe();
+ }
+ throw error;
+ }
+ };
+ VirtualTimeScheduler.frameTimeFactor = 10;
+ return VirtualTimeScheduler;
+}(AsyncScheduler_1.AsyncScheduler));
+exports.VirtualTimeScheduler = VirtualTimeScheduler;
+var VirtualAction = (function (_super) {
+ __extends(VirtualAction, _super);
+ function VirtualAction(scheduler, work, index) {
+ if (index === void 0) { index = (scheduler.index += 1); }
+ var _this = _super.call(this, scheduler, work) || this;
+ _this.scheduler = scheduler;
+ _this.work = work;
+ _this.index = index;
+ _this.active = true;
+ _this.index = scheduler.index = index;
+ return _this;
+ }
+ VirtualAction.prototype.schedule = function (state, delay) {
+ if (delay === void 0) { delay = 0; }
+ if (Number.isFinite(delay)) {
+ if (!this.id) {
+ return _super.prototype.schedule.call(this, state, delay);
+ }
+ this.active = false;
+ var action = new VirtualAction(this.scheduler, this.work);
+ this.add(action);
+ return action.schedule(state, delay);
+ }
+ else {
+ return Subscription_1.Subscription.EMPTY;
+ }
+ };
+ VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ this.delay = scheduler.frame + delay;
+ var actions = scheduler.actions;
+ actions.push(this);
+ actions.sort(VirtualAction.sortActions);
+ return 1;
+ };
+ VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {
+ if (delay === void 0) { delay = 0; }
+ return undefined;
+ };
+ VirtualAction.prototype._execute = function (state, delay) {
+ if (this.active === true) {
+ return _super.prototype._execute.call(this, state, delay);
+ }
+ };
+ VirtualAction.sortActions = function (a, b) {
+ if (a.delay === b.delay) {
+ if (a.index === b.index) {
+ return 0;
+ }
+ else if (a.index > b.index) {
+ return 1;
+ }
+ else {
+ return -1;
+ }
+ }
+ else if (a.delay > b.delay) {
+ return 1;
+ }
+ else {
+ return -1;
+ }
+ };
+ return VirtualAction;
+}(AsyncAction_1.AsyncAction));
+exports.VirtualAction = VirtualAction;
+//# sourceMappingURL=VirtualTimeScheduler.js.map \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage