effect 3.10.18 → 3.10.19

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 (348) hide show
  1. package/dist/cjs/Array.js +206 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +56 -0
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +54 -0
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +24 -0
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +4 -0
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Chunk.js +8 -0
  12. package/dist/cjs/Chunk.js.map +1 -1
  13. package/dist/cjs/Config.js +2 -0
  14. package/dist/cjs/Config.js.map +1 -1
  15. package/dist/cjs/Context.js +24 -0
  16. package/dist/cjs/Context.js.map +1 -1
  17. package/dist/cjs/Cron.js +6 -0
  18. package/dist/cjs/Cron.js.map +1 -1
  19. package/dist/cjs/Data.js +14 -0
  20. package/dist/cjs/Data.js.map +1 -1
  21. package/dist/cjs/DateTime.js +64 -0
  22. package/dist/cjs/DateTime.js.map +1 -1
  23. package/dist/cjs/Duration.js +2 -0
  24. package/dist/cjs/Duration.js.map +1 -1
  25. package/dist/cjs/Effect.js +214 -0
  26. package/dist/cjs/Effect.js.map +1 -1
  27. package/dist/cjs/Either.js +38 -2
  28. package/dist/cjs/Either.js.map +1 -1
  29. package/dist/cjs/FiberHandle.js +6 -0
  30. package/dist/cjs/FiberHandle.js.map +1 -1
  31. package/dist/cjs/FiberMap.js +6 -0
  32. package/dist/cjs/FiberMap.js.map +1 -1
  33. package/dist/cjs/FiberSet.js +6 -0
  34. package/dist/cjs/FiberSet.js.map +1 -1
  35. package/dist/cjs/Function.js +34 -0
  36. package/dist/cjs/Function.js.map +1 -1
  37. package/dist/cjs/GlobalValue.js +2 -0
  38. package/dist/cjs/GlobalValue.js.map +1 -1
  39. package/dist/cjs/HashMap.js.map +1 -1
  40. package/dist/cjs/Iterable.js +18 -0
  41. package/dist/cjs/Iterable.js.map +1 -1
  42. package/dist/cjs/List.js +4 -0
  43. package/dist/cjs/List.js.map +1 -1
  44. package/dist/cjs/Logger.js +26 -0
  45. package/dist/cjs/Logger.js.map +1 -1
  46. package/dist/cjs/Mailbox.js +2 -0
  47. package/dist/cjs/Mailbox.js.map +1 -1
  48. package/dist/cjs/ManagedRuntime.js +2 -0
  49. package/dist/cjs/ManagedRuntime.js.map +1 -1
  50. package/dist/cjs/Metric.js +10 -0
  51. package/dist/cjs/Metric.js.map +1 -1
  52. package/dist/cjs/Micro.js +8 -0
  53. package/dist/cjs/Micro.js.map +1 -1
  54. package/dist/cjs/Number.js +44 -0
  55. package/dist/cjs/Number.js.map +1 -1
  56. package/dist/cjs/Option.js +70 -0
  57. package/dist/cjs/Option.js.map +1 -1
  58. package/dist/cjs/Order.js +2 -0
  59. package/dist/cjs/Order.js.map +1 -1
  60. package/dist/cjs/Ordering.js +4 -0
  61. package/dist/cjs/Ordering.js.map +1 -1
  62. package/dist/cjs/Predicate.js +68 -0
  63. package/dist/cjs/Predicate.js.map +1 -1
  64. package/dist/cjs/Random.js +4 -0
  65. package/dist/cjs/Random.js.map +1 -1
  66. package/dist/cjs/RateLimiter.js +4 -0
  67. package/dist/cjs/RateLimiter.js.map +1 -1
  68. package/dist/cjs/RcMap.js +2 -0
  69. package/dist/cjs/RcMap.js.map +1 -1
  70. package/dist/cjs/RcRef.js +2 -0
  71. package/dist/cjs/RcRef.js.map +1 -1
  72. package/dist/cjs/Record.js +56 -0
  73. package/dist/cjs/Record.js.map +1 -1
  74. package/dist/cjs/Redacted.js +8 -0
  75. package/dist/cjs/Redacted.js.map +1 -1
  76. package/dist/cjs/RegExp.js +4 -0
  77. package/dist/cjs/RegExp.js.map +1 -1
  78. package/dist/cjs/Request.js +4 -0
  79. package/dist/cjs/Request.js.map +1 -1
  80. package/dist/cjs/RequestResolver.js +2 -0
  81. package/dist/cjs/RequestResolver.js.map +1 -1
  82. package/dist/cjs/Runtime.js +6 -0
  83. package/dist/cjs/Runtime.js.map +1 -1
  84. package/dist/cjs/Schema.js +34 -0
  85. package/dist/cjs/Schema.js.map +1 -1
  86. package/dist/cjs/Stream.js +154 -0
  87. package/dist/cjs/Stream.js.map +1 -1
  88. package/dist/cjs/String.js +62 -0
  89. package/dist/cjs/String.js.map +1 -1
  90. package/dist/cjs/Struct.js +12 -0
  91. package/dist/cjs/Struct.js.map +1 -1
  92. package/dist/cjs/Symbol.js +2 -0
  93. package/dist/cjs/Symbol.js.map +1 -1
  94. package/dist/cjs/Trie.js +56 -0
  95. package/dist/cjs/Trie.js.map +1 -1
  96. package/dist/cjs/Tuple.js +18 -0
  97. package/dist/cjs/Tuple.js.map +1 -1
  98. package/dist/cjs/internal/version.js +1 -1
  99. package/dist/dts/Array.d.ts +534 -0
  100. package/dist/dts/Array.d.ts.map +1 -1
  101. package/dist/dts/BigDecimal.d.ts +116 -0
  102. package/dist/dts/BigDecimal.d.ts.map +1 -1
  103. package/dist/dts/BigInt.d.ts +114 -0
  104. package/dist/dts/BigInt.d.ts.map +1 -1
  105. package/dist/dts/Boolean.d.ts +56 -0
  106. package/dist/dts/Boolean.d.ts.map +1 -1
  107. package/dist/dts/Brand.d.ts +6 -0
  108. package/dist/dts/Brand.d.ts.map +1 -1
  109. package/dist/dts/Chunk.d.ts +30 -0
  110. package/dist/dts/Chunk.d.ts.map +1 -1
  111. package/dist/dts/Config.d.ts +2 -0
  112. package/dist/dts/Config.d.ts.map +1 -1
  113. package/dist/dts/Context.d.ts +44 -0
  114. package/dist/dts/Context.d.ts.map +1 -1
  115. package/dist/dts/Cron.d.ts +6 -0
  116. package/dist/dts/Cron.d.ts.map +1 -1
  117. package/dist/dts/Data.d.ts +26 -0
  118. package/dist/dts/Data.d.ts.map +1 -1
  119. package/dist/dts/DateTime.d.ts +152 -0
  120. package/dist/dts/DateTime.d.ts.map +1 -1
  121. package/dist/dts/Duration.d.ts +2 -0
  122. package/dist/dts/Duration.d.ts.map +1 -1
  123. package/dist/dts/Effect.d.ts +570 -0
  124. package/dist/dts/Effect.d.ts.map +1 -1
  125. package/dist/dts/Either.d.ts +84 -2
  126. package/dist/dts/Either.d.ts.map +1 -1
  127. package/dist/dts/FiberHandle.d.ts +6 -0
  128. package/dist/dts/FiberHandle.d.ts.map +1 -1
  129. package/dist/dts/FiberMap.d.ts +6 -0
  130. package/dist/dts/FiberMap.d.ts.map +1 -1
  131. package/dist/dts/FiberSet.d.ts +6 -0
  132. package/dist/dts/FiberSet.d.ts.map +1 -1
  133. package/dist/dts/Function.d.ts +50 -0
  134. package/dist/dts/Function.d.ts.map +1 -1
  135. package/dist/dts/GlobalValue.d.ts +2 -0
  136. package/dist/dts/GlobalValue.d.ts.map +1 -1
  137. package/dist/dts/HashMap.d.ts +6 -0
  138. package/dist/dts/HashMap.d.ts.map +1 -1
  139. package/dist/dts/Iterable.d.ts +26 -0
  140. package/dist/dts/Iterable.d.ts.map +1 -1
  141. package/dist/dts/List.d.ts +20 -0
  142. package/dist/dts/List.d.ts.map +1 -1
  143. package/dist/dts/Logger.d.ts +34 -0
  144. package/dist/dts/Logger.d.ts.map +1 -1
  145. package/dist/dts/Mailbox.d.ts +2 -0
  146. package/dist/dts/Mailbox.d.ts.map +1 -1
  147. package/dist/dts/ManagedRuntime.d.ts +2 -0
  148. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  149. package/dist/dts/Metric.d.ts +18 -0
  150. package/dist/dts/Metric.d.ts.map +1 -1
  151. package/dist/dts/Micro.d.ts +14 -0
  152. package/dist/dts/Micro.d.ts.map +1 -1
  153. package/dist/dts/Number.d.ts +104 -0
  154. package/dist/dts/Number.d.ts.map +1 -1
  155. package/dist/dts/Option.d.ts +142 -0
  156. package/dist/dts/Option.d.ts.map +1 -1
  157. package/dist/dts/Order.d.ts +2 -0
  158. package/dist/dts/Order.d.ts.map +1 -1
  159. package/dist/dts/Ordering.d.ts +8 -0
  160. package/dist/dts/Ordering.d.ts.map +1 -1
  161. package/dist/dts/Predicate.d.ts +104 -0
  162. package/dist/dts/Predicate.d.ts.map +1 -1
  163. package/dist/dts/Random.d.ts +4 -0
  164. package/dist/dts/Random.d.ts.map +1 -1
  165. package/dist/dts/RateLimiter.d.ts +4 -0
  166. package/dist/dts/RateLimiter.d.ts.map +1 -1
  167. package/dist/dts/RcMap.d.ts +6 -0
  168. package/dist/dts/RcMap.d.ts.map +1 -1
  169. package/dist/dts/RcRef.d.ts +2 -0
  170. package/dist/dts/RcRef.d.ts.map +1 -1
  171. package/dist/dts/Record.d.ts +136 -0
  172. package/dist/dts/Record.d.ts.map +1 -1
  173. package/dist/dts/Redacted.d.ts +8 -0
  174. package/dist/dts/Redacted.d.ts.map +1 -1
  175. package/dist/dts/RegExp.d.ts +4 -0
  176. package/dist/dts/RegExp.d.ts.map +1 -1
  177. package/dist/dts/Request.d.ts +4 -0
  178. package/dist/dts/Request.d.ts.map +1 -1
  179. package/dist/dts/RequestResolver.d.ts +6 -0
  180. package/dist/dts/RequestResolver.d.ts.map +1 -1
  181. package/dist/dts/Runtime.d.ts +18 -0
  182. package/dist/dts/Runtime.d.ts.map +1 -1
  183. package/dist/dts/Schema.d.ts +58 -0
  184. package/dist/dts/Schema.d.ts.map +1 -1
  185. package/dist/dts/Stream.d.ts +344 -0
  186. package/dist/dts/Stream.d.ts.map +1 -1
  187. package/dist/dts/String.d.ts +94 -0
  188. package/dist/dts/String.d.ts.map +1 -1
  189. package/dist/dts/Struct.d.ts +24 -0
  190. package/dist/dts/Struct.d.ts.map +1 -1
  191. package/dist/dts/Symbol.d.ts +2 -0
  192. package/dist/dts/Symbol.d.ts.map +1 -1
  193. package/dist/dts/Trie.d.ts +132 -0
  194. package/dist/dts/Trie.d.ts.map +1 -1
  195. package/dist/dts/Tuple.d.ts +42 -0
  196. package/dist/dts/Tuple.d.ts.map +1 -1
  197. package/dist/dts/Types.d.ts +24 -0
  198. package/dist/dts/Types.d.ts.map +1 -1
  199. package/dist/esm/Array.js +208 -0
  200. package/dist/esm/Array.js.map +1 -1
  201. package/dist/esm/BigDecimal.js +56 -0
  202. package/dist/esm/BigDecimal.js.map +1 -1
  203. package/dist/esm/BigInt.js +54 -0
  204. package/dist/esm/BigInt.js.map +1 -1
  205. package/dist/esm/Boolean.js +24 -0
  206. package/dist/esm/Boolean.js.map +1 -1
  207. package/dist/esm/Brand.js +4 -0
  208. package/dist/esm/Brand.js.map +1 -1
  209. package/dist/esm/Chunk.js +8 -0
  210. package/dist/esm/Chunk.js.map +1 -1
  211. package/dist/esm/Config.js +2 -0
  212. package/dist/esm/Config.js.map +1 -1
  213. package/dist/esm/Context.js +24 -0
  214. package/dist/esm/Context.js.map +1 -1
  215. package/dist/esm/Cron.js +6 -0
  216. package/dist/esm/Cron.js.map +1 -1
  217. package/dist/esm/Data.js +16 -0
  218. package/dist/esm/Data.js.map +1 -1
  219. package/dist/esm/DateTime.js +64 -0
  220. package/dist/esm/DateTime.js.map +1 -1
  221. package/dist/esm/Duration.js +2 -0
  222. package/dist/esm/Duration.js.map +1 -1
  223. package/dist/esm/Effect.js +220 -0
  224. package/dist/esm/Effect.js.map +1 -1
  225. package/dist/esm/Either.js +40 -2
  226. package/dist/esm/Either.js.map +1 -1
  227. package/dist/esm/FiberHandle.js +6 -0
  228. package/dist/esm/FiberHandle.js.map +1 -1
  229. package/dist/esm/FiberMap.js +6 -0
  230. package/dist/esm/FiberMap.js.map +1 -1
  231. package/dist/esm/FiberSet.js +6 -0
  232. package/dist/esm/FiberSet.js.map +1 -1
  233. package/dist/esm/Function.js +34 -0
  234. package/dist/esm/Function.js.map +1 -1
  235. package/dist/esm/GlobalValue.js +2 -0
  236. package/dist/esm/GlobalValue.js.map +1 -1
  237. package/dist/esm/HashMap.js.map +1 -1
  238. package/dist/esm/Iterable.js +18 -0
  239. package/dist/esm/Iterable.js.map +1 -1
  240. package/dist/esm/List.js +4 -0
  241. package/dist/esm/List.js.map +1 -1
  242. package/dist/esm/Logger.js +26 -0
  243. package/dist/esm/Logger.js.map +1 -1
  244. package/dist/esm/Mailbox.js +2 -0
  245. package/dist/esm/Mailbox.js.map +1 -1
  246. package/dist/esm/ManagedRuntime.js +2 -0
  247. package/dist/esm/ManagedRuntime.js.map +1 -1
  248. package/dist/esm/Metric.js +10 -0
  249. package/dist/esm/Metric.js.map +1 -1
  250. package/dist/esm/Micro.js +10 -0
  251. package/dist/esm/Micro.js.map +1 -1
  252. package/dist/esm/Number.js +44 -0
  253. package/dist/esm/Number.js.map +1 -1
  254. package/dist/esm/Option.js +72 -0
  255. package/dist/esm/Option.js.map +1 -1
  256. package/dist/esm/Order.js +2 -0
  257. package/dist/esm/Order.js.map +1 -1
  258. package/dist/esm/Ordering.js +4 -0
  259. package/dist/esm/Ordering.js.map +1 -1
  260. package/dist/esm/Predicate.js +68 -0
  261. package/dist/esm/Predicate.js.map +1 -1
  262. package/dist/esm/Random.js +4 -0
  263. package/dist/esm/Random.js.map +1 -1
  264. package/dist/esm/RateLimiter.js +4 -0
  265. package/dist/esm/RateLimiter.js.map +1 -1
  266. package/dist/esm/RcMap.js +2 -0
  267. package/dist/esm/RcMap.js.map +1 -1
  268. package/dist/esm/RcRef.js +2 -0
  269. package/dist/esm/RcRef.js.map +1 -1
  270. package/dist/esm/Record.js +56 -0
  271. package/dist/esm/Record.js.map +1 -1
  272. package/dist/esm/Redacted.js +8 -0
  273. package/dist/esm/Redacted.js.map +1 -1
  274. package/dist/esm/RegExp.js +4 -0
  275. package/dist/esm/RegExp.js.map +1 -1
  276. package/dist/esm/Request.js +4 -0
  277. package/dist/esm/Request.js.map +1 -1
  278. package/dist/esm/RequestResolver.js +2 -0
  279. package/dist/esm/RequestResolver.js.map +1 -1
  280. package/dist/esm/Runtime.js +6 -0
  281. package/dist/esm/Runtime.js.map +1 -1
  282. package/dist/esm/Schema.js +34 -0
  283. package/dist/esm/Schema.js.map +1 -1
  284. package/dist/esm/Stream.js +160 -0
  285. package/dist/esm/Stream.js.map +1 -1
  286. package/dist/esm/String.js +62 -0
  287. package/dist/esm/String.js.map +1 -1
  288. package/dist/esm/Struct.js +12 -0
  289. package/dist/esm/Struct.js.map +1 -1
  290. package/dist/esm/Symbol.js +2 -0
  291. package/dist/esm/Symbol.js.map +1 -1
  292. package/dist/esm/Trie.js +56 -0
  293. package/dist/esm/Trie.js.map +1 -1
  294. package/dist/esm/Tuple.js +22 -0
  295. package/dist/esm/Tuple.js.map +1 -1
  296. package/dist/esm/internal/version.js +1 -1
  297. package/package.json +1 -1
  298. package/src/Array.ts +534 -0
  299. package/src/BigDecimal.ts +116 -0
  300. package/src/BigInt.ts +114 -0
  301. package/src/Boolean.ts +56 -0
  302. package/src/Brand.ts +6 -0
  303. package/src/Chunk.ts +32 -0
  304. package/src/Config.ts +2 -0
  305. package/src/Context.ts +44 -0
  306. package/src/Cron.ts +6 -0
  307. package/src/Data.ts +26 -0
  308. package/src/DateTime.ts +152 -0
  309. package/src/Duration.ts +2 -0
  310. package/src/Effect.ts +570 -0
  311. package/src/Either.ts +84 -2
  312. package/src/FiberHandle.ts +6 -0
  313. package/src/FiberMap.ts +6 -0
  314. package/src/FiberSet.ts +6 -0
  315. package/src/Function.ts +50 -0
  316. package/src/GlobalValue.ts +2 -0
  317. package/src/HashMap.ts +6 -0
  318. package/src/Iterable.ts +26 -0
  319. package/src/List.ts +24 -0
  320. package/src/Logger.ts +34 -0
  321. package/src/Mailbox.ts +2 -0
  322. package/src/ManagedRuntime.ts +2 -0
  323. package/src/Metric.ts +18 -0
  324. package/src/Micro.ts +14 -0
  325. package/src/Number.ts +104 -0
  326. package/src/Option.ts +142 -0
  327. package/src/Order.ts +2 -0
  328. package/src/Ordering.ts +8 -0
  329. package/src/Predicate.ts +104 -0
  330. package/src/Random.ts +4 -0
  331. package/src/RateLimiter.ts +4 -0
  332. package/src/RcMap.ts +6 -0
  333. package/src/RcRef.ts +2 -0
  334. package/src/Record.ts +136 -0
  335. package/src/Redacted.ts +8 -0
  336. package/src/RegExp.ts +4 -0
  337. package/src/Request.ts +4 -0
  338. package/src/RequestResolver.ts +6 -0
  339. package/src/Runtime.ts +18 -0
  340. package/src/Schema.ts +64 -0
  341. package/src/Stream.ts +344 -0
  342. package/src/String.ts +94 -0
  343. package/src/Struct.ts +24 -0
  344. package/src/Symbol.ts +2 -0
  345. package/src/Trie.ts +132 -0
  346. package/src/Tuple.ts +42 -0
  347. package/src/Types.ts +24 -0
  348. package/src/internal/version.ts +1 -1
package/src/DateTime.ts CHANGED
@@ -442,6 +442,7 @@ export const unsafeFromDate = (date: Date): Utc => {
442
442
  * @since 3.6.0
443
443
  * @category constructors
444
444
  * @example
445
+ * ```ts
445
446
  * import { DateTime } from "effect"
446
447
  *
447
448
  * // from Date
@@ -452,6 +453,7 @@ export const unsafeFromDate = (date: Date): Utc => {
452
453
  *
453
454
  * // from string
454
455
  * DateTime.unsafeMake("2024-01-01")
456
+ * ```
455
457
  */
456
458
  export const unsafeMake = <A extends DateTime.Input>(input: A): DateTime.PreserveZone<A> => {
457
459
  if (isDateTime(input)) {
@@ -476,9 +478,11 @@ export const unsafeMake = <A extends DateTime.Input>(input: A): DateTime.Preserv
476
478
  * @since 3.6.0
477
479
  * @category constructors
478
480
  * @example
481
+ * ```ts
479
482
  * import { DateTime } from "effect"
480
483
  *
481
484
  * DateTime.unsafeMakeZoned(new Date(), { timeZone: "Europe/London" })
485
+ * ```
482
486
  */
483
487
  export const unsafeMakeZoned = (input: DateTime.Input, options?: {
484
488
  readonly timeZone?: number | string | TimeZone | undefined
@@ -519,9 +523,11 @@ export const unsafeMakeZoned = (input: DateTime.Input, options?: {
519
523
  * @since 3.6.0
520
524
  * @category constructors
521
525
  * @example
526
+ * ```ts
522
527
  * import { DateTime } from "effect"
523
528
  *
524
529
  * DateTime.makeZoned(new Date(), { timeZone: "Europe/London" })
530
+ * ```
525
531
  */
526
532
  export const makeZoned: (
527
533
  input: DateTime.Input,
@@ -545,6 +551,7 @@ export const makeZoned: (
545
551
  * @since 3.6.0
546
552
  * @category constructors
547
553
  * @example
554
+ * ```ts
548
555
  * import { DateTime } from "effect"
549
556
  *
550
557
  * // from Date
@@ -555,6 +562,7 @@ export const makeZoned: (
555
562
  *
556
563
  * // from string
557
564
  * DateTime.make("2024-01-01")
565
+ * ```
558
566
  */
559
567
  export const make: <A extends DateTime.Input>(input: A) => Option.Option<DateTime.PreserveZone<A>> = Option
560
568
  .liftThrowable(unsafeMake)
@@ -585,11 +593,13 @@ export const makeZonedFromString = (input: string): Option.Option<Zoned> => {
585
593
  * @since 3.6.0
586
594
  * @category constructors
587
595
  * @example
596
+ * ```ts
588
597
  * import { DateTime, Effect } from "effect"
589
598
  *
590
599
  * Effect.gen(function* () {
591
600
  * const now = yield* DateTime.now
592
601
  * })
602
+ * ```
593
603
  */
594
604
  export const now: Effect.Effect<Utc> = Effect.map(Clock.currentTimeMillis, makeUtc)
595
605
 
@@ -611,6 +621,7 @@ export const unsafeNow: LazyArg<Utc> = () => makeUtc(Date.now())
611
621
  * @since 3.6.0
612
622
  * @category time zones
613
623
  * @example
624
+ * ```ts
614
625
  * import { DateTime, Effect } from "effect"
615
626
  *
616
627
  * Effect.gen(function* () {
@@ -620,6 +631,7 @@ export const unsafeNow: LazyArg<Utc> = () => makeUtc(Date.now())
620
631
  * // set the time zone
621
632
  * const zoned: DateTime.Zoned = DateTime.setZone(now, zone)
622
633
  * })
634
+ * ```
623
635
  */
624
636
  export const setZone: {
625
637
  // =============================================================================
@@ -632,6 +644,7 @@ export const setZone: {
632
644
  * @since 3.6.0
633
645
  * @category time zones
634
646
  * @example
647
+ * ```ts
635
648
  * import { DateTime, Effect } from "effect"
636
649
  *
637
650
  * Effect.gen(function* () {
@@ -641,6 +654,7 @@ export const setZone: {
641
654
  * // set the time zone
642
655
  * const zoned: DateTime.Zoned = DateTime.setZone(now, zone)
643
656
  * })
657
+ * ```
644
658
  */
645
659
  (
646
660
  zone: TimeZone,
@@ -658,6 +672,7 @@ export const setZone: {
658
672
  * @since 3.6.0
659
673
  * @category time zones
660
674
  * @example
675
+ * ```ts
661
676
  * import { DateTime, Effect } from "effect"
662
677
  *
663
678
  * Effect.gen(function* () {
@@ -667,6 +682,7 @@ export const setZone: {
667
682
  * // set the time zone
668
683
  * const zoned: DateTime.Zoned = DateTime.setZone(now, zone)
669
684
  * })
685
+ * ```
670
686
  */
671
687
  (
672
688
  self: DateTime,
@@ -690,6 +706,7 @@ export const setZone: {
690
706
  * @since 3.6.0
691
707
  * @category time zones
692
708
  * @example
709
+ * ```ts
693
710
  * import { DateTime, Effect } from "effect"
694
711
  *
695
712
  * Effect.gen(function* () {
@@ -698,6 +715,7 @@ export const setZone: {
698
715
  * // set the offset time zone in milliseconds
699
716
  * const zoned: DateTime.Zoned = DateTime.setZoneOffset(now, 3 * 60 * 60 * 1000)
700
717
  * })
718
+ * ```
701
719
  */
702
720
  export const setZoneOffset: {
703
721
  /**
@@ -708,6 +726,7 @@ export const setZoneOffset: {
708
726
  * @since 3.6.0
709
727
  * @category time zones
710
728
  * @example
729
+ * ```ts
711
730
  * import { DateTime, Effect } from "effect"
712
731
  *
713
732
  * Effect.gen(function* () {
@@ -716,6 +735,7 @@ export const setZoneOffset: {
716
735
  * // set the offset time zone in milliseconds
717
736
  * const zoned: DateTime.Zoned = DateTime.setZoneOffset(now, 3 * 60 * 60 * 1000)
718
737
  * })
738
+ * ```
719
739
  */
720
740
  (
721
741
  offset: number,
@@ -731,6 +751,7 @@ export const setZoneOffset: {
731
751
  * @since 3.6.0
732
752
  * @category time zones
733
753
  * @example
754
+ * ```ts
734
755
  * import { DateTime, Effect } from "effect"
735
756
  *
736
757
  * Effect.gen(function* () {
@@ -739,6 +760,7 @@ export const setZoneOffset: {
739
760
  * // set the offset time zone in milliseconds
740
761
  * const zoned: DateTime.Zoned = DateTime.setZoneOffset(now, 3 * 60 * 60 * 1000)
741
762
  * })
763
+ * ```
742
764
  */
743
765
  (
744
766
  self: DateTime,
@@ -867,6 +889,7 @@ export const zoneFromString = (zone: string): Option.Option<TimeZone> => {
867
889
  * @since 3.6.0
868
890
  * @category time zones
869
891
  * @example
892
+ * ```ts
870
893
  * import { DateTime, Effect } from "effect"
871
894
  *
872
895
  * // Outputs "+03:00"
@@ -874,6 +897,7 @@ export const zoneFromString = (zone: string): Option.Option<TimeZone> => {
874
897
  *
875
898
  * // Outputs "Europe/London"
876
899
  * DateTime.zoneToString(DateTime.zoneUnsafeMakeNamed("Europe/London"))
900
+ * ```
877
901
  */
878
902
  export const zoneToString = (self: TimeZone): string => {
879
903
  if (self._tag === "Offset") {
@@ -889,6 +913,7 @@ export const zoneToString = (self: TimeZone): string => {
889
913
  * @since 3.6.0
890
914
  * @category time zones
891
915
  * @example
916
+ * ```ts
892
917
  * import { DateTime, Effect } from "effect"
893
918
  *
894
919
  * Effect.gen(function* () {
@@ -896,6 +921,7 @@ export const zoneToString = (self: TimeZone): string => {
896
921
  * // set the time zone, returns an Option
897
922
  * DateTime.setZoneNamed(now, "Europe/London")
898
923
  * })
924
+ * ```
899
925
  */
900
926
  export const setZoneNamed: {
901
927
  /**
@@ -905,6 +931,7 @@ export const setZoneNamed: {
905
931
  * @since 3.6.0
906
932
  * @category time zones
907
933
  * @example
934
+ * ```ts
908
935
  * import { DateTime, Effect } from "effect"
909
936
  *
910
937
  * Effect.gen(function* () {
@@ -912,6 +939,7 @@ export const setZoneNamed: {
912
939
  * // set the time zone, returns an Option
913
940
  * DateTime.setZoneNamed(now, "Europe/London")
914
941
  * })
942
+ * ```
915
943
  */
916
944
  (
917
945
  zoneId: string,
@@ -926,6 +954,7 @@ export const setZoneNamed: {
926
954
  * @since 3.6.0
927
955
  * @category time zones
928
956
  * @example
957
+ * ```ts
929
958
  * import { DateTime, Effect } from "effect"
930
959
  *
931
960
  * Effect.gen(function* () {
@@ -933,6 +962,7 @@ export const setZoneNamed: {
933
962
  * // set the time zone, returns an Option
934
963
  * DateTime.setZoneNamed(now, "Europe/London")
935
964
  * })
965
+ * ```
936
966
  */
937
967
  (
938
968
  self: DateTime,
@@ -955,6 +985,7 @@ export const setZoneNamed: {
955
985
  * @since 3.6.0
956
986
  * @category time zones
957
987
  * @example
988
+ * ```ts
958
989
  * import { DateTime, Effect } from "effect"
959
990
  *
960
991
  * Effect.gen(function* () {
@@ -962,6 +993,7 @@ export const setZoneNamed: {
962
993
  * // set the time zone
963
994
  * DateTime.unsafeSetZoneNamed(now, "Europe/London")
964
995
  * })
996
+ * ```
965
997
  */
966
998
  export const unsafeSetZoneNamed: {
967
999
  /**
@@ -971,6 +1003,7 @@ export const unsafeSetZoneNamed: {
971
1003
  * @since 3.6.0
972
1004
  * @category time zones
973
1005
  * @example
1006
+ * ```ts
974
1007
  * import { DateTime, Effect } from "effect"
975
1008
  *
976
1009
  * Effect.gen(function* () {
@@ -978,6 +1011,7 @@ export const unsafeSetZoneNamed: {
978
1011
  * // set the time zone
979
1012
  * DateTime.unsafeSetZoneNamed(now, "Europe/London")
980
1013
  * })
1014
+ * ```
981
1015
  */
982
1016
  (
983
1017
  zoneId: string,
@@ -992,6 +1026,7 @@ export const unsafeSetZoneNamed: {
992
1026
  * @since 3.6.0
993
1027
  * @category time zones
994
1028
  * @example
1029
+ * ```ts
995
1030
  * import { DateTime, Effect } from "effect"
996
1031
  *
997
1032
  * Effect.gen(function* () {
@@ -999,6 +1034,7 @@ export const unsafeSetZoneNamed: {
999
1034
  * // set the time zone
1000
1035
  * DateTime.unsafeSetZoneNamed(now, "Europe/London")
1001
1036
  * })
1037
+ * ```
1002
1038
  */
1003
1039
  (
1004
1040
  self: DateTime,
@@ -1024,6 +1060,7 @@ export const unsafeSetZoneNamed: {
1024
1060
  * @since 3.6.0
1025
1061
  * @category comparisons
1026
1062
  * @example
1063
+ * ```ts
1027
1064
  * import { DateTime, Effect } from "effect"
1028
1065
  *
1029
1066
  * Effect.gen(function* () {
@@ -1033,6 +1070,7 @@ export const unsafeSetZoneNamed: {
1033
1070
  * // returns 60000
1034
1071
  * DateTime.distance(now, other)
1035
1072
  * })
1073
+ * ```
1036
1074
  */
1037
1075
  export const distance: {
1038
1076
  // =============================================================================
@@ -1048,6 +1086,7 @@ export const distance: {
1048
1086
  * @since 3.6.0
1049
1087
  * @category comparisons
1050
1088
  * @example
1089
+ * ```ts
1051
1090
  * import { DateTime, Effect } from "effect"
1052
1091
  *
1053
1092
  * Effect.gen(function* () {
@@ -1057,6 +1096,7 @@ export const distance: {
1057
1096
  * // returns 60000
1058
1097
  * DateTime.distance(now, other)
1059
1098
  * })
1099
+ * ```
1060
1100
  */
1061
1101
  (other: DateTime): (self: DateTime) => number
1062
1102
  // =============================================================================
@@ -1072,6 +1112,7 @@ export const distance: {
1072
1112
  * @since 3.6.0
1073
1113
  * @category comparisons
1074
1114
  * @example
1115
+ * ```ts
1075
1116
  * import { DateTime, Effect } from "effect"
1076
1117
  *
1077
1118
  * Effect.gen(function* () {
@@ -1081,6 +1122,7 @@ export const distance: {
1081
1122
  * // returns 60000
1082
1123
  * DateTime.distance(now, other)
1083
1124
  * })
1125
+ * ```
1084
1126
  */
1085
1127
  (self: DateTime, other: DateTime): number
1086
1128
  } = dual(2, (self: DateTime, other: DateTime): number => toEpochMillis(other) - toEpochMillis(self))
@@ -1097,6 +1139,7 @@ export const distance: {
1097
1139
  * @since 3.6.0
1098
1140
  * @category comparisons
1099
1141
  * @example
1142
+ * ```ts
1100
1143
  * import { DateTime, Effect } from "effect"
1101
1144
  *
1102
1145
  * Effect.gen(function* () {
@@ -1109,6 +1152,7 @@ export const distance: {
1109
1152
  * // returns Either.left(Duration.minutes(1))
1110
1153
  * DateTime.distanceDurationEither(other, now)
1111
1154
  * })
1155
+ * ```
1112
1156
  */
1113
1157
  export const distanceDurationEither: {
1114
1158
  /**
@@ -1123,6 +1167,7 @@ export const distanceDurationEither: {
1123
1167
  * @since 3.6.0
1124
1168
  * @category comparisons
1125
1169
  * @example
1170
+ * ```ts
1126
1171
  * import { DateTime, Effect } from "effect"
1127
1172
  *
1128
1173
  * Effect.gen(function* () {
@@ -1135,6 +1180,7 @@ export const distanceDurationEither: {
1135
1180
  * // returns Either.left(Duration.minutes(1))
1136
1181
  * DateTime.distanceDurationEither(other, now)
1137
1182
  * })
1183
+ * ```
1138
1184
  */
1139
1185
  (other: DateTime): (self: DateTime) => Either.Either<Duration.Duration, Duration.Duration>
1140
1186
  /**
@@ -1149,6 +1195,7 @@ export const distanceDurationEither: {
1149
1195
  * @since 3.6.0
1150
1196
  * @category comparisons
1151
1197
  * @example
1198
+ * ```ts
1152
1199
  * import { DateTime, Effect } from "effect"
1153
1200
  *
1154
1201
  * Effect.gen(function* () {
@@ -1161,6 +1208,7 @@ export const distanceDurationEither: {
1161
1208
  * // returns Either.left(Duration.minutes(1))
1162
1209
  * DateTime.distanceDurationEither(other, now)
1163
1210
  * })
1211
+ * ```
1164
1212
  */
1165
1213
  (self: DateTime, other: DateTime): Either.Either<Duration.Duration, Duration.Duration>
1166
1214
  } = dual(2, (self: DateTime, other: DateTime): Either.Either<Duration.Duration, Duration.Duration> => {
@@ -1176,6 +1224,7 @@ export const distanceDurationEither: {
1176
1224
  * @since 3.6.0
1177
1225
  * @category comparisons
1178
1226
  * @example
1227
+ * ```ts
1179
1228
  * import { DateTime, Effect } from "effect"
1180
1229
  *
1181
1230
  * Effect.gen(function* () {
@@ -1185,6 +1234,7 @@ export const distanceDurationEither: {
1185
1234
  * // returns Duration.minutes(1)
1186
1235
  * DateTime.distanceDuration(now, other)
1187
1236
  * })
1237
+ * ```
1188
1238
  */
1189
1239
  export const distanceDuration: {
1190
1240
  /**
@@ -1193,6 +1243,7 @@ export const distanceDuration: {
1193
1243
  * @since 3.6.0
1194
1244
  * @category comparisons
1195
1245
  * @example
1246
+ * ```ts
1196
1247
  * import { DateTime, Effect } from "effect"
1197
1248
  *
1198
1249
  * Effect.gen(function* () {
@@ -1202,6 +1253,7 @@ export const distanceDuration: {
1202
1253
  * // returns Duration.minutes(1)
1203
1254
  * DateTime.distanceDuration(now, other)
1204
1255
  * })
1256
+ * ```
1205
1257
  */
1206
1258
  (other: DateTime): (self: DateTime) => Duration.Duration
1207
1259
  /**
@@ -1210,6 +1262,7 @@ export const distanceDuration: {
1210
1262
  * @since 3.6.0
1211
1263
  * @category comparisons
1212
1264
  * @example
1265
+ * ```ts
1213
1266
  * import { DateTime, Effect } from "effect"
1214
1267
  *
1215
1268
  * Effect.gen(function* () {
@@ -1219,6 +1272,7 @@ export const distanceDuration: {
1219
1272
  * // returns Duration.minutes(1)
1220
1273
  * DateTime.distanceDuration(now, other)
1221
1274
  * })
1275
+ * ```
1222
1276
  */
1223
1277
  (self: DateTime, other: DateTime): Duration.Duration
1224
1278
  } = dual(
@@ -1455,6 +1509,7 @@ export const toEpochMillis = (self: DateTime): number => self.epochMillis
1455
1509
  * @since 3.6.0
1456
1510
  * @category conversions
1457
1511
  * @example
1512
+ * ```ts
1458
1513
  * import { DateTime } from "effect"
1459
1514
  *
1460
1515
  * // returns "2024-01-01T00:00:00Z"
@@ -1465,6 +1520,7 @@ export const toEpochMillis = (self: DateTime): number => self.epochMillis
1465
1520
  * DateTime.removeTime,
1466
1521
  * DateTime.formatIso
1467
1522
  * )
1523
+ * ```
1468
1524
  */
1469
1525
  export const removeTime = (self: DateTime): Utc =>
1470
1526
  withDate(self, (date) => {
@@ -1529,11 +1585,13 @@ export const toPartsUtc = (self: DateTime): DateTime.PartsWithWeekday => {
1529
1585
  * @since 3.6.0
1530
1586
  * @category parts
1531
1587
  * @example
1588
+ * ```ts
1532
1589
  * import { DateTime } from "effect"
1533
1590
  *
1534
1591
  * const now = DateTime.unsafeMake({ year: 2024 })
1535
1592
  * const year = DateTime.getPartUtc(now, "year")
1536
1593
  * assert.strictEqual(year, 2024)
1594
+ * ```
1537
1595
  */
1538
1596
  export const getPartUtc: {
1539
1597
  /**
@@ -1544,11 +1602,13 @@ export const getPartUtc: {
1544
1602
  * @since 3.6.0
1545
1603
  * @category parts
1546
1604
  * @example
1605
+ * ```ts
1547
1606
  * import { DateTime } from "effect"
1548
1607
  *
1549
1608
  * const now = DateTime.unsafeMake({ year: 2024 })
1550
1609
  * const year = DateTime.getPartUtc(now, "year")
1551
1610
  * assert.strictEqual(year, 2024)
1611
+ * ```
1552
1612
  */
1553
1613
  (part: keyof DateTime.PartsWithWeekday): (self: DateTime) => number
1554
1614
  /**
@@ -1559,11 +1619,13 @@ export const getPartUtc: {
1559
1619
  * @since 3.6.0
1560
1620
  * @category parts
1561
1621
  * @example
1622
+ * ```ts
1562
1623
  * import { DateTime } from "effect"
1563
1624
  *
1564
1625
  * const now = DateTime.unsafeMake({ year: 2024 })
1565
1626
  * const year = DateTime.getPartUtc(now, "year")
1566
1627
  * assert.strictEqual(year, 2024)
1628
+ * ```
1567
1629
  */
1568
1630
  (self: DateTime, part: keyof DateTime.PartsWithWeekday): number
1569
1631
  } = dual(2, (self: DateTime, part: keyof DateTime.PartsWithWeekday): number => toPartsUtc(self)[part])
@@ -1576,11 +1638,13 @@ export const getPartUtc: {
1576
1638
  * @since 3.6.0
1577
1639
  * @category parts
1578
1640
  * @example
1641
+ * ```ts
1579
1642
  * import { DateTime } from "effect"
1580
1643
  *
1581
1644
  * const now = DateTime.unsafeMakeZoned({ year: 2024 }, { timeZone: "Europe/London" })
1582
1645
  * const year = DateTime.getPart(now, "year")
1583
1646
  * assert.strictEqual(year, 2024)
1647
+ * ```
1584
1648
  */
1585
1649
  export const getPart: {
1586
1650
  /**
@@ -1591,11 +1655,13 @@ export const getPart: {
1591
1655
  * @since 3.6.0
1592
1656
  * @category parts
1593
1657
  * @example
1658
+ * ```ts
1594
1659
  * import { DateTime } from "effect"
1595
1660
  *
1596
1661
  * const now = DateTime.unsafeMakeZoned({ year: 2024 }, { timeZone: "Europe/London" })
1597
1662
  * const year = DateTime.getPart(now, "year")
1598
1663
  * assert.strictEqual(year, 2024)
1664
+ * ```
1599
1665
  */
1600
1666
  (part: keyof DateTime.PartsWithWeekday): (self: DateTime) => number
1601
1667
  /**
@@ -1606,11 +1672,13 @@ export const getPart: {
1606
1672
  * @since 3.6.0
1607
1673
  * @category parts
1608
1674
  * @example
1675
+ * ```ts
1609
1676
  * import { DateTime } from "effect"
1610
1677
  *
1611
1678
  * const now = DateTime.unsafeMakeZoned({ year: 2024 }, { timeZone: "Europe/London" })
1612
1679
  * const year = DateTime.getPart(now, "year")
1613
1680
  * assert.strictEqual(year, 2024)
1681
+ * ```
1614
1682
  */
1615
1683
  (self: DateTime, part: keyof DateTime.PartsWithWeekday): number
1616
1684
  } = dual(2, (self: DateTime, part: keyof DateTime.PartsWithWeekday): number => toParts(self)[part])
@@ -1723,6 +1791,7 @@ export class CurrentTimeZone extends Context.Tag("effect/DateTime/CurrentTimeZon
1723
1791
  * @since 3.6.0
1724
1792
  * @category current time zone
1725
1793
  * @example
1794
+ * ```ts
1726
1795
  * import { DateTime, Effect } from "effect"
1727
1796
  *
1728
1797
  * Effect.gen(function* () {
@@ -1731,6 +1800,7 @@ export class CurrentTimeZone extends Context.Tag("effect/DateTime/CurrentTimeZon
1731
1800
  * // set the time zone to "Europe/London"
1732
1801
  * const zoned = yield* DateTime.setZoneCurrent(now)
1733
1802
  * }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
1803
+ * ```
1734
1804
  */
1735
1805
  export const setZoneCurrent = (self: DateTime): Effect.Effect<Zoned, never, CurrentTimeZone> =>
1736
1806
  Effect.map(CurrentTimeZone, (zone) => setZone(self, zone))
@@ -1741,6 +1811,7 @@ export const setZoneCurrent = (self: DateTime): Effect.Effect<Zoned, never, Curr
1741
1811
  * @since 3.6.0
1742
1812
  * @category current time zone
1743
1813
  * @example
1814
+ * ```ts
1744
1815
  * import { DateTime, Effect } from "effect"
1745
1816
  *
1746
1817
  * const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
@@ -1748,6 +1819,7 @@ export const setZoneCurrent = (self: DateTime): Effect.Effect<Zoned, never, Curr
1748
1819
  * Effect.gen(function* () {
1749
1820
  * const now = yield* DateTime.nowInCurrentZone
1750
1821
  * }).pipe(DateTime.withCurrentZone(zone))
1822
+ * ```
1751
1823
  */
1752
1824
  export const withCurrentZone: {
1753
1825
  /**
@@ -1756,6 +1828,7 @@ export const withCurrentZone: {
1756
1828
  * @since 3.6.0
1757
1829
  * @category current time zone
1758
1830
  * @example
1831
+ * ```ts
1759
1832
  * import { DateTime, Effect } from "effect"
1760
1833
  *
1761
1834
  * const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
@@ -1763,6 +1836,7 @@ export const withCurrentZone: {
1763
1836
  * Effect.gen(function* () {
1764
1837
  * const now = yield* DateTime.nowInCurrentZone
1765
1838
  * }).pipe(DateTime.withCurrentZone(zone))
1839
+ * ```
1766
1840
  */
1767
1841
  (zone: TimeZone): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
1768
1842
  /**
@@ -1771,6 +1845,7 @@ export const withCurrentZone: {
1771
1845
  * @since 3.6.0
1772
1846
  * @category current time zone
1773
1847
  * @example
1848
+ * ```ts
1774
1849
  * import { DateTime, Effect } from "effect"
1775
1850
  *
1776
1851
  * const zone = DateTime.zoneUnsafeMakeNamed("Europe/London")
@@ -1778,6 +1853,7 @@ export const withCurrentZone: {
1778
1853
  * Effect.gen(function* () {
1779
1854
  * const now = yield* DateTime.nowInCurrentZone
1780
1855
  * }).pipe(DateTime.withCurrentZone(zone))
1856
+ * ```
1781
1857
  */
1782
1858
  <A, E, R>(effect: Effect.Effect<A, E, R>, zone: TimeZone): Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
1783
1859
  } = dual(
@@ -1793,12 +1869,14 @@ export const withCurrentZone: {
1793
1869
  * @since 3.6.0
1794
1870
  * @category current time zone
1795
1871
  * @example
1872
+ * ```ts
1796
1873
  * import { DateTime, Effect } from "effect"
1797
1874
  *
1798
1875
  * Effect.gen(function* () {
1799
1876
  * // will use the system's local time zone
1800
1877
  * const now = yield* DateTime.nowInCurrentZone
1801
1878
  * }).pipe(DateTime.withCurrentZoneLocal)
1879
+ * ```
1802
1880
  */
1803
1881
  export const withCurrentZoneLocal = <A, E, R>(
1804
1882
  effect: Effect.Effect<A, E, R>
@@ -1811,12 +1889,14 @@ export const withCurrentZoneLocal = <A, E, R>(
1811
1889
  * @since 3.6.0
1812
1890
  * @category current time zone
1813
1891
  * @example
1892
+ * ```ts
1814
1893
  * import { DateTime, Effect } from "effect"
1815
1894
  *
1816
1895
  * Effect.gen(function* () {
1817
1896
  * // will use the system's local time zone
1818
1897
  * const now = yield* DateTime.nowInCurrentZone
1819
1898
  * }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
1899
+ * ```
1820
1900
  */
1821
1901
  export const withCurrentZoneOffset: {
1822
1902
  /**
@@ -1825,12 +1905,14 @@ export const withCurrentZoneOffset: {
1825
1905
  * @since 3.6.0
1826
1906
  * @category current time zone
1827
1907
  * @example
1908
+ * ```ts
1828
1909
  * import { DateTime, Effect } from "effect"
1829
1910
  *
1830
1911
  * Effect.gen(function* () {
1831
1912
  * // will use the system's local time zone
1832
1913
  * const now = yield* DateTime.nowInCurrentZone
1833
1914
  * }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
1915
+ * ```
1834
1916
  */
1835
1917
  (offset: number): <A, E, R>(
1836
1918
  effect: Effect.Effect<A, E, R>
@@ -1841,12 +1923,14 @@ export const withCurrentZoneOffset: {
1841
1923
  * @since 3.6.0
1842
1924
  * @category current time zone
1843
1925
  * @example
1926
+ * ```ts
1844
1927
  * import { DateTime, Effect } from "effect"
1845
1928
  *
1846
1929
  * Effect.gen(function* () {
1847
1930
  * // will use the system's local time zone
1848
1931
  * const now = yield* DateTime.nowInCurrentZone
1849
1932
  * }).pipe(DateTime.withCurrentZoneOffset(3 * 60 * 60 * 1000))
1933
+ * ```
1850
1934
  */
1851
1935
  <A, E, R>(effect: Effect.Effect<A, E, R>, offset: number): Effect.Effect<A, E, Exclude<R, CurrentTimeZone>>
1852
1936
  } = dual(
@@ -1864,12 +1948,14 @@ export const withCurrentZoneOffset: {
1864
1948
  * @since 3.6.0
1865
1949
  * @category current time zone
1866
1950
  * @example
1951
+ * ```ts
1867
1952
  * import { DateTime, Effect } from "effect"
1868
1953
  *
1869
1954
  * Effect.gen(function* () {
1870
1955
  * // will use the "Europe/London" time zone
1871
1956
  * const now = yield* DateTime.nowInCurrentZone
1872
1957
  * }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
1958
+ * ```
1873
1959
  */
1874
1960
  export const withCurrentZoneNamed: {
1875
1961
  /**
@@ -1881,12 +1967,14 @@ export const withCurrentZoneNamed: {
1881
1967
  * @since 3.6.0
1882
1968
  * @category current time zone
1883
1969
  * @example
1970
+ * ```ts
1884
1971
  * import { DateTime, Effect } from "effect"
1885
1972
  *
1886
1973
  * Effect.gen(function* () {
1887
1974
  * // will use the "Europe/London" time zone
1888
1975
  * const now = yield* DateTime.nowInCurrentZone
1889
1976
  * }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
1977
+ * ```
1890
1978
  */
1891
1979
  (zone: string): <A, E, R>(
1892
1980
  effect: Effect.Effect<A, E, R>
@@ -1900,12 +1988,14 @@ export const withCurrentZoneNamed: {
1900
1988
  * @since 3.6.0
1901
1989
  * @category current time zone
1902
1990
  * @example
1991
+ * ```ts
1903
1992
  * import { DateTime, Effect } from "effect"
1904
1993
  *
1905
1994
  * Effect.gen(function* () {
1906
1995
  * // will use the "Europe/London" time zone
1907
1996
  * const now = yield* DateTime.nowInCurrentZone
1908
1997
  * }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
1998
+ * ```
1909
1999
  */
1910
2000
  <A, E, R>(
1911
2001
  effect: Effect.Effect<A, E, R>,
@@ -1926,12 +2016,14 @@ export const withCurrentZoneNamed: {
1926
2016
  * @since 3.6.0
1927
2017
  * @category current time zone
1928
2018
  * @example
2019
+ * ```ts
1929
2020
  * import { DateTime, Effect } from "effect"
1930
2021
  *
1931
2022
  * Effect.gen(function* () {
1932
2023
  * // will use the "Europe/London" time zone
1933
2024
  * const now = yield* DateTime.nowInCurrentZone
1934
2025
  * }).pipe(DateTime.withCurrentZoneNamed("Europe/London"))
2026
+ * ```
1935
2027
  */
1936
2028
  export const nowInCurrentZone: Effect.Effect<Zoned, never, CurrentTimeZone> = Effect.flatMap(
1937
2029
  now,
@@ -2084,12 +2176,14 @@ export const mutateUtc: {
2084
2176
  * @since 3.6.0
2085
2177
  * @category mapping
2086
2178
  * @example
2179
+ * ```ts
2087
2180
  * import { DateTime } from "effect"
2088
2181
  *
2089
2182
  * // add 10 milliseconds
2090
2183
  * DateTime.unsafeMake(0).pipe(
2091
2184
  * DateTime.mapEpochMillis((millis) => millis + 10)
2092
2185
  * )
2186
+ * ```
2093
2187
  */
2094
2188
  export const mapEpochMillis: {
2095
2189
  /**
@@ -2099,12 +2193,14 @@ export const mapEpochMillis: {
2099
2193
  * @since 3.6.0
2100
2194
  * @category mapping
2101
2195
  * @example
2196
+ * ```ts
2102
2197
  * import { DateTime } from "effect"
2103
2198
  *
2104
2199
  * // add 10 milliseconds
2105
2200
  * DateTime.unsafeMake(0).pipe(
2106
2201
  * DateTime.mapEpochMillis((millis) => millis + 10)
2107
2202
  * )
2203
+ * ```
2108
2204
  */
2109
2205
  (f: (millis: number) => number): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
2110
2206
  /**
@@ -2114,12 +2210,14 @@ export const mapEpochMillis: {
2114
2210
  * @since 3.6.0
2115
2211
  * @category mapping
2116
2212
  * @example
2213
+ * ```ts
2117
2214
  * import { DateTime } from "effect"
2118
2215
  *
2119
2216
  * // add 10 milliseconds
2120
2217
  * DateTime.unsafeMake(0).pipe(
2121
2218
  * DateTime.mapEpochMillis((millis) => millis + 10)
2122
2219
  * )
2220
+ * ```
2123
2221
  */
2124
2222
  <A extends DateTime>(self: A, f: (millis: number) => number): DateTime.PreserveZone<A>
2125
2223
  } = dual(2, (self: DateTime, f: (millis: number) => number): DateTime => {
@@ -2134,12 +2232,14 @@ export const mapEpochMillis: {
2134
2232
  * @since 3.6.0
2135
2233
  * @category mapping
2136
2234
  * @example
2235
+ * ```ts
2137
2236
  * import { DateTime } from "effect"
2138
2237
  *
2139
2238
  * // get the time zone adjusted date in milliseconds
2140
2239
  * DateTime.unsafeMakeZoned(0, { timeZone: "Europe/London" }).pipe(
2141
2240
  * DateTime.withDate((date) => date.getTime())
2142
2241
  * )
2242
+ * ```
2143
2243
  */
2144
2244
  export const withDate: {
2145
2245
  /**
@@ -2149,12 +2249,14 @@ export const withDate: {
2149
2249
  * @since 3.6.0
2150
2250
  * @category mapping
2151
2251
  * @example
2252
+ * ```ts
2152
2253
  * import { DateTime } from "effect"
2153
2254
  *
2154
2255
  * // get the time zone adjusted date in milliseconds
2155
2256
  * DateTime.unsafeMakeZoned(0, { timeZone: "Europe/London" }).pipe(
2156
2257
  * DateTime.withDate((date) => date.getTime())
2157
2258
  * )
2259
+ * ```
2158
2260
  */
2159
2261
  <A>(f: (date: Date) => A): (self: DateTime) => A
2160
2262
  /**
@@ -2164,12 +2266,14 @@ export const withDate: {
2164
2266
  * @since 3.6.0
2165
2267
  * @category mapping
2166
2268
  * @example
2269
+ * ```ts
2167
2270
  * import { DateTime } from "effect"
2168
2271
  *
2169
2272
  * // get the time zone adjusted date in milliseconds
2170
2273
  * DateTime.unsafeMakeZoned(0, { timeZone: "Europe/London" }).pipe(
2171
2274
  * DateTime.withDate((date) => date.getTime())
2172
2275
  * )
2276
+ * ```
2173
2277
  */
2174
2278
  <A>(self: DateTime, f: (date: Date) => A): A
2175
2279
  } = dual(2, <A>(self: DateTime, f: (date: Date) => A): A => f(toDate(self)))
@@ -2181,12 +2285,14 @@ export const withDate: {
2181
2285
  * @since 3.6.0
2182
2286
  * @category mapping
2183
2287
  * @example
2288
+ * ```ts
2184
2289
  * import { DateTime } from "effect"
2185
2290
  *
2186
2291
  * // get the date in milliseconds
2187
2292
  * DateTime.unsafeMake(0).pipe(
2188
2293
  * DateTime.withDateUtc((date) => date.getTime())
2189
2294
  * )
2295
+ * ```
2190
2296
  */
2191
2297
  export const withDateUtc: {
2192
2298
  /**
@@ -2196,12 +2302,14 @@ export const withDateUtc: {
2196
2302
  * @since 3.6.0
2197
2303
  * @category mapping
2198
2304
  * @example
2305
+ * ```ts
2199
2306
  * import { DateTime } from "effect"
2200
2307
  *
2201
2308
  * // get the date in milliseconds
2202
2309
  * DateTime.unsafeMake(0).pipe(
2203
2310
  * DateTime.withDateUtc((date) => date.getTime())
2204
2311
  * )
2312
+ * ```
2205
2313
  */
2206
2314
  <A>(f: (date: Date) => A): (self: DateTime) => A
2207
2315
  /**
@@ -2211,12 +2319,14 @@ export const withDateUtc: {
2211
2319
  * @since 3.6.0
2212
2320
  * @category mapping
2213
2321
  * @example
2322
+ * ```ts
2214
2323
  * import { DateTime } from "effect"
2215
2324
  *
2216
2325
  * // get the date in milliseconds
2217
2326
  * DateTime.unsafeMake(0).pipe(
2218
2327
  * DateTime.withDateUtc((date) => date.getTime())
2219
2328
  * )
2329
+ * ```
2220
2330
  */
2221
2331
  <A>(self: DateTime, f: (date: Date) => A): A
2222
2332
  } = dual(2, <A>(self: DateTime, f: (date: Date) => A): A => f(toDateUtc(self)))
@@ -2262,12 +2372,14 @@ export const match: {
2262
2372
  * @since 3.6.0
2263
2373
  * @category math
2264
2374
  * @example
2375
+ * ```ts
2265
2376
  * import { DateTime } from "effect"
2266
2377
  *
2267
2378
  * // add 5 minutes
2268
2379
  * DateTime.unsafeMake(0).pipe(
2269
2380
  * DateTime.addDuration("5 minutes")
2270
2381
  * )
2382
+ * ```
2271
2383
  */
2272
2384
  export const addDuration: {
2273
2385
  // =============================================================================
@@ -2280,12 +2392,14 @@ export const addDuration: {
2280
2392
  * @since 3.6.0
2281
2393
  * @category math
2282
2394
  * @example
2395
+ * ```ts
2283
2396
  * import { DateTime } from "effect"
2284
2397
  *
2285
2398
  * // add 5 minutes
2286
2399
  * DateTime.unsafeMake(0).pipe(
2287
2400
  * DateTime.addDuration("5 minutes")
2288
2401
  * )
2402
+ * ```
2289
2403
  */
2290
2404
  (duration: Duration.DurationInput): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
2291
2405
  // =============================================================================
@@ -2298,12 +2412,14 @@ export const addDuration: {
2298
2412
  * @since 3.6.0
2299
2413
  * @category math
2300
2414
  * @example
2415
+ * ```ts
2301
2416
  * import { DateTime } from "effect"
2302
2417
  *
2303
2418
  * // add 5 minutes
2304
2419
  * DateTime.unsafeMake(0).pipe(
2305
2420
  * DateTime.addDuration("5 minutes")
2306
2421
  * )
2422
+ * ```
2307
2423
  */
2308
2424
  <A extends DateTime>(self: A, duration: Duration.DurationInput): DateTime.PreserveZone<A>
2309
2425
  } = dual(
@@ -2318,12 +2434,14 @@ export const addDuration: {
2318
2434
  * @since 3.6.0
2319
2435
  * @category math
2320
2436
  * @example
2437
+ * ```ts
2321
2438
  * import { DateTime } from "effect"
2322
2439
  *
2323
2440
  * // subtract 5 minutes
2324
2441
  * DateTime.unsafeMake(0).pipe(
2325
2442
  * DateTime.subtractDuration("5 minutes")
2326
2443
  * )
2444
+ * ```
2327
2445
  */
2328
2446
  export const subtractDuration: {
2329
2447
  /**
@@ -2332,12 +2450,14 @@ export const subtractDuration: {
2332
2450
  * @since 3.6.0
2333
2451
  * @category math
2334
2452
  * @example
2453
+ * ```ts
2335
2454
  * import { DateTime } from "effect"
2336
2455
  *
2337
2456
  * // subtract 5 minutes
2338
2457
  * DateTime.unsafeMake(0).pipe(
2339
2458
  * DateTime.subtractDuration("5 minutes")
2340
2459
  * )
2460
+ * ```
2341
2461
  */
2342
2462
  (duration: Duration.DurationInput): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
2343
2463
  /**
@@ -2346,12 +2466,14 @@ export const subtractDuration: {
2346
2466
  * @since 3.6.0
2347
2467
  * @category math
2348
2468
  * @example
2469
+ * ```ts
2349
2470
  * import { DateTime } from "effect"
2350
2471
  *
2351
2472
  * // subtract 5 minutes
2352
2473
  * DateTime.unsafeMake(0).pipe(
2353
2474
  * DateTime.subtractDuration("5 minutes")
2354
2475
  * )
2476
+ * ```
2355
2477
  */
2356
2478
  <A extends DateTime>(self: A, duration: Duration.DurationInput): DateTime.PreserveZone<A>
2357
2479
  } = dual(
@@ -2373,12 +2495,14 @@ const addMillis = (date: Date, amount: number): void => {
2373
2495
  * @since 3.6.0
2374
2496
  * @category math
2375
2497
  * @example
2498
+ * ```ts
2376
2499
  * import { DateTime } from "effect"
2377
2500
  *
2378
2501
  * // add 5 minutes
2379
2502
  * DateTime.unsafeMake(0).pipe(
2380
2503
  * DateTime.add({ minutes: 5 })
2381
2504
  * )
2505
+ * ```
2382
2506
  */
2383
2507
  export const add: {
2384
2508
  /**
@@ -2390,12 +2514,14 @@ export const add: {
2390
2514
  * @since 3.6.0
2391
2515
  * @category math
2392
2516
  * @example
2517
+ * ```ts
2393
2518
  * import { DateTime } from "effect"
2394
2519
  *
2395
2520
  * // add 5 minutes
2396
2521
  * DateTime.unsafeMake(0).pipe(
2397
2522
  * DateTime.add({ minutes: 5 })
2398
2523
  * )
2524
+ * ```
2399
2525
  */
2400
2526
  (parts: Partial<DateTime.PartsForMath>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
2401
2527
  /**
@@ -2407,12 +2533,14 @@ export const add: {
2407
2533
  * @since 3.6.0
2408
2534
  * @category math
2409
2535
  * @example
2536
+ * ```ts
2410
2537
  * import { DateTime } from "effect"
2411
2538
  *
2412
2539
  * // add 5 minutes
2413
2540
  * DateTime.unsafeMake(0).pipe(
2414
2541
  * DateTime.add({ minutes: 5 })
2415
2542
  * )
2543
+ * ```
2416
2544
  */
2417
2545
  <A extends DateTime>(self: A, parts: Partial<DateTime.PartsForMath>): DateTime.PreserveZone<A>
2418
2546
  } = dual(2, (self: DateTime, parts: Partial<DateTime.PartsForMath>): DateTime =>
@@ -2462,12 +2590,14 @@ export const add: {
2462
2590
  * @since 3.6.0
2463
2591
  * @category math
2464
2592
  * @example
2593
+ * ```ts
2465
2594
  * import { DateTime } from "effect"
2466
2595
  *
2467
2596
  * // subtract 5 minutes
2468
2597
  * DateTime.unsafeMake(0).pipe(
2469
2598
  * DateTime.subtract({ minutes: 5 })
2470
2599
  * )
2600
+ * ```
2471
2601
  */
2472
2602
  export const subtract: {
2473
2603
  /**
@@ -2476,12 +2606,14 @@ export const subtract: {
2476
2606
  * @since 3.6.0
2477
2607
  * @category math
2478
2608
  * @example
2609
+ * ```ts
2479
2610
  * import { DateTime } from "effect"
2480
2611
  *
2481
2612
  * // subtract 5 minutes
2482
2613
  * DateTime.unsafeMake(0).pipe(
2483
2614
  * DateTime.subtract({ minutes: 5 })
2484
2615
  * )
2616
+ * ```
2485
2617
  */
2486
2618
  (parts: Partial<DateTime.PartsForMath>): <A extends DateTime>(self: A) => DateTime.PreserveZone<A>
2487
2619
  /**
@@ -2490,12 +2622,14 @@ export const subtract: {
2490
2622
  * @since 3.6.0
2491
2623
  * @category math
2492
2624
  * @example
2625
+ * ```ts
2493
2626
  * import { DateTime } from "effect"
2494
2627
  *
2495
2628
  * // subtract 5 minutes
2496
2629
  * DateTime.unsafeMake(0).pipe(
2497
2630
  * DateTime.subtract({ minutes: 5 })
2498
2631
  * )
2632
+ * ```
2499
2633
  */
2500
2634
  <A extends DateTime>(self: A, parts: Partial<DateTime.PartsForMath>): DateTime.PreserveZone<A>
2501
2635
  } = dual(2, (self: DateTime, parts: Partial<DateTime.PartsForMath>): DateTime => {
@@ -2556,6 +2690,7 @@ function startOfDate(date: Date, part: DateTime.UnitSingular, options?: {
2556
2690
  * @since 3.6.0
2557
2691
  * @category math
2558
2692
  * @example
2693
+ * ```ts
2559
2694
  * import { DateTime } from "effect"
2560
2695
  *
2561
2696
  * // returns "2024-01-01T00:00:00Z"
@@ -2563,6 +2698,7 @@ function startOfDate(date: Date, part: DateTime.UnitSingular, options?: {
2563
2698
  * DateTime.startOf("day"),
2564
2699
  * DateTime.formatIso
2565
2700
  * )
2701
+ * ```
2566
2702
  */
2567
2703
  export const startOf: {
2568
2704
  /**
@@ -2574,6 +2710,7 @@ export const startOf: {
2574
2710
  * @since 3.6.0
2575
2711
  * @category math
2576
2712
  * @example
2713
+ * ```ts
2577
2714
  * import { DateTime } from "effect"
2578
2715
  *
2579
2716
  * // returns "2024-01-01T00:00:00Z"
@@ -2581,6 +2718,7 @@ export const startOf: {
2581
2718
  * DateTime.startOf("day"),
2582
2719
  * DateTime.formatIso
2583
2720
  * )
2721
+ * ```
2584
2722
  */
2585
2723
  (
2586
2724
  part: DateTime.UnitSingular,
@@ -2597,6 +2735,7 @@ export const startOf: {
2597
2735
  * @since 3.6.0
2598
2736
  * @category math
2599
2737
  * @example
2738
+ * ```ts
2600
2739
  * import { DateTime } from "effect"
2601
2740
  *
2602
2741
  * // returns "2024-01-01T00:00:00Z"
@@ -2604,6 +2743,7 @@ export const startOf: {
2604
2743
  * DateTime.startOf("day"),
2605
2744
  * DateTime.formatIso
2606
2745
  * )
2746
+ * ```
2607
2747
  */
2608
2748
  <A extends DateTime>(
2609
2749
  self: A,
@@ -2666,6 +2806,7 @@ function endOfDate(date: Date, part: DateTime.UnitSingular, options?: {
2666
2806
  * @since 3.6.0
2667
2807
  * @category math
2668
2808
  * @example
2809
+ * ```ts
2669
2810
  * import { DateTime } from "effect"
2670
2811
  *
2671
2812
  * // returns "2024-01-01T23:59:59.999Z"
@@ -2673,6 +2814,7 @@ function endOfDate(date: Date, part: DateTime.UnitSingular, options?: {
2673
2814
  * DateTime.endOf("day"),
2674
2815
  * DateTime.formatIso
2675
2816
  * )
2817
+ * ```
2676
2818
  */
2677
2819
  export const endOf: {
2678
2820
  /**
@@ -2684,6 +2826,7 @@ export const endOf: {
2684
2826
  * @since 3.6.0
2685
2827
  * @category math
2686
2828
  * @example
2829
+ * ```ts
2687
2830
  * import { DateTime } from "effect"
2688
2831
  *
2689
2832
  * // returns "2024-01-01T23:59:59.999Z"
@@ -2691,6 +2834,7 @@ export const endOf: {
2691
2834
  * DateTime.endOf("day"),
2692
2835
  * DateTime.formatIso
2693
2836
  * )
2837
+ * ```
2694
2838
  */
2695
2839
  (
2696
2840
  part: DateTime.UnitSingular,
@@ -2707,6 +2851,7 @@ export const endOf: {
2707
2851
  * @since 3.6.0
2708
2852
  * @category math
2709
2853
  * @example
2854
+ * ```ts
2710
2855
  * import { DateTime } from "effect"
2711
2856
  *
2712
2857
  * // returns "2024-01-01T23:59:59.999Z"
@@ -2714,6 +2859,7 @@ export const endOf: {
2714
2859
  * DateTime.endOf("day"),
2715
2860
  * DateTime.formatIso
2716
2861
  * )
2862
+ * ```
2717
2863
  */
2718
2864
  <A extends DateTime>(
2719
2865
  self: A,
@@ -2735,6 +2881,7 @@ export const endOf: {
2735
2881
  * @since 3.6.0
2736
2882
  * @category math
2737
2883
  * @example
2884
+ * ```ts
2738
2885
  * import { DateTime } from "effect"
2739
2886
  *
2740
2887
  * // returns "2024-01-02T00:00:00Z"
@@ -2742,6 +2889,7 @@ export const endOf: {
2742
2889
  * DateTime.nearest("day"),
2743
2890
  * DateTime.formatIso
2744
2891
  * )
2892
+ * ```
2745
2893
  */
2746
2894
  export const nearest: {
2747
2895
  /**
@@ -2753,6 +2901,7 @@ export const nearest: {
2753
2901
  * @since 3.6.0
2754
2902
  * @category math
2755
2903
  * @example
2904
+ * ```ts
2756
2905
  * import { DateTime } from "effect"
2757
2906
  *
2758
2907
  * // returns "2024-01-02T00:00:00Z"
@@ -2760,6 +2909,7 @@ export const nearest: {
2760
2909
  * DateTime.nearest("day"),
2761
2910
  * DateTime.formatIso
2762
2911
  * )
2912
+ * ```
2763
2913
  */
2764
2914
  (
2765
2915
  part: DateTime.UnitSingular,
@@ -2776,6 +2926,7 @@ export const nearest: {
2776
2926
  * @since 3.6.0
2777
2927
  * @category math
2778
2928
  * @example
2929
+ * ```ts
2779
2930
  * import { DateTime } from "effect"
2780
2931
  *
2781
2932
  * // returns "2024-01-02T00:00:00Z"
@@ -2783,6 +2934,7 @@ export const nearest: {
2783
2934
  * DateTime.nearest("day"),
2784
2935
  * DateTime.formatIso
2785
2936
  * )
2937
+ * ```
2786
2938
  */
2787
2939
  <A extends DateTime>(
2788
2940
  self: A,