daniel-san
Version:
a node-based budget-projection engine that helps your routines and finances find balance. The program features aggregates, terminal and file-based reporting output, multi-currency conversion capability and multi-frequency accounting triggers, including: o
79 lines (70 loc) • 2.75 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _require = require('../timeZone'),
createTimeZone = _require.createTimeZone;
var streamForward = function streamForward(momentDate) {
return momentDate.add(1, 'day');
};
var streamBackward = function streamBackward(momentDate) {
return momentDate.add(-1, 'day');
};
var TimeStream =
/*#__PURE__*/
function () {
function TimeStream(_ref) {
var effectiveDateStartString = _ref.effectiveDateStartString,
effectiveDateEndString = _ref.effectiveDateEndString,
_ref$timeZone = _ref.timeZone,
timeZone = _ref$timeZone === void 0 ? null : _ref$timeZone,
_ref$timeZoneType = _ref.timeZoneType,
timeZoneType = _ref$timeZoneType === void 0 ? null : _ref$timeZoneType,
_ref$timeStartString = _ref.timeStartString,
timeStartString = _ref$timeStartString === void 0 ? null : _ref$timeStartString,
_ref$timeEndString = _ref.timeEndString,
timeEndString = _ref$timeEndString === void 0 ? null : _ref$timeEndString;
(0, _classCallCheck2["default"])(this, TimeStream);
this.effectiveDateStartString = effectiveDateStartString;
this.effectiveDateEndString = effectiveDateEndString;
this.effectiveDateStart = createTimeZone({
timeZone: timeZone,
timeZoneType: timeZoneType,
dateString: effectiveDateStartString,
timeString: timeStartString
});
this.effectiveDateEnd = createTimeZone({
timeZone: timeZone,
timeZoneType: timeZoneType,
dateString: effectiveDateEndString,
timeString: timeEndString
});
this.looperDate = createTimeZone({
timeZone: timeZone,
timeZoneType: timeZoneType,
dateString: effectiveDateStartString,
timeString: timeStartString
});
}
(0, _createClass2["default"])(TimeStream, [{
key: "stream1DayForward",
value: function stream1DayForward() {
this.looperDate = streamForward(this.looperDate);
var looperIsNotBeyondTheEdge = !this.looperDate.isAfter(this.effectiveDateEnd);
return looperIsNotBeyondTheEdge;
}
}, {
key: "stream1DayBackward",
value: function stream1DayBackward() {
this.looperDate = streamBackward(this.looperDate);
var looperIsNotBeyondTheEdge = !this.looperDate.isBefore(this.effectiveDateEnd);
return looperIsNotBeyondTheEdge;
}
}]);
return TimeStream;
}();
module.exports = {
TimeStream: TimeStream,
streamForward: streamForward,
streamBackward: streamBackward
};