@dudousxd/nestjs-durable-core 0.62.0 → 0.62.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -5658,6 +5658,43 @@ __name(collectMetrics, "collectMetrics");
5658
5658
 
5659
5659
  // src/scheduler.ts
5660
5660
  import { createRequire } from "node:module";
5661
+
5662
+ // src/cron-compat.ts
5663
+ function isIndexable(value) {
5664
+ return typeof value === "object" && value !== null || typeof value === "function";
5665
+ }
5666
+ __name(isIndexable, "isIndexable");
5667
+ function unwrapDefault(module_) {
5668
+ if (!isIndexable(module_)) return module_;
5669
+ if (Reflect.get(module_, "parseExpression") !== void 0) return module_;
5670
+ if (Reflect.get(module_, "CronExpressionParser") !== void 0) return module_;
5671
+ const inner = Reflect.get(module_, "default");
5672
+ return inner === void 0 ? module_ : inner;
5673
+ }
5674
+ __name(unwrapDefault, "unwrapDefault");
5675
+ function v4Entry(module_) {
5676
+ if (!isIndexable(module_)) return void 0;
5677
+ const parse = Reflect.get(module_, "parseExpression");
5678
+ if (typeof parse !== "function") return void 0;
5679
+ return (expr, options) => parse.call(module_, expr, options);
5680
+ }
5681
+ __name(v4Entry, "v4Entry");
5682
+ function v5Entry(module_) {
5683
+ if (!isIndexable(module_)) return void 0;
5684
+ const parser = Reflect.get(module_, "CronExpressionParser");
5685
+ if (!isIndexable(parser)) return void 0;
5686
+ const parse = Reflect.get(parser, "parse");
5687
+ if (typeof parse !== "function") return void 0;
5688
+ return (expr, options) => parse.call(parser, expr, options);
5689
+ }
5690
+ __name(v5Entry, "v5Entry");
5691
+ function resolveCronParse(module_) {
5692
+ const resolved = unwrapDefault(module_);
5693
+ return v4Entry(resolved) ?? v5Entry(resolved);
5694
+ }
5695
+ __name(resolveCronParse, "resolveCronParse");
5696
+
5697
+ // src/scheduler.ts
5661
5698
  var nodeRequire = createRequire(import.meta.url);
5662
5699
  var defaultSleep = /* @__PURE__ */ __name((ms) => new Promise((r) => setTimeout(r, ms)), "defaultSleep");
5663
5700
  function scheduledRunId(key, everyMs, nowMs) {
@@ -5666,7 +5703,7 @@ function scheduledRunId(key, everyMs, nowMs) {
5666
5703
  __name(scheduledRunId, "scheduledRunId");
5667
5704
  var cronParser;
5668
5705
  function loadCronParser() {
5669
- if (cronParser) return cronParser;
5706
+ if (cronParser !== void 0) return cronParser;
5670
5707
  try {
5671
5708
  cronParser = nodeRequire("cron-parser");
5672
5709
  } catch {
@@ -5676,12 +5713,14 @@ function loadCronParser() {
5676
5713
  }
5677
5714
  __name(loadCronParser, "loadCronParser");
5678
5715
  function prevCronFireMs(expr, nowMs, timezone = "UTC") {
5679
- const parser = loadCronParser();
5680
- const it = parser.parseExpression(expr, {
5716
+ const parse = resolveCronParse(loadCronParser());
5717
+ if (!parse) {
5718
+ throw new Error(`the installed "cron-parser" exposes neither v4's parseExpression nor v5's CronExpressionParser.parse \u2014 the supported range is ^4.0.0 || ^5.0.0.`);
5719
+ }
5720
+ return parse(expr, {
5681
5721
  currentDate: new Date(nowMs + 1),
5682
5722
  tz: timezone
5683
- });
5684
- return it.prev().toDate().getTime();
5723
+ }).prev().toDate().getTime();
5685
5724
  }
5686
5725
  __name(prevCronFireMs, "prevCronFireMs");
5687
5726
  function scheduleRunIdAt(s, nowMs) {