@nunofyobiz/effect-extras 2.0.0 → 3.0.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 (133) hide show
  1. package/README.md +38 -3
  2. package/dist/ArrayX.d.ts +381 -0
  3. package/dist/ArrayX.d.ts.map +1 -0
  4. package/dist/ArrayX.js +493 -0
  5. package/dist/ArrayX.js.map +1 -0
  6. package/dist/BigIntX.d.ts +24 -0
  7. package/dist/BigIntX.d.ts.map +1 -0
  8. package/dist/BigIntX.js +30 -0
  9. package/dist/BigIntX.js.map +1 -0
  10. package/dist/BooleanX.d.ts +25 -0
  11. package/dist/BooleanX.d.ts.map +1 -0
  12. package/dist/BooleanX.js +25 -0
  13. package/dist/BooleanX.js.map +1 -0
  14. package/dist/DurationX.d.ts +73 -0
  15. package/dist/DurationX.d.ts.map +1 -0
  16. package/dist/DurationX.js +91 -0
  17. package/dist/DurationX.js.map +1 -0
  18. package/dist/EffectX.d.ts +120 -0
  19. package/dist/EffectX.d.ts.map +1 -0
  20. package/dist/EffectX.js +140 -0
  21. package/dist/EffectX.js.map +1 -0
  22. package/dist/FormDataX.d.ts +49 -0
  23. package/dist/FormDataX.d.ts.map +1 -0
  24. package/dist/FormDataX.js +42 -0
  25. package/dist/FormDataX.js.map +1 -0
  26. package/dist/InclusiveOr.d.ts +1123 -0
  27. package/dist/InclusiveOr.d.ts.map +1 -0
  28. package/dist/InclusiveOr.js +1074 -0
  29. package/dist/InclusiveOr.js.map +1 -0
  30. package/dist/MapX.d.ts +32 -0
  31. package/dist/MapX.d.ts.map +1 -0
  32. package/dist/MapX.js +49 -0
  33. package/dist/MapX.js.map +1 -0
  34. package/dist/NonNullableX.d.ts +174 -0
  35. package/dist/NonNullableX.d.ts.map +1 -0
  36. package/dist/NonNullableX.js +217 -0
  37. package/dist/NonNullableX.js.map +1 -0
  38. package/dist/NumberX.d.ts +178 -0
  39. package/dist/NumberX.d.ts.map +1 -0
  40. package/dist/NumberX.js +214 -0
  41. package/dist/NumberX.js.map +1 -0
  42. package/dist/OptionX.d.ts +187 -0
  43. package/dist/OptionX.d.ts.map +1 -0
  44. package/dist/OptionX.js +201 -0
  45. package/dist/OptionX.js.map +1 -0
  46. package/dist/OrderX.d.ts +32 -0
  47. package/dist/OrderX.d.ts.map +1 -0
  48. package/dist/OrderX.js +32 -0
  49. package/dist/OrderX.js.map +1 -0
  50. package/dist/PredicateX.d.ts +108 -0
  51. package/dist/PredicateX.d.ts.map +1 -0
  52. package/dist/PredicateX.js +111 -0
  53. package/dist/PredicateX.js.map +1 -0
  54. package/dist/PromiseX.d.ts +32 -0
  55. package/dist/PromiseX.d.ts.map +1 -0
  56. package/dist/PromiseX.js +32 -0
  57. package/dist/PromiseX.js.map +1 -0
  58. package/dist/RecordX.d.ts +450 -0
  59. package/dist/RecordX.d.ts.map +1 -0
  60. package/dist/RecordX.js +487 -0
  61. package/dist/RecordX.js.map +1 -0
  62. package/dist/ResultX.d.ts +50 -0
  63. package/dist/ResultX.d.ts.map +1 -0
  64. package/dist/ResultX.js +50 -0
  65. package/dist/ResultX.js.map +1 -0
  66. package/dist/SchemaX.d.ts +249 -0
  67. package/dist/SchemaX.d.ts.map +1 -0
  68. package/dist/SchemaX.js +243 -0
  69. package/dist/SchemaX.js.map +1 -0
  70. package/dist/SetX.d.ts +121 -0
  71. package/dist/SetX.d.ts.map +1 -0
  72. package/dist/SetX.js +137 -0
  73. package/dist/SetX.js.map +1 -0
  74. package/dist/StringX.d.ts +131 -0
  75. package/dist/StringX.d.ts.map +1 -0
  76. package/dist/StringX.js +149 -0
  77. package/dist/StringX.js.map +1 -0
  78. package/dist/StructX.d.ts +219 -0
  79. package/dist/StructX.d.ts.map +1 -0
  80. package/dist/StructX.js +173 -0
  81. package/dist/StructX.js.map +1 -0
  82. package/dist/WarnResult.d.ts +1191 -0
  83. package/dist/WarnResult.d.ts.map +1 -0
  84. package/dist/WarnResult.js +991 -0
  85. package/dist/WarnResult.js.map +1 -0
  86. package/dist/index.d.ts +23 -3772
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.js +22 -1011
  89. package/dist/index.js.map +1 -1
  90. package/package.json +18 -5
  91. package/src/{ArrayX/ArrayX.ts → ArrayX.ts} +6 -88
  92. package/src/{DurationX/DurationX.ts → DurationX.ts} +1 -1
  93. package/src/InclusiveOr.ts +1255 -0
  94. package/src/{NonNullableX/NonNullableX.ts → NonNullableX.ts} +5 -0
  95. package/src/{OptionX/OptionX.ts → OptionX.ts} +8 -2
  96. package/src/{PredicateX/PredicateX.ts → PredicateX.ts} +41 -0
  97. package/src/{RecordX/RecordX.ts → RecordX.ts} +184 -2
  98. package/src/StringX.ts +210 -0
  99. package/src/{WarnResult/WarnResult.ts → WarnResult.ts} +297 -227
  100. package/src/index.ts +22 -20
  101. package/src/ArrayX/index.ts +0 -1
  102. package/src/BigIntX/index.ts +0 -1
  103. package/src/BooleanX/index.ts +0 -1
  104. package/src/DurationX/index.ts +0 -1
  105. package/src/EffectX/index.ts +0 -1
  106. package/src/FormDataX/index.ts +0 -1
  107. package/src/MapX/index.ts +0 -1
  108. package/src/NonNullableX/index.ts +0 -2
  109. package/src/NumberX/index.ts +0 -1
  110. package/src/OptionX/index.ts +0 -1
  111. package/src/OrderX/index.ts +0 -1
  112. package/src/PredicateX/index.ts +0 -1
  113. package/src/PromiseX/index.ts +0 -1
  114. package/src/RecordX/index.ts +0 -1
  115. package/src/ResultX/index.ts +0 -1
  116. package/src/SchemaX/index.ts +0 -1
  117. package/src/SetX/index.ts +0 -1
  118. package/src/StringX/StringX.ts +0 -97
  119. package/src/StringX/index.ts +0 -1
  120. package/src/StructX/index.ts +0 -1
  121. package/src/WarnResult/index.ts +0 -1
  122. /package/src/{BigIntX/BigIntX.ts → BigIntX.ts} +0 -0
  123. /package/src/{BooleanX/BooleanX.ts → BooleanX.ts} +0 -0
  124. /package/src/{EffectX/EffectX.ts → EffectX.ts} +0 -0
  125. /package/src/{FormDataX/FormDataX.ts → FormDataX.ts} +0 -0
  126. /package/src/{MapX/MapX.ts → MapX.ts} +0 -0
  127. /package/src/{NumberX/NumberX.ts → NumberX.ts} +0 -0
  128. /package/src/{OrderX/OrderX.ts → OrderX.ts} +0 -0
  129. /package/src/{PromiseX/PromiseX.ts → PromiseX.ts} +0 -0
  130. /package/src/{ResultX/ResultX.ts → ResultX.ts} +0 -0
  131. /package/src/{SchemaX/SchemaX.ts → SchemaX.ts} +0 -0
  132. /package/src/{SetX/SetX.ts → SetX.ts} +0 -0
  133. /package/src/{StructX/StructX.ts → StructX.ts} +0 -0
package/src/index.ts CHANGED
@@ -1,20 +1,22 @@
1
- export { ArrayX } from "./ArrayX";
2
- export { BigIntX } from "./BigIntX";
3
- export { BooleanX } from "./BooleanX";
4
- export { DurationX } from "./DurationX";
5
- export { EffectX } from "./EffectX";
6
- export { FormDataX } from "./FormDataX";
7
- export { MapX } from "./MapX";
8
- export { NonNullableX, nn } from "./NonNullableX";
9
- export { NumberX } from "./NumberX";
10
- export { OptionX } from "./OptionX";
11
- export { OrderX } from "./OrderX";
12
- export { PredicateX } from "./PredicateX";
13
- export { PromiseX } from "./PromiseX";
14
- export { RecordX } from "./RecordX";
15
- export { ResultX } from "./ResultX";
16
- export { SchemaX } from "./SchemaX";
17
- export { SetX } from "./SetX";
18
- export { StringX } from "./StringX";
19
- export { StructX } from "./StructX";
20
- export { WarnResult } from "./WarnResult";
1
+ export * as ArrayX from "./ArrayX.js";
2
+ export * as BigIntX from "./BigIntX.js";
3
+ export * as BooleanX from "./BooleanX.js";
4
+ export * as DurationX from "./DurationX.js";
5
+ export * as EffectX from "./EffectX.js";
6
+ export * as FormDataX from "./FormDataX.js";
7
+ export * as InclusiveOr from "./InclusiveOr.js";
8
+ export * as MapX from "./MapX.js";
9
+ export * as NonNullableX from "./NonNullableX.js";
10
+ export { fromNullableOrThrow as nn } from "./NonNullableX.js";
11
+ export * as NumberX from "./NumberX.js";
12
+ export * as OptionX from "./OptionX.js";
13
+ export * as OrderX from "./OrderX.js";
14
+ export * as PredicateX from "./PredicateX.js";
15
+ export * as PromiseX from "./PromiseX.js";
16
+ export * as RecordX from "./RecordX.js";
17
+ export * as ResultX from "./ResultX.js";
18
+ export * as SchemaX from "./SchemaX.js";
19
+ export * as SetX from "./SetX.js";
20
+ export * as StringX from "./StringX.js";
21
+ export * as StructX from "./StructX.js";
22
+ export * as WarnResult from "./WarnResult.js";
@@ -1 +0,0 @@
1
- export * as ArrayX from "./ArrayX";
@@ -1 +0,0 @@
1
- export * as BigIntX from "./BigIntX";
@@ -1 +0,0 @@
1
- export * as BooleanX from "./BooleanX";
@@ -1 +0,0 @@
1
- export * as DurationX from "./DurationX";
@@ -1 +0,0 @@
1
- export * as EffectX from "./EffectX";
@@ -1 +0,0 @@
1
- export * as FormDataX from "./FormDataX";
package/src/MapX/index.ts DELETED
@@ -1 +0,0 @@
1
- export * as MapX from "./MapX";
@@ -1,2 +0,0 @@
1
- export * as NonNullableX from "./NonNullableX";
2
- export { fromNullableOrThrow as nn } from "./NonNullableX";
@@ -1 +0,0 @@
1
- export * as NumberX from "./NumberX";
@@ -1 +0,0 @@
1
- export * as OptionX from "./OptionX";
@@ -1 +0,0 @@
1
- export * as OrderX from "./OrderX";
@@ -1 +0,0 @@
1
- export * as PredicateX from "./PredicateX";
@@ -1 +0,0 @@
1
- export * as PromiseX from "./PromiseX";
@@ -1 +0,0 @@
1
- export * as RecordX from "./RecordX";
@@ -1 +0,0 @@
1
- export * as ResultX from "./ResultX";
@@ -1 +0,0 @@
1
- export * as SchemaX from "./SchemaX";
package/src/SetX/index.ts DELETED
@@ -1 +0,0 @@
1
- export * as SetX from "./SetX";
@@ -1,97 +0,0 @@
1
- /**
2
- * Generic, framework-agnostic extensions to Effect's `String` module.
3
- *
4
- * @since 0.0.0
5
- */
6
- import { dual } from "effect/Function";
7
-
8
- /**
9
- * Prepends `start` to `string_`.
10
- *
11
- * v4's `String` module has no native `prepend` (only `concat`), so this fills
12
- * the gap as a pipeable helper.
13
- *
14
- * @example
15
- * ```ts
16
- * import { pipe } from "effect"
17
- * import { StringX } from "@nunofyobiz/effect-extras"
18
- *
19
- * // data-first
20
- * assert.deepStrictEqual(StringX.prepend("world", "hello "), "hello world")
21
- *
22
- * // data-last (piped)
23
- * assert.deepStrictEqual(pipe("world", StringX.prepend("hello ")), "hello world")
24
- * ```
25
- *
26
- * @category combinators
27
- * @since 0.0.0
28
- */
29
- export const prepend = dual<
30
- (start: string) => (string_: string) => string,
31
- (string_: string, start: string) => string
32
- >(2, (string_: string, start: string): string => `${start}${string_}`);
33
-
34
- /**
35
- * Wraps `string_` between `start` and `end`.
36
- *
37
- * No v4 native equivalent — handy for quoting, bracketing, or fencing a value.
38
- *
39
- * @example
40
- * ```ts
41
- * import { pipe } from "effect"
42
- * import { StringX } from "@nunofyobiz/effect-extras"
43
- *
44
- * // data-first
45
- * assert.deepStrictEqual(StringX.surround("value", "[", "]"), "[value]")
46
- *
47
- * // data-last (piped)
48
- * assert.deepStrictEqual(pipe("value", StringX.surround("(", ")")), "(value)")
49
- * ```
50
- *
51
- * @category combinators
52
- * @since 0.0.0
53
- */
54
- export const surround = dual<
55
- (start: string, end: string) => (string_: string) => string,
56
- (string_: string, start: string, end: string) => string
57
- >(
58
- 3,
59
- (string_: string, start: string, end: string): string =>
60
- `${start}${string_}${end}`,
61
- );
62
-
63
- /**
64
- * Prepends `start` to `string_` unless `string_` already starts with it.
65
- *
66
- * Idempotent: applying it to an already-prefixed string is a no-op, so
67
- * `ensurePrepend("foofoo", "foo")` stays `"foofoo"` rather than gaining a
68
- * second `"foo"`.
69
- *
70
- * @example
71
- * ```ts
72
- * import { pipe } from "effect"
73
- * import { StringX } from "@nunofyobiz/effect-extras"
74
- *
75
- * // data-first — adds the prefix when missing
76
- * assert.deepStrictEqual(StringX.ensurePrepend("bar", "foo"), "foobar")
77
- *
78
- * // idempotent — already prefixed, returned unchanged
79
- * assert.deepStrictEqual(StringX.ensurePrepend("foobar", "foo"), "foobar")
80
- *
81
- * // data-last (piped)
82
- * assert.deepStrictEqual(pipe("bar", StringX.ensurePrepend("foo")), "foobar")
83
- * ```
84
- *
85
- * @category combinators
86
- * @since 0.0.0
87
- */
88
- export const ensurePrepend = dual<
89
- (start: string) => (string_: string) => string,
90
- (string_: string, start: string) => string
91
- >(2, (string_: string, start: string): string => {
92
- if (string_.startsWith(start)) {
93
- return string_;
94
- }
95
-
96
- return `${start}${string_}`;
97
- });
@@ -1 +0,0 @@
1
- export * as StringX from "./StringX";
@@ -1 +0,0 @@
1
- export * as StructX from "./StructX";
@@ -1 +0,0 @@
1
- export * as WarnResult from "./WarnResult";
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes