"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (engine, ms) {
var lastTimeout = undefined;
var lastReject = undefined;
return {
load: function load() {
return engine.load();
},
save: function save(state) {
clearTimeout(lastTimeout);
if (lastReject) {
lastReject();
lastReject = null;
}
return new Promise(function (resolve, reject) {
lastReject = reject;
lastTimeout = setTimeout(function () {
lastReject = null;
engine.save(state).then(resolve)["catch"](reject);
}, ms);
});
}
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2RlYm91bmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztrQkFBZSxVQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUs7QUFDM0IsUUFBSSxXQUFXLFlBQUEsQ0FBQztBQUNoQixRQUFJLFVBQVUsWUFBQSxDQUFDOztBQUVmLFdBQU87QUFDSCxZQUFJLGtCQUFHO0FBQ0gsbUJBQU8sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3hCO0FBRUQsWUFBSSxnQkFBQyxLQUFLLEVBQUU7QUFDUix3QkFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQzFCLGdCQUFJLFVBQVUsRUFBRTtBQUNaLDBCQUFVLEVBQUUsQ0FBQztBQUNiLDBCQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ3JCOztBQUVELG1CQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBSztBQUNwQywwQkFBVSxHQUFHLE1BQU0sQ0FBQztBQUNwQiwyQkFBVyxHQUFHLFVBQVUsQ0FBQyxZQUFNO0FBQzNCLDhCQUFVLEdBQUcsSUFBSSxDQUFDO0FBQ2xCLDBCQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsRCxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ1YsQ0FBQyxDQUFDO1NBQ047S0FDSixDQUFDO0NBQ0wiLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCAoZW5naW5lLCBtcykgPT4ge1xuICAgIGxldCBsYXN0VGltZW91dDtcbiAgICBsZXQgbGFzdFJlamVjdDtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxvYWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gZW5naW5lLmxvYWQoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBzYXZlKHN0YXRlKSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQobGFzdFRpbWVvdXQpO1xuICAgICAgICAgICAgaWYgKGxhc3RSZWplY3QpIHtcbiAgICAgICAgICAgICAgICBsYXN0UmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgbGFzdFJlamVjdCA9IG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgbGFzdFJlamVjdCA9IHJlamVjdDtcbiAgICAgICAgICAgICAgICBsYXN0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsYXN0UmVqZWN0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgZW5naW5lLnNhdmUoc3RhdGUpLnRoZW4ocmVzb2x2ZSkuY2F0Y2gocmVqZWN0KTtcbiAgICAgICAgICAgICAgICB9LCBtcyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG59O1xuIl19