effect 3.10.19 → 3.11.0

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.
Files changed (167) hide show
  1. package/dist/cjs/BigDecimal.js +125 -24
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/Channel.js +44 -4
  4. package/dist/cjs/Channel.js.map +1 -1
  5. package/dist/cjs/Config.js +8 -1
  6. package/dist/cjs/Config.js.map +1 -1
  7. package/dist/cjs/Context.js +26 -1
  8. package/dist/cjs/Context.js.map +1 -1
  9. package/dist/cjs/Cron.js +75 -67
  10. package/dist/cjs/Cron.js.map +1 -1
  11. package/dist/cjs/DateTime.js +114 -664
  12. package/dist/cjs/DateTime.js.map +1 -1
  13. package/dist/cjs/Effect.js +82 -4
  14. package/dist/cjs/Effect.js.map +1 -1
  15. package/dist/cjs/Inspectable.js +8 -4
  16. package/dist/cjs/Inspectable.js.map +1 -1
  17. package/dist/cjs/JSONSchema.js.map +1 -1
  18. package/dist/cjs/Micro.js +1099 -1072
  19. package/dist/cjs/Micro.js.map +1 -1
  20. package/dist/cjs/STM.js.map +1 -1
  21. package/dist/cjs/Schema.js +57 -8
  22. package/dist/cjs/Schema.js.map +1 -1
  23. package/dist/cjs/Sink.js +9 -1
  24. package/dist/cjs/Sink.js.map +1 -1
  25. package/dist/cjs/Stream.js +25 -7
  26. package/dist/cjs/Stream.js.map +1 -1
  27. package/dist/cjs/Utils.js +7 -1
  28. package/dist/cjs/Utils.js.map +1 -1
  29. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  30. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  31. package/dist/cjs/internal/channel.js +156 -130
  32. package/dist/cjs/internal/channel.js.map +1 -1
  33. package/dist/cjs/internal/config.js +13 -4
  34. package/dist/cjs/internal/config.js.map +1 -1
  35. package/dist/cjs/internal/context.js +46 -3
  36. package/dist/cjs/internal/context.js.map +1 -1
  37. package/dist/cjs/internal/dateTime.js +747 -0
  38. package/dist/cjs/internal/dateTime.js.map +1 -0
  39. package/dist/cjs/internal/fiberRuntime.js +34 -11
  40. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  41. package/dist/cjs/internal/groupBy.js +9 -3
  42. package/dist/cjs/internal/groupBy.js.map +1 -1
  43. package/dist/cjs/internal/layer.js +1 -1
  44. package/dist/cjs/internal/layer.js.map +1 -1
  45. package/dist/cjs/internal/mailbox.js +1 -1
  46. package/dist/cjs/internal/mailbox.js.map +1 -1
  47. package/dist/cjs/internal/sink.js +25 -21
  48. package/dist/cjs/internal/sink.js.map +1 -1
  49. package/dist/cjs/internal/stream.js +70 -71
  50. package/dist/cjs/internal/stream.js.map +1 -1
  51. package/dist/cjs/internal/version.js +1 -1
  52. package/dist/cjs/internal/version.js.map +1 -1
  53. package/dist/dts/BigDecimal.d.ts +56 -1
  54. package/dist/dts/BigDecimal.d.ts.map +1 -1
  55. package/dist/dts/Channel.d.ts +66 -5
  56. package/dist/dts/Channel.d.ts.map +1 -1
  57. package/dist/dts/Config.d.ts +23 -1
  58. package/dist/dts/Config.d.ts.map +1 -1
  59. package/dist/dts/Context.d.ts +111 -0
  60. package/dist/dts/Context.d.ts.map +1 -1
  61. package/dist/dts/Cron.d.ts +15 -6
  62. package/dist/dts/Cron.d.ts.map +1 -1
  63. package/dist/dts/DateTime.d.ts +40 -49
  64. package/dist/dts/DateTime.d.ts.map +1 -1
  65. package/dist/dts/Effect.d.ts +88 -1
  66. package/dist/dts/Effect.d.ts.map +1 -1
  67. package/dist/dts/Inspectable.d.ts.map +1 -1
  68. package/dist/dts/JSONSchema.d.ts +1 -0
  69. package/dist/dts/JSONSchema.d.ts.map +1 -1
  70. package/dist/dts/Micro.d.ts +875 -872
  71. package/dist/dts/Micro.d.ts.map +1 -1
  72. package/dist/dts/STM.d.ts +2 -0
  73. package/dist/dts/STM.d.ts.map +1 -1
  74. package/dist/dts/Schema.d.ts +32 -0
  75. package/dist/dts/Schema.d.ts.map +1 -1
  76. package/dist/dts/Sink.d.ts +8 -0
  77. package/dist/dts/Sink.d.ts.map +1 -1
  78. package/dist/dts/Stream.d.ts +50 -32
  79. package/dist/dts/Stream.d.ts.map +1 -1
  80. package/dist/dts/Utils.d.ts +4 -0
  81. package/dist/dts/Utils.d.ts.map +1 -1
  82. package/dist/dts/internal/context.d.ts +1 -1
  83. package/dist/dts/internal/context.d.ts.map +1 -1
  84. package/dist/dts/internal/dateTime.d.ts +2 -0
  85. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  86. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  87. package/dist/dts/internal/stream.d.ts.map +1 -1
  88. package/dist/esm/BigDecimal.js +119 -20
  89. package/dist/esm/BigDecimal.js.map +1 -1
  90. package/dist/esm/Channel.js +42 -2
  91. package/dist/esm/Channel.js.map +1 -1
  92. package/dist/esm/Config.js +7 -0
  93. package/dist/esm/Config.js.map +1 -1
  94. package/dist/esm/Context.js +25 -0
  95. package/dist/esm/Context.js.map +1 -1
  96. package/dist/esm/Cron.js +75 -67
  97. package/dist/esm/Cron.js.map +1 -1
  98. package/dist/esm/DateTime.js +112 -627
  99. package/dist/esm/DateTime.js.map +1 -1
  100. package/dist/esm/Effect.js +77 -0
  101. package/dist/esm/Effect.js.map +1 -1
  102. package/dist/esm/Inspectable.js +8 -4
  103. package/dist/esm/Inspectable.js.map +1 -1
  104. package/dist/esm/JSONSchema.js.map +1 -1
  105. package/dist/esm/Micro.js +1077 -1047
  106. package/dist/esm/Micro.js.map +1 -1
  107. package/dist/esm/STM.js.map +1 -1
  108. package/dist/esm/Schema.js +54 -0
  109. package/dist/esm/Schema.js.map +1 -1
  110. package/dist/esm/Sink.js +8 -0
  111. package/dist/esm/Sink.js.map +1 -1
  112. package/dist/esm/Stream.js +23 -5
  113. package/dist/esm/Stream.js.map +1 -1
  114. package/dist/esm/Utils.js +5 -0
  115. package/dist/esm/Utils.js.map +1 -1
  116. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  117. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  118. package/dist/esm/internal/channel.js +152 -129
  119. package/dist/esm/internal/channel.js.map +1 -1
  120. package/dist/esm/internal/config.js +11 -3
  121. package/dist/esm/internal/config.js.map +1 -1
  122. package/dist/esm/internal/context.js +42 -2
  123. package/dist/esm/internal/context.js.map +1 -1
  124. package/dist/esm/internal/dateTime.js +704 -0
  125. package/dist/esm/internal/dateTime.js.map +1 -0
  126. package/dist/esm/internal/fiberRuntime.js +31 -9
  127. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  128. package/dist/esm/internal/groupBy.js +9 -3
  129. package/dist/esm/internal/groupBy.js.map +1 -1
  130. package/dist/esm/internal/layer.js +1 -1
  131. package/dist/esm/internal/layer.js.map +1 -1
  132. package/dist/esm/internal/mailbox.js +1 -1
  133. package/dist/esm/internal/mailbox.js.map +1 -1
  134. package/dist/esm/internal/sink.js +23 -20
  135. package/dist/esm/internal/sink.js.map +1 -1
  136. package/dist/esm/internal/stream.js +66 -69
  137. package/dist/esm/internal/stream.js.map +1 -1
  138. package/dist/esm/internal/version.js +1 -1
  139. package/dist/esm/internal/version.js.map +1 -1
  140. package/package.json +1 -1
  141. package/src/BigDecimal.ts +131 -21
  142. package/src/Channel.ts +81 -5
  143. package/src/Config.ts +24 -1
  144. package/src/Context.ts +119 -0
  145. package/src/Cron.ts +85 -68
  146. package/src/DateTime.ts +155 -757
  147. package/src/Effect.ts +340 -1
  148. package/src/Inspectable.ts +11 -7
  149. package/src/JSONSchema.ts +1 -0
  150. package/src/Micro.ts +2005 -1757
  151. package/src/STM.ts +2 -0
  152. package/src/Schema.ts +60 -0
  153. package/src/Sink.ts +11 -0
  154. package/src/Stream.ts +55 -44
  155. package/src/Utils.ts +8 -0
  156. package/src/internal/channel/channelExecutor.ts +37 -33
  157. package/src/internal/channel.ts +504 -467
  158. package/src/internal/config.ts +18 -6
  159. package/src/internal/context.ts +56 -4
  160. package/src/internal/dateTime.ts +1126 -0
  161. package/src/internal/fiberRuntime.ts +35 -16
  162. package/src/internal/groupBy.ts +13 -22
  163. package/src/internal/layer.ts +5 -8
  164. package/src/internal/mailbox.ts +6 -4
  165. package/src/internal/sink.ts +55 -35
  166. package/src/internal/stream.ts +299 -299
  167. package/src/internal/version.ts +1 -1
@@ -1,5 +1,6 @@
1
1
  import * as internal from "./internal/context.js";
2
2
  const TagTypeId = internal.TagTypeId;
3
+ const ReferenceTypeId = internal.ReferenceTypeId;
3
4
  /**
4
5
  * Creates a new `Tag` instance with an optional key parameter.
5
6
  *
@@ -54,6 +55,15 @@ export const isContext = internal.isContext;
54
55
  * @category guards
55
56
  */
56
57
  export const isTag = internal.isTag;
58
+ /**
59
+ * Checks if the provided argument is a `Reference`.
60
+ *
61
+ * @param input - The value to be checked if it is a `Reference`.
62
+ * @since 3.11.0
63
+ * @category guards
64
+ * @experimental
65
+ */
66
+ export const isReference = internal.isReference;
57
67
  /**
58
68
  * Returns an empty `Context`.
59
69
  *
@@ -266,4 +276,19 @@ export const omit = internal.omit;
266
276
  * @category constructors
267
277
  */
268
278
  export const Tag = internal.Tag;
279
+ /**
280
+ * @example
281
+ * import { Context, Layer } from "effect"
282
+ *
283
+ * class MyTag extends Context.Reference<MyTag>()("MyTag", {
284
+ * defaultValue: () => ({ myNum: 108 })
285
+ * }) {
286
+ * static Live = Layer.succeed(this, { myNum: 108 })
287
+ * }
288
+ *
289
+ * @since 3.11.0
290
+ * @category constructors
291
+ * @experimental
292
+ */
293
+ export const Reference = internal.Reference;
269
294
  //# sourceMappingURL=Context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","names":["internal","TagTypeId","GenericTag","makeGenericTag","TypeId","unsafeMake","makeContext","isContext","isTag","empty","make","add","get","getOrElse","unsafeGet","getOption","merge","pick","omit","Tag"],"sources":["../../src/Context.ts"],"sourcesContent":[null],"mappings":"AAYA,OAAO,KAAKA,QAAQ,MAAM,uBAAuB;AAMjD,MAAMC,SAAS,GAAkBD,QAAQ,CAACC,SAAS;AA+EnD;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,UAAU,GACrBF,QAAQ,CAACG,cAAc;AAEzB,MAAMC,MAAM,GAAkBJ,QAAQ,CAACI,MAAgB;AAyBvD;;;;AAIA,OAAO,MAAMC,UAAU,GAAiEL,QAAQ,CAACM,WAAW;AAE5G;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,SAAS,GAAgDP,QAAQ,CAACO,SAAS;AAExF;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,KAAK,GAA+CR,QAAQ,CAACQ,KAAK;AAE/E;;;;;;;;;;;;;AAaA,OAAO,MAAMC,KAAK,GAAyBT,QAAQ,CAACS,KAAK;AAEzD;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMC,IAAI,GACfV,QAAQ,CAACU,IAAI;AAEf;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,GAAG,GAwDZX,QAAQ,CAACW,GAAG;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMC,GAAG,GAmDZZ,QAAQ,CAACY,GAAG;AAEhB;;;;;;;AAOA,OAAO,MAAMC,SAAS,GAiBlBb,QAAQ,CAACa,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,SAAS,GAqDlBd,QAAQ,CAACc,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,SAAS,GAiDlBf,QAAQ,CAACe,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMC,KAAK,GAmDdhB,QAAQ,CAACgB,KAAK;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAMC,IAAI,GAE6EjB,QAAQ,CAACiB,IAAI;AAE3G;;;AAGA,OAAO,MAAMC,IAAI,GAGflB,QAAQ,CAACkB,IAAI;AAEf;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMC,GAAG,GAAsFnB,QAAQ,CAACmB,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"Context.js","names":["internal","TagTypeId","ReferenceTypeId","GenericTag","makeGenericTag","TypeId","unsafeMake","makeContext","isContext","isTag","isReference","empty","make","add","get","getOrElse","unsafeGet","getOption","merge","pick","omit","Tag","Reference"],"sources":["../../src/Context.ts"],"sourcesContent":[null],"mappings":"AAYA,OAAO,KAAKA,QAAQ,MAAM,uBAAuB;AAMjD,MAAMC,SAAS,GAAkBD,QAAQ,CAACC,SAAS;AA6BnD,MAAMC,eAAe,GAAkBF,QAAQ,CAACE,eAAe;AA0F/D;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,UAAU,GACrBH,QAAQ,CAACI,cAAc;AAEzB,MAAMC,MAAM,GAAkBL,QAAQ,CAACK,MAAgB;AAyBvD;;;;AAIA,OAAO,MAAMC,UAAU,GAAiEN,QAAQ,CAACO,WAAW;AAE5G;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,SAAS,GAAgDR,QAAQ,CAACQ,SAAS;AAExF;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,KAAK,GAA+CT,QAAQ,CAACS,KAAK;AAE/E;;;;;;;;AAQA,OAAO,MAAMC,WAAW,GAA6CV,QAAQ,CAACU,WAAW;AAEzF;;;;;;;;;;;;;AAaA,OAAO,MAAMC,KAAK,GAAyBX,QAAQ,CAACW,KAAK;AAEzD;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAMC,IAAI,GACfZ,QAAQ,CAACY,IAAI;AAEf;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,GAAG,GAwDZb,QAAQ,CAACa,GAAG;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMC,GAAG,GAqGZd,QAAQ,CAACc,GAAG;AAEhB;;;;;;;AAOA,OAAO,MAAMC,SAAS,GAiBlBf,QAAQ,CAACe,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,SAAS,GAqDlBhB,QAAQ,CAACgB,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,SAAS,GAiDlBjB,QAAQ,CAACiB,SAAS;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAMC,KAAK,GAmDdlB,QAAQ,CAACkB,KAAK;AAElB;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAMC,IAAI,GAE6EnB,QAAQ,CAACmB,IAAI;AAE3G;;;AAGA,OAAO,MAAMC,IAAI,GAGfpB,QAAQ,CAACoB,IAAI;AAEf;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMC,GAAG,GAAsFrB,QAAQ,CAACqB,GAAG;AAElH;;;;;;;;;;;;;;AAcA,OAAO,MAAMC,SAAS,GAGmBtB,QAAQ,CAACsB,SAAS","ignoreList":[]}
package/dist/esm/Cron.js CHANGED
@@ -8,7 +8,9 @@ import * as equivalence from "./Equivalence.js";
8
8
  import { dual, pipe } from "./Function.js";
9
9
  import * as Hash from "./Hash.js";
10
10
  import { format, NodeInspectSymbol } from "./Inspectable.js";
11
+ import * as dateTime from "./internal/dateTime.js";
11
12
  import * as N from "./Number.js";
13
+ import * as Option from "./Option.js";
12
14
  import { pipeArguments } from "./Pipeable.js";
13
15
  import { hasProperty } from "./Predicate.js";
14
16
  import * as String from "./String.js";
@@ -23,7 +25,7 @@ const CronProto = {
23
25
  return isCron(that) && equals(this, that);
24
26
  },
25
27
  [Hash.symbol]() {
26
- return pipe(Hash.array(Arr.fromIterable(this.minutes)), Hash.combine(Hash.array(Arr.fromIterable(this.hours))), Hash.combine(Hash.array(Arr.fromIterable(this.days))), Hash.combine(Hash.array(Arr.fromIterable(this.months))), Hash.combine(Hash.array(Arr.fromIterable(this.weekdays))), Hash.cached(this));
28
+ return pipe(Hash.hash(this.tz), Hash.combine(Hash.array(Arr.fromIterable(this.minutes))), Hash.combine(Hash.array(Arr.fromIterable(this.hours))), Hash.combine(Hash.array(Arr.fromIterable(this.days))), Hash.combine(Hash.array(Arr.fromIterable(this.months))), Hash.combine(Hash.array(Arr.fromIterable(this.weekdays))), Hash.cached(this));
27
29
  },
28
30
  toString() {
29
31
  return format(this.toJSON());
@@ -31,6 +33,7 @@ const CronProto = {
31
33
  toJSON() {
32
34
  return {
33
35
  _id: "Cron",
36
+ tz: this.tz,
34
37
  minutes: Arr.fromIterable(this.minutes),
35
38
  hours: Arr.fromIterable(this.hours),
36
39
  days: Arr.fromIterable(this.days),
@@ -55,7 +58,7 @@ const CronProto = {
55
58
  */
56
59
  export const isCron = u => hasProperty(u, TypeId);
57
60
  /**
58
- * Creates a `Cron` instance from.
61
+ * Creates a `Cron` instance.
59
62
  *
60
63
  * @param constraints - The cron constraints.
61
64
  *
@@ -67,6 +70,7 @@ export const make = ({
67
70
  hours,
68
71
  minutes,
69
72
  months,
73
+ tz,
70
74
  weekdays
71
75
  }) => {
72
76
  const o = Object.create(CronProto);
@@ -75,6 +79,7 @@ export const make = ({
75
79
  o.days = new Set(Arr.sort(days, N.Order));
76
80
  o.months = new Set(Arr.sort(months, N.Order));
77
81
  o.weekdays = new Set(Arr.sort(weekdays, N.Order));
82
+ o.tz = Option.fromNullable(tz);
78
83
  return o;
79
84
  };
80
85
  /**
@@ -125,7 +130,7 @@ export const isParseError = u => hasProperty(u, ParseErrorTypeId);
125
130
  * @since 2.0.0
126
131
  * @category constructors
127
132
  */
128
- export const parse = cron => {
133
+ export const parse = (cron, tz) => {
129
134
  const segments = cron.split(" ").filter(String.isNonEmpty);
130
135
  if (segments.length !== 5) {
131
136
  return Either.left(ParseError(`Invalid number of segments in cron expression`, cron));
@@ -137,11 +142,16 @@ export const parse = cron => {
137
142
  days: parseSegment(days, dayOptions),
138
143
  months: parseSegment(months, monthOptions),
139
144
  weekdays: parseSegment(weekdays, weekdayOptions)
140
- }).pipe(Either.map(segments => make(segments)));
145
+ }).pipe(Either.map(segments => make({
146
+ ...segments,
147
+ tz
148
+ })));
141
149
  };
142
150
  /**
143
151
  * Checks if a given `Date` falls within an active `Cron` time window.
144
152
  *
153
+ * @throws `IllegalArgumentException` if the given `DateTime.Input` is invalid.
154
+ *
145
155
  * @param cron - The `Cron` instance.
146
156
  * @param date - The `Date` to check against.
147
157
  *
@@ -157,43 +167,37 @@ export const parse = cron => {
157
167
  * @since 2.0.0
158
168
  */
159
169
  export const match = (cron, date) => {
160
- const {
161
- days,
162
- hours,
163
- minutes,
164
- months,
165
- weekdays
166
- } = cron;
167
- const minute = date.getMinutes();
168
- if (minutes.size !== 0 && !minutes.has(minute)) {
170
+ const zoned = dateTime.unsafeMakeZoned(date);
171
+ const adjusted = Option.isSome(cron.tz) ? dateTime.setZone(zoned, cron.tz.value) : zoned;
172
+ const parts = dateTime.toParts(adjusted);
173
+ if (cron.minutes.size !== 0 && !cron.minutes.has(parts.minutes)) {
169
174
  return false;
170
175
  }
171
- const hour = date.getHours();
172
- if (hours.size !== 0 && !hours.has(hour)) {
176
+ if (cron.hours.size !== 0 && !cron.hours.has(parts.hours)) {
173
177
  return false;
174
178
  }
175
- const month = date.getMonth() + 1;
176
- if (months.size !== 0 && !months.has(month)) {
179
+ if (cron.months.size !== 0 && !cron.months.has(parts.month)) {
177
180
  return false;
178
181
  }
179
- if (days.size === 0 && weekdays.size === 0) {
182
+ if (cron.days.size === 0 && cron.weekdays.size === 0) {
180
183
  return true;
181
184
  }
182
- const day = date.getDate();
183
- if (weekdays.size === 0) {
184
- return days.has(day);
185
+ if (cron.weekdays.size === 0) {
186
+ return cron.days.has(parts.day);
185
187
  }
186
- const weekday = date.getDay();
187
- if (days.size === 0) {
188
- return weekdays.has(weekday);
188
+ if (cron.days.size === 0) {
189
+ return cron.weekdays.has(parts.weekDay);
189
190
  }
190
- return days.has(day) || weekdays.has(weekday);
191
+ return cron.days.has(parts.day) || cron.weekdays.has(parts.weekDay);
191
192
  };
192
193
  /**
193
194
  * Returns the next run `Date` for the given `Cron` instance.
194
195
  *
195
196
  * Uses the current time as a starting point if no value is provided for `now`.
196
197
  *
198
+ * @throws `IllegalArgumentException` if the given `DateTime.Input` is invalid.
199
+ * @throws `Error` if the next run date cannot be found within 10,000 iterations.
200
+ *
197
201
  * @example
198
202
  * ```ts
199
203
  * import { Cron, Either } from "effect"
@@ -221,55 +225,59 @@ export const next = (cron, now) => {
221
225
  const restrictDays = days.size !== 0;
222
226
  const restrictMonths = months.size !== 0;
223
227
  const restrictWeekdays = weekdays.size !== 0;
224
- const current = now ? new Date(now.getTime()) : new Date();
225
- // Increment by one minute to ensure we don't match the current date.
226
- current.setMinutes(current.getMinutes() + 1);
227
- current.setSeconds(0);
228
- current.setMilliseconds(0);
229
- // Only search 8 years into the future.
230
- const limit = new Date(current).setFullYear(current.getFullYear() + 8);
231
- while (current.getTime() <= limit) {
232
- if (restrictMonths && !months.has(current.getMonth() + 1)) {
233
- current.setMonth(current.getMonth() + 1);
234
- current.setDate(1);
235
- current.setHours(0);
236
- current.setMinutes(0);
237
- continue;
238
- }
239
- if (restrictDays && restrictWeekdays) {
240
- if (!days.has(current.getDate()) && !weekdays.has(current.getDay())) {
241
- current.setDate(current.getDate() + 1);
242
- current.setHours(0);
243
- current.setMinutes(0);
228
+ // TODO: This is unsafe.
229
+ const zoned = dateTime.unsafeMakeZoned(now ?? new Date());
230
+ const adjusted = Option.isSome(cron.tz) ? dateTime.setZone(zoned, cron.tz.value) : zoned;
231
+ // TODO: This algorithm can be optimized to avoid some unnecessary iterations.
232
+ const result = dateTime.mutate(adjusted, current => {
233
+ // Increment by one minute to ensure we don't match the current date.
234
+ current.setUTCMinutes(current.getUTCMinutes() + 1);
235
+ current.setUTCSeconds(0);
236
+ current.setUTCMilliseconds(0);
237
+ for (let i = 0; i < 10_000; i++) {
238
+ if (restrictMonths && !months.has(current.getUTCMonth() + 1)) {
239
+ current.setUTCMonth(current.getUTCMonth() + 1);
240
+ current.setUTCDate(1);
241
+ current.setUTCHours(0);
242
+ current.setUTCMinutes(0);
244
243
  continue;
245
244
  }
246
- } else if (restrictDays) {
247
- if (!days.has(current.getDate())) {
248
- current.setDate(current.getDate() + 1);
249
- current.setHours(0);
250
- current.setMinutes(0);
245
+ if (restrictDays && restrictWeekdays) {
246
+ if (!days.has(current.getUTCDate()) && !weekdays.has(current.getUTCDay())) {
247
+ current.setUTCDate(current.getUTCDate() + 1);
248
+ current.setUTCHours(0);
249
+ current.setUTCMinutes(0);
250
+ continue;
251
+ }
252
+ } else if (restrictDays) {
253
+ if (!days.has(current.getUTCDate())) {
254
+ current.setUTCDate(current.getUTCDate() + 1);
255
+ current.setUTCHours(0);
256
+ current.setUTCMinutes(0);
257
+ continue;
258
+ }
259
+ } else if (restrictWeekdays) {
260
+ if (!weekdays.has(current.getUTCDay())) {
261
+ current.setUTCDate(current.getUTCDate() + 1);
262
+ current.setUTCHours(0);
263
+ current.setUTCMinutes(0);
264
+ continue;
265
+ }
266
+ }
267
+ if (restrictHours && !hours.has(current.getUTCHours())) {
268
+ current.setUTCHours(current.getUTCHours() + 1);
269
+ current.setUTCMinutes(0);
251
270
  continue;
252
271
  }
253
- } else if (restrictWeekdays) {
254
- if (!weekdays.has(current.getDay())) {
255
- current.setDate(current.getDate() + 1);
256
- current.setHours(0);
257
- current.setMinutes(0);
272
+ if (restrictMinutes && !minutes.has(current.getUTCMinutes())) {
273
+ current.setUTCMinutes(current.getUTCMinutes() + 1);
258
274
  continue;
259
275
  }
276
+ return;
260
277
  }
261
- if (restrictHours && !hours.has(current.getHours())) {
262
- current.setHours(current.getHours() + 1);
263
- current.setMinutes(0);
264
- continue;
265
- }
266
- if (restrictMinutes && !minutes.has(current.getMinutes())) {
267
- current.setMinutes(current.getMinutes() + 1);
268
- continue;
269
- }
270
- return current;
271
- }
272
- throw new Error("Unable to find next cron date");
278
+ throw new Error("Unable to find next cron date");
279
+ });
280
+ return dateTime.toDateUtc(result);
273
281
  };
274
282
  /**
275
283
  * Returns an `IterableIterator` which yields the sequence of `Date`s that match the `Cron` instance.
@@ -1 +1 @@
1
- {"version":3,"file":"Cron.js","names":["Arr","Either","Equal","equivalence","dual","pipe","Hash","format","NodeInspectSymbol","N","pipeArguments","hasProperty","String","TypeId","Symbol","for","CronProto","symbol","that","isCron","equals","array","fromIterable","minutes","combine","hours","days","months","weekdays","cached","toString","toJSON","_id","arguments","u","make","o","Object","create","Set","sort","Order","ParseErrorTypeId","ParseErrorProto","_tag","ParseError","message","input","undefined","isParseError","parse","cron","segments","split","filter","isNonEmpty","length","left","all","parseSegment","minuteOptions","hourOptions","dayOptions","monthOptions","weekdayOptions","map","match","date","minute","getMinutes","size","has","hour","getHours","month","getMonth","day","getDate","weekday","getDay","next","now","restrictMinutes","restrictHours","restrictDays","restrictMonths","restrictWeekdays","current","Date","getTime","setMinutes","setSeconds","setMilliseconds","limit","setFullYear","getFullYear","setMonth","setDate","setHours","Error","sequence","Equivalence","self","restrictionsEquals","restrictionsArrayEquals","number","segment","min","max","aliases","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","sun","mon","tue","wed","thu","fri","sat","options","capacity","values","fields","field","raw","step","splitStep","right","Number","isInteger","i","add","splitRange","seperator","indexOf","slice","aliasOrValue","toLocaleLowerCase"],"sources":["../../src/Cron.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Cron.js","names":["Arr","Either","Equal","equivalence","dual","pipe","Hash","format","NodeInspectSymbol","dateTime","N","Option","pipeArguments","hasProperty","String","TypeId","Symbol","for","CronProto","symbol","that","isCron","equals","hash","tz","combine","array","fromIterable","minutes","hours","days","months","weekdays","cached","toString","toJSON","_id","arguments","u","make","o","Object","create","Set","sort","Order","fromNullable","ParseErrorTypeId","ParseErrorProto","_tag","ParseError","message","input","undefined","isParseError","parse","cron","segments","split","filter","isNonEmpty","length","left","all","parseSegment","minuteOptions","hourOptions","dayOptions","monthOptions","weekdayOptions","map","match","date","zoned","unsafeMakeZoned","adjusted","isSome","setZone","value","parts","toParts","size","has","month","day","weekDay","next","now","restrictMinutes","restrictHours","restrictDays","restrictMonths","restrictWeekdays","Date","result","mutate","current","setUTCMinutes","getUTCMinutes","setUTCSeconds","setUTCMilliseconds","i","getUTCMonth","setUTCMonth","setUTCDate","setUTCHours","getUTCDate","getUTCDay","getUTCHours","Error","toDateUtc","sequence","Equivalence","self","restrictionsEquals","restrictionsArrayEquals","number","segment","min","max","aliases","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","sun","mon","tue","wed","thu","fri","sat","options","capacity","values","fields","field","raw","step","splitStep","right","Number","isInteger","add","splitRange","seperator","indexOf","slice","aliasOrValue","toLocaleLowerCase"],"sources":["../../src/Cron.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}