Comparing version 6.2.0 to 6.2.1
@@ -67,2 +67,3 @@ "use strict"; | ||
var parseValue = function parseValue(value) { | ||
var originalValue = value; | ||
if (value === false) return value; | ||
@@ -75,5 +76,14 @@ if (isSchedule(value)) return value; | ||
value = getHumanToMs(value); | ||
if (value === 0) { | ||
// There is a bug in the human-interval library that causes some invalid | ||
// strings to be parsed as valid, returning 0 as output (instead of NaN). | ||
// Since the user is using a String to define the interval, it is most | ||
// likely that he/she is not trying to set it to 0ms. | ||
// Hence, this must be an error. | ||
throw new Error("Value \"".concat(originalValue, "\" is not a String parseable by `later.parse.text` (see <https://breejs.github.io/later/parsers.html#text> for examples)")); | ||
} | ||
} | ||
if (!Number.isFinite(value) || value < 0) throw new Error("Value ".concat(value, " must be a finite number >= 0 or a String parseable by `later.parse.text` (see <https://breejs.github.io/later/parsers.html#text> for examples)")); | ||
if (!Number.isFinite(value) || value < 0) throw new Error("Value \"".concat(originalValue, "\" must be a finite number >= 0 or a String parseable by `later.parse.text` (see <https://breejs.github.io/later/parsers.html#text> for examples)")); | ||
return value; | ||
@@ -121,2 +131,2 @@ }; | ||
module.exports.getJobNames = getJobNames; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qb2ItdXRpbHMuanMiXSwibmFtZXMiOlsibXMiLCJyZXF1aXJlIiwiaHVtYW5JbnRlcnZhbCIsImxhdGVyIiwiaXNTQU5CIiwiaXNTY2hlZHVsZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2NoZWR1bGVzIiwiZ2V0TmFtZSIsImpvYiIsIm5hbWUiLCJnZXRIdW1hblRvTXMiLCJfdmFsdWUiLCJOdW1iZXIiLCJpc05hTiIsInBhcnNlVmFsdWUiLCJzY2hlZHVsZSIsInBhcnNlIiwidGV4dCIsImlzVmFsaWQiLCJpc0Zpbml0ZSIsIkVycm9yIiwiZ2V0Sm9iTmFtZXMiLCJqb2JzIiwiZXhjbHVkZUluZGV4IiwibmFtZXMiLCJlbnRyaWVzIiwiaSIsInB1c2giLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFBLElBQU1BLEVBQUUsR0FBR0MsT0FBTyxDQUFDLElBQUQsQ0FBbEI7O0FBQ0EsSUFBTUMsYUFBYSxHQUFHRCxPQUFPLENBQUMsZ0JBQUQsQ0FBN0I7O0FBQ0EsSUFBTUUsS0FBSyxHQUFHRixPQUFPLENBQUMsZUFBRCxDQUFyQjs7QUFDQSxJQUFNRyxNQUFNLEdBQUdILE9BQU8sQ0FBQyx5QkFBRCxDQUF0QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsSUFBTUksVUFBVSxHQUFHLFNBQWJBLFVBQWEsQ0FBQ0MsS0FBRCxFQUFXO0FBQzVCLFNBQU8sc0JBQU9BLEtBQVAsTUFBaUIsUUFBakIsSUFBNkJDLEtBQUssQ0FBQ0MsT0FBTixDQUFjRixLQUFLLENBQUNHLFNBQXBCLENBQXBDO0FBQ0QsQ0FGRDtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBQ0EsSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQVUsQ0FBQ0MsR0FBRCxFQUFTO0FBQ3ZCLE1BQUlQLE1BQU0sQ0FBQ08sR0FBRCxDQUFWLEVBQWlCLE9BQU9BLEdBQVA7QUFDakIsTUFBSSxzQkFBT0EsR0FBUCxNQUFlLFFBQWYsSUFBMkJQLE1BQU0sQ0FBQ08sR0FBRyxDQUFDQyxJQUFMLENBQXJDLEVBQWlELE9BQU9ELEdBQUcsQ0FBQ0MsSUFBWDtBQUNqRCxNQUFJLE9BQU9ELEdBQVAsS0FBZSxVQUFmLElBQTZCUCxNQUFNLENBQUNPLEdBQUcsQ0FBQ0MsSUFBTCxDQUF2QyxFQUFtRCxPQUFPRCxHQUFHLENBQUNDLElBQVg7QUFDcEQsQ0FKRDtBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFlLENBQUNDLE1BQUQsRUFBWTtBQUMvQixNQUFNUixLQUFLLEdBQUdKLGFBQWEsQ0FBQ1ksTUFBRCxDQUEzQjtBQUNBLE1BQUlDLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhVixLQUFiLENBQUosRUFBeUIsT0FBT04sRUFBRSxDQUFDYyxNQUFELENBQVQ7QUFDekIsU0FBT1IsS0FBUDtBQUNELENBSkQ7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQU1XLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNYLEtBQUQsRUFBVztBQUM1QixNQUFJQSxLQUFLLEtBQUssS0FBZCxFQUFxQixPQUFPQSxLQUFQO0FBRXJCLE1BQUlELFVBQVUsQ0FBQ0MsS0FBRCxDQUFkLEVBQXVCLE9BQU9BLEtBQVA7O0FBRXZCLE1BQUlGLE1BQU0sQ0FBQ0UsS0FBRCxDQUFWLEVBQW1CO0FBQ2pCLFFBQU1ZLFFBQVEsR0FBR2YsS0FBSyxDQUFDZSxRQUFOLENBQWVmLEtBQUssQ0FBQ2dCLEtBQU4sQ0FBWUMsSUFBWixDQUFpQmQsS0FBakIsQ0FBZixDQUFqQjtBQUNBLFFBQUlZLFFBQVEsQ0FBQ0csT0FBVCxFQUFKLEVBQXdCLE9BQU9sQixLQUFLLENBQUNnQixLQUFOLENBQVlDLElBQVosQ0FBaUJkLEtBQWpCLENBQVA7QUFDeEJBLElBQUFBLEtBQUssR0FBR08sWUFBWSxDQUFDUCxLQUFELENBQXBCO0FBQ0Q7O0FBRUQsTUFBSSxDQUFDUyxNQUFNLENBQUNPLFFBQVAsQ0FBZ0JoQixLQUFoQixDQUFELElBQTJCQSxLQUFLLEdBQUcsQ0FBdkMsRUFDRSxNQUFNLElBQUlpQixLQUFKLGlCQUNLakIsS0FETCxxSkFBTjtBQUlGLFNBQU9BLEtBQVA7QUFDRCxDQWpCRDtBQW1CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNa0IsV0FBVyxHQUFHLFNBQWRBLFdBQWMsQ0FBQ0MsSUFBRCxFQUFPQyxZQUFQLEVBQXdCO0FBQzFDLE1BQU1DLEtBQUssR0FBRyxFQUFkOztBQUQwQyw2Q0FHbkJGLElBQUksQ0FBQ0csT0FBTCxFQUhtQjtBQUFBOztBQUFBO0FBRzFDLHdEQUF1QztBQUFBO0FBQUEsVUFBM0JDLENBQTJCO0FBQUEsVUFBeEJsQixHQUF3Qjs7QUFDckMsVUFBSWtCLENBQUMsS0FBS0gsWUFBVixFQUF3QjtBQUV4QixVQUFNZCxJQUFJLEdBQUdGLE9BQU8sQ0FBQ0MsR0FBRCxDQUFwQjtBQUVBLFVBQUlDLElBQUosRUFBVWUsS0FBSyxDQUFDRyxJQUFOLENBQVdsQixJQUFYO0FBQ1g7QUFUeUM7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFXMUMsU0FBT2UsS0FBUDtBQUNELENBWkQ7O0FBY0FJLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlM0IsVUFBZixHQUE0QkEsVUFBNUI7QUFDQTBCLE1BQU0sQ0FBQ0MsT0FBUCxDQUFldEIsT0FBZixHQUF5QkEsT0FBekI7QUFDQXFCLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlbkIsWUFBZixHQUE4QkEsWUFBOUI7QUFDQWtCLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlZixVQUFmLEdBQTRCQSxVQUE1QjtBQUNBYyxNQUFNLENBQUNDLE9BQVAsQ0FBZVIsV0FBZixHQUE2QkEsV0FBN0IiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtcyA9IHJlcXVpcmUoJ21zJyk7XG5jb25zdCBodW1hbkludGVydmFsID0gcmVxdWlyZSgnaHVtYW4taW50ZXJ2YWwnKTtcbmNvbnN0IGxhdGVyID0gcmVxdWlyZSgnQGJyZWVqcy9sYXRlcicpO1xuY29uc3QgaXNTQU5CID0gcmVxdWlyZSgnaXMtc3RyaW5nLWFuZC1ub3QtYmxhbmsnKTtcblxuLyoqXG4gKiBOYWl2ZWx5IGNoZWNrcyBpZiBwYXNzZWQgdmFsdWUgaXMgb2YgbGF0ZXIuanMgc2NoZWR1bGUgZm9ybWF0IChodHRwczovL2JyZWVqcy5naXRodWIuaW8vbGF0ZXIvc2NoZWR1bGVzLmh0bWwpXG4gKlxuICogQHBhcmFtIHsqfSB2YWx1ZSB0byBjaGVjayBmb3Igc2NoZWR1bGUgZm9ybWF0XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAqL1xuY29uc3QgaXNTY2hlZHVsZSA9ICh2YWx1ZSkgPT4ge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBBcnJheS5pc0FycmF5KHZhbHVlLnNjaGVkdWxlcyk7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIGpvYiBuYW1lIGZyb20gam9iIGRlZmluaXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IE9iamVjdCB8IEZ1bmN0aW9ufSBqb2IgZGVmaW5pdGlvblxuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuY29uc3QgZ2V0TmFtZSA9IChqb2IpID0+IHtcbiAgaWYgKGlzU0FOQihqb2IpKSByZXR1cm4gam9iO1xuICBpZiAodHlwZW9mIGpvYiA9PT0gJ29iamVjdCcgJiYgaXNTQU5CKGpvYi5uYW1lKSkgcmV0dXJuIGpvYi5uYW1lO1xuICBpZiAodHlwZW9mIGpvYiA9PT0gJ2Z1bmN0aW9uJyAmJiBpc1NBTkIoam9iLm5hbWUpKSByZXR1cm4gam9iLm5hbWU7XG59O1xuXG4vKipcbiAqIFBhcnNlcyBwcm92aWRlZCB2YWx1ZSBpbnRvIG1pbGxpc2Vjb25kXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IF92YWx1ZVxuICovXG5jb25zdCBnZXRIdW1hblRvTXMgPSAoX3ZhbHVlKSA9PiB7XG4gIGNvbnN0IHZhbHVlID0gaHVtYW5JbnRlcnZhbChfdmFsdWUpO1xuICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSkgcmV0dXJuIG1zKF92YWx1ZSk7XG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbi8qKlxuICogUGFyc2VzIHNjaGVkdWxlIHZhbHVlIGludG8gXCJsYXRlclwiIHNjaGVkdWxlIG9iamVjdCBvciBtaWxsaXNlY29uZHNcbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIgfCBPYmplY3R9IHZhbHVlXG4gKiBAcmV0dXJucyB7bnVtYmVyIHwgYm9vbGVhbiB8IE9iamVjdH1cbiAqL1xuY29uc3QgcGFyc2VWYWx1ZSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAodmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdmFsdWU7XG5cbiAgaWYgKGlzU2NoZWR1bGUodmFsdWUpKSByZXR1cm4gdmFsdWU7XG5cbiAgaWYgKGlzU0FOQih2YWx1ZSkpIHtcbiAgICBjb25zdCBzY2hlZHVsZSA9IGxhdGVyLnNjaGVkdWxlKGxhdGVyLnBhcnNlLnRleHQodmFsdWUpKTtcbiAgICBpZiAoc2NoZWR1bGUuaXNWYWxpZCgpKSByZXR1cm4gbGF0ZXIucGFyc2UudGV4dCh2YWx1ZSk7XG4gICAgdmFsdWUgPSBnZXRIdW1hblRvTXModmFsdWUpO1xuICB9XG5cbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IHZhbHVlIDwgMClcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVmFsdWUgJHt2YWx1ZX0gbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIgPj0gMCBvciBhIFN0cmluZyBwYXJzZWFibGUgYnkgXFxgbGF0ZXIucGFyc2UudGV4dFxcYCAoc2VlIDxodHRwczovL2JyZWVqcy5naXRodWIuaW8vbGF0ZXIvcGFyc2Vycy5odG1sI3RleHQ+IGZvciBleGFtcGxlcylgXG4gICAgKTtcblxuICByZXR1cm4gdmFsdWU7XG59O1xuXG4vKipcbiAqIFByb2Nlc3NlcyBqb2Igb2JqZWN0cyBleHRyYWN0aW5nIHRoZWlyIG5hbWVzXG4gKiBDYW4gY29uZGl0aW9uYWx5IHNraXAgcmVjb3JkcyBieSB0aGVpciBpbmRleFxuICpcbiAqIEBwYXJhbSB7YW55W119IGpvYnNcbiAqIEBwYXJhbSB7bnVtYmVyfSBleGNsdWRlSW5kZXhcbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gam9iIG5hbWVzXG4gKi9cbmNvbnN0IGdldEpvYk5hbWVzID0gKGpvYnMsIGV4Y2x1ZGVJbmRleCkgPT4ge1xuICBjb25zdCBuYW1lcyA9IFtdO1xuXG4gIGZvciAoY29uc3QgW2ksIGpvYl0gb2Ygam9icy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoaSA9PT0gZXhjbHVkZUluZGV4KSBjb250aW51ZTtcblxuICAgIGNvbnN0IG5hbWUgPSBnZXROYW1lKGpvYik7XG5cbiAgICBpZiAobmFtZSkgbmFtZXMucHVzaChuYW1lKTtcbiAgfVxuXG4gIHJldHVybiBuYW1lcztcbn07XG5cbm1vZHVsZS5leHBvcnRzLmlzU2NoZWR1bGUgPSBpc1NjaGVkdWxlO1xubW9kdWxlLmV4cG9ydHMuZ2V0TmFtZSA9IGdldE5hbWU7XG5tb2R1bGUuZXhwb3J0cy5nZXRIdW1hblRvTXMgPSBnZXRIdW1hblRvTXM7XG5tb2R1bGUuZXhwb3J0cy5wYXJzZVZhbHVlID0gcGFyc2VWYWx1ZTtcbm1vZHVsZS5leHBvcnRzLmdldEpvYk5hbWVzID0gZ2V0Sm9iTmFtZXM7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qb2ItdXRpbHMuanMiXSwibmFtZXMiOlsibXMiLCJyZXF1aXJlIiwiaHVtYW5JbnRlcnZhbCIsImxhdGVyIiwiaXNTQU5CIiwiaXNTY2hlZHVsZSIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic2NoZWR1bGVzIiwiZ2V0TmFtZSIsImpvYiIsIm5hbWUiLCJnZXRIdW1hblRvTXMiLCJfdmFsdWUiLCJOdW1iZXIiLCJpc05hTiIsInBhcnNlVmFsdWUiLCJvcmlnaW5hbFZhbHVlIiwic2NoZWR1bGUiLCJwYXJzZSIsInRleHQiLCJpc1ZhbGlkIiwiRXJyb3IiLCJpc0Zpbml0ZSIsImdldEpvYk5hbWVzIiwiam9icyIsImV4Y2x1ZGVJbmRleCIsIm5hbWVzIiwiZW50cmllcyIsImkiLCJwdXNoIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFNQSxFQUFFLEdBQUdDLE9BQU8sQ0FBQyxJQUFELENBQWxCOztBQUNBLElBQU1DLGFBQWEsR0FBR0QsT0FBTyxDQUFDLGdCQUFELENBQTdCOztBQUNBLElBQU1FLEtBQUssR0FBR0YsT0FBTyxDQUFDLGVBQUQsQ0FBckI7O0FBQ0EsSUFBTUcsTUFBTSxHQUFHSCxPQUFPLENBQUMseUJBQUQsQ0FBdEI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQU1JLFVBQVUsR0FBRyxTQUFiQSxVQUFhLENBQUNDLEtBQUQsRUFBVztBQUM1QixTQUFPLHNCQUFPQSxLQUFQLE1BQWlCLFFBQWpCLElBQTZCQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0YsS0FBSyxDQUFDRyxTQUFwQixDQUFwQztBQUNELENBRkQ7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFVLENBQUNDLEdBQUQsRUFBUztBQUN2QixNQUFJUCxNQUFNLENBQUNPLEdBQUQsQ0FBVixFQUFpQixPQUFPQSxHQUFQO0FB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UCxDQUFlUixXQUFmLEdBQTZCQSxXQUE3QiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1zID0gcmVxdWlyZSgnbXMnKTtcbmNvbnN0IGh1bWFuSW50ZXJ2YWwgPSByZXF1aXJlKCdodW1hbi1pbnRlcnZhbCcpO1xuY29uc3QgbGF0ZXIgPSByZXF1aXJlKCdAYnJlZWpzL2xhdGVyJyk7XG5jb25zdCBpc1NBTkIgPSByZXF1aXJlKCdpcy1zdHJpbmctYW5kLW5vdC1ibGFuaycpO1xuXG4vKipcbiAqIE5haXZlbHkgY2hlY2tzIGlmIHBhc3NlZCB2YWx1ZSBpcyBvZiBsYXRlci5qcyBzY2hlZHVsZSBmb3JtYXQgKGh0dHBzOi8vYnJlZWpzLmdpdGh1Yi5pby9sYXRlci9zY2hlZHVsZXMuaHRtbClcbiAqXG4gKiBAcGFyYW0geyp9IHZhbHVlIHRvIGNoZWNrIGZvciBzY2hlZHVsZSBmb3JtYXRcbiAqIEByZXR1cm5zIHtib29sZWFufVxuICovXG5jb25zdCBpc1NjaGVkdWxlID0gKHZhbHVlKSA9PiB7XG4gIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIEFycmF5LmlzQXJyYXkodmFsdWUuc2NoZWR1bGVzKTtcbn07XG5cbi8qKlxuICogRXh0cmFjdHMgam9iIG5hbWUgZnJvbSBqb2IgZGVmaW5pdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nIHwgT2JqZWN0IHwgRnVuY3Rpb259IGpvYiBkZWZpbml0aW9uXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5jb25zdCBnZXROYW1lID0gKGpvYikgPT4ge1xuICBpZiAoaXNTQU5CKGpvYikpIHJldHVybiBqb2I7XG4gIGlmICh0eXBlb2Ygam9iID09PSAnb2JqZWN0JyAmJiBpc1NBTkIoam9iLm5hbWUpKSByZXR1cm4gam9iLm5hbWU7XG4gIGlmICh0eXBlb2Ygam9iID09PSAnZnVuY3Rpb24nICYmIGlzU0FOQihqb2IubmFtZSkpIHJldHVybiBqb2IubmFtZTtcbn07XG5cbi8qKlxuICogUGFyc2VzIHByb3ZpZGVkIHZhbHVlIGludG8gbWlsbGlzZWNvbmRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gX3ZhbHVlXG4gKi9cbmNvbnN0IGdldEh1bWFuVG9NcyA9IChfdmFsdWUpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBodW1hbkludGVydmFsKF92YWx1ZSk7XG4gIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSByZXR1cm4gbXMoX3ZhbHVlKTtcbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuLyoqXG4gKiBQYXJzZXMgc2NoZWR1bGUgdmFsdWUgaW50byBcImxhdGVyXCIgc2NoZWR1bGUgb2JqZWN0IG9yIG1pbGxpc2Vjb25kc1xuICpcbiAqIEBwYXJhbSB7Ym9vbGVhbiB8IHN0cmluZyB8IG51bWJlciB8IE9iamVjdH0gdmFsdWVcbiAqIEByZXR1cm5zIHtudW1iZXIgfCBib29sZWFuIHwgT2JqZWN0fVxuICovXG5jb25zdCBwYXJzZVZhbHVlID0gKHZhbHVlKSA9PiB7XG4gIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB2YWx1ZTtcblxuICBpZiAodmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdmFsdWU7XG5cbiAgaWYgKGlzU2NoZWR1bGUodmFsdWUpKSByZXR1cm4gdmFsdWU7XG5cbiAgaWYgKGlzU0FOQih2YWx1ZSkpIHtcbiAgICBjb25zdCBzY2hlZHVsZSA9IGxhdGVyLnNjaGVkdWxlKGxhdGVyLnBhcnNlLnRleHQodmFsdWUpKTtcbiAgICBpZiAoc2NoZWR1bGUuaXNWYWxpZCgpKSByZXR1cm4gbGF0ZXIucGFyc2UudGV4dCh2YWx1ZSk7XG4gICAgdmFsdWUgPSBnZXRIdW1hblRvTXModmFsdWUpO1xuICAgIGlmICh2YWx1ZSA9PT0gMCkge1xuICAgICAgLy8gVGhlcmUgaXMgYSBidWcgaW4gdGhlIGh1bWFuLWludGVydmFsIGxpYnJhcnkgdGhhdCBjYXVzZXMgc29tZSBpbnZhbGlkXG4gICAgICAvLyBzdHJpbmdzIHRvIGJlIHBhcnNlZCBhcyB2YWxpZCwgcmV0dXJuaW5nIDAgYXMgb3V0cHV0IChpbnN0ZWFkIG9mIE5hTikuXG4gICAgICAvLyBTaW5jZSB0aGUgdXNlciBpcyB1c2luZyBhIFN0cmluZyB0byBkZWZpbmUgdGhlIGludGVydmFsLCBpdCBpcyBtb3N0XG4gICAgICAvLyBsaWtlbHkgdGhhdCBoZS9zaGUgaXMgbm90IHRyeWluZyB0byBzZXQgaXQgdG8gMG1zLlxuICAgICAgLy8gSGVuY2UsIHRoaXMgbXVzdCBiZSBhbiBlcnJvci5cbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFZhbHVlIFwiJHtvcmlnaW5hbFZhbHVlfVwiIGlzIG5vdCBhIFN0cmluZyBwYXJzZWFibGUgYnkgXFxgbGF0ZXIucGFyc2UudGV4dFxcYCAoc2VlIDxodHRwczovL2JyZWVqcy5naXRodWIuaW8vbGF0ZXIvcGFyc2Vycy5odG1sI3RleHQ+IGZvciBleGFtcGxlcylgXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHZhbHVlKSB8fCB2YWx1ZSA8IDApXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFZhbHVlIFwiJHtvcmlnaW5hbFZhbHVlfVwiIG11c3QgYmUgYSBmaW5pdGUgbnVtYmVyID49IDAgb3IgYSBTdHJpbmcgcGFyc2VhYmxlIGJ5IFxcYGxhdGVyLnBhcnNlLnRleHRcXGAgKHNlZSA8aHR0cHM6Ly9icmVlanMuZ2l0aHViLmlvL2xhdGVyL3BhcnNlcnMuaHRtbCN0ZXh0PiBmb3IgZXhhbXBsZXMpYFxuICAgICk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuLyoqXG4gKiBQcm9jZXNzZXMgam9iIG9iamVjdHMgZXh0cmFjdGluZyB0aGVpciBuYW1lc1xuICogQ2FuIGNvbmRpdGlvbmFseSBza2lwIHJlY29yZHMgYnkgdGhlaXIgaW5kZXhcbiAqXG4gKiBAcGFyYW0ge2FueVtdfSBqb2JzXG4gKiBAcGFyYW0ge251bWJlcn0gZXhjbHVkZUluZGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nW119IGpvYiBuYW1lc1xuICovXG5jb25zdCBnZXRKb2JOYW1lcyA9IChqb2JzLCBleGNsdWRlSW5kZXgpID0+IHtcbiAgY29uc3QgbmFtZXMgPSBbXTtcblxuICBmb3IgKGNvbnN0IFtpLCBqb2JdIG9mIGpvYnMuZW50cmllcygpKSB7XG4gICAgaWYgKGkgPT09IGV4Y2x1ZGVJbmRleCkgY29udGludWU7XG5cbiAgICBjb25zdCBuYW1lID0gZ2V0TmFtZShqb2IpO1xuXG4gICAgaWYgKG5hbWUpIG5hbWVzLnB1c2gobmFtZSk7XG4gIH1cblxuICByZXR1cm4gbmFtZXM7XG59O1xuXG5tb2R1bGUuZXhwb3J0cy5pc1NjaGVkdWxlID0gaXNTY2hlZHVsZTtcbm1vZHVsZS5leHBvcnRzLmdldE5hbWUgPSBnZXROYW1lO1xubW9kdWxlLmV4cG9ydHMuZ2V0SHVtYW5Ub01zID0gZ2V0SHVtYW5Ub01zO1xubW9kdWxlLmV4cG9ydHMucGFyc2VWYWx1ZSA9IHBhcnNlVmFsdWU7XG5tb2R1bGUuZXhwb3J0cy5nZXRKb2JOYW1lcyA9IGdldEpvYk5hbWVzO1xuIl19 |
{ | ||
"name": "bree", | ||
"description": "The best job scheduler for Node.js and JavaScript with cron, dates, ms, later, and human-friendly support. Works in Node v10+ and browsers (thanks to bthreads polyfill), uses workers to spawn sandboxed processes, and supports async/await, retries, throttling, concurrency, and cancelable promises (graceful shutdown). Simple, fast, and lightweight. Made for Forward Email and Lad.", | ||
"version": "6.2.0", | ||
"version": "6.2.1", | ||
"author": "Nick Baugh <niftylettuce@gmail.com> (http://niftylettuce.com/)", | ||
@@ -6,0 +6,0 @@ "ava": { |
@@ -37,3 +37,3 @@ <h1 align="center"> | ||
* [Listening for events](#listening-for-events) | ||
* [Custom error handling](#custom-error-handling) | ||
* [Custom error/message handling](#custom-errormessage-handling) | ||
* [Cancellation, Retries, Stalled Jobs, and Graceful Reloading](#cancellation-retries-stalled-jobs-and-graceful-reloading) | ||
@@ -47,2 +47,3 @@ * [Interval, Timeout, Date, and Cron Validation](#interval-timeout-date-and-cron-validation) | ||
* [Using functions for jobs](#using-functions-for-jobs) | ||
* [Typescript Usage](#typescript-usage) | ||
* [Concurrency](#concurrency) | ||
@@ -80,3 +81,17 @@ * [Real-world usage](#real-world-usage) | ||
For TypeScript bindings: | ||
[npm][]: | ||
```sh | ||
npm install --save-dev @types/bree | ||
``` | ||
[yarn][]: | ||
```sh | ||
yarn add -D @types/bree | ||
``` | ||
## Usage and Examples | ||
@@ -569,6 +584,8 @@ | ||
## Custom error handling | ||
## Custom error/message handling | ||
If you'd like to override default behavior for worker error handling, provide a callback function as `errorHandler` parameter when creating a Bree instance. | ||
If you'd like to override default behavior for worker error/message handling, provide a callback function as `errorHandler` or `workerMessageHandler` parameter when creating a Bree instance. | ||
> **NOTE:** Any `console.log` calls, from within the worker, will not be sent to `stdout`/`stderr` until the main thread is available. Furthermore, any `console.log` calls, from within the worker, will not be sent if the process is terminated before the message is printed. You should use `parentPort.postMessage()` alongside `errorHandler` or `workerMessageHandler` to print to `stdout`/`stderr` during worker execution. This is a known [bug](https://github.com/nodejs/node/issues/30491) for workers. | ||
An example use-case. If you want to call an external service to record an error (like Honeybadger, Sentry, etc.) along with logging the error internally. You can do so with: | ||
@@ -746,2 +763,46 @@ | ||
## Typescript Usage | ||
As is mentioned in this issue: [#24](https://github.com/breejs/bree/issues/24) and thanks to @ChrisEdgington. You can use typescript workers as: | ||
Create a function that will process the path: | ||
```js | ||
function typescript_worker() { | ||
const path = require('path') | ||
require('ts-node').register() | ||
const workerData = require('worker_threads').workerData | ||
require(path.resolve(__dirname, workerData.__filename)) | ||
} | ||
``` | ||
Then use the function as path (see [Using functions for jobs](#using-functions-for-jobs)), and pass the path to your ts job file: | ||
```js | ||
{ | ||
name: 'Typescript Worker', | ||
path: typescript_worker, | ||
interval: 'every 10 seconds', | ||
worker: { workerData: { __filename: './src/job_specific_filename_worker.ts' } } | ||
} | ||
``` | ||
Additionally for supporting using ts on development and js on production you can make something like or wathever similar: | ||
```js | ||
...(CRON_MODE === 'ts' | ||
? { | ||
path: typescript_worker, | ||
worker: { | ||
workerData: { | ||
__filename: path.join(paths.jobs, `${jobPath}.ts`) | ||
} | ||
} | ||
} | ||
: { | ||
path: path.join(paths.jobs, `${jobPath}.js`) | ||
}) | ||
``` | ||
## Concurrency | ||
@@ -759,3 +820,3 @@ | ||
More detailed examples can be found in [Forward Email][forward-email] and [Lad][]. | ||
More detailed examples can be found in [Forward Email][forward-email], [Lad][], and [Ghost][ghost]. | ||
@@ -851,1 +912,3 @@ | ||
[rollup]: https://github.com/rollup/rollup | ||
[ghost]: https://ghost.org/ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1445472
27529
908
9