@nunofyobiz/effect-extras 2.1.0 → 3.1.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.
- package/README.md +2 -1
- package/dist/ArrayX.d.ts +0 -34
- package/dist/ArrayX.d.ts.map +1 -1
- package/dist/ArrayX.js +4 -58
- package/dist/ArrayX.js.map +1 -1
- package/dist/InclusiveOr.d.ts +1123 -0
- package/dist/InclusiveOr.d.ts.map +1 -0
- package/dist/InclusiveOr.js +1074 -0
- package/dist/InclusiveOr.js.map +1 -0
- package/dist/NonNullableX.d.ts.map +1 -1
- package/dist/NonNullableX.js +5 -0
- package/dist/NonNullableX.js.map +1 -1
- package/dist/OptionX.d.ts +8 -2
- package/dist/OptionX.d.ts.map +1 -1
- package/dist/OptionX.js +7 -1
- package/dist/OptionX.js.map +1 -1
- package/dist/PredicateX.d.ts +32 -0
- package/dist/PredicateX.d.ts.map +1 -1
- package/dist/PredicateX.js +38 -0
- package/dist/PredicateX.js.map +1 -1
- package/dist/RecordX.d.ts +128 -1
- package/dist/RecordX.d.ts.map +1 -1
- package/dist/RecordX.js +162 -1
- package/dist/RecordX.js.map +1 -1
- package/dist/StringX.d.ts +61 -0
- package/dist/StringX.d.ts.map +1 -1
- package/dist/StringX.js +68 -0
- package/dist/StringX.js.map +1 -1
- package/dist/WarnResult.d.ts +115 -70
- package/dist/WarnResult.d.ts.map +1 -1
- package/dist/WarnResult.js +141 -210
- package/dist/WarnResult.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/ArrayX.ts +4 -86
- package/src/InclusiveOr.ts +1255 -0
- package/src/NonNullableX.ts +5 -0
- package/src/OptionX.ts +8 -2
- package/src/PredicateX.ts +41 -0
- package/src/RecordX.ts +183 -1
- package/src/StringX.ts +113 -0
- package/src/WarnResult.ts +297 -227
- package/src/index.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InclusiveOr.js","names":["Array","Data","Effect","Option","Predicate","Struct","pipe","constUndefined","dual","identity","taggedEnum","LeftOnly","RightOnly","LeftAndRight","is","$is","match","$match","WithLeft","left","right","isNotNullish","WithRight","optionFromNullables","some","none","fromNullables","orElse","Error","getOrElse","matchLeft","Left","inclusiveOr","matchRight","Right","orElseLeft","orElseRight","orUndefined","undefined","leftOrElse","orElseReturn","get","leftOrUndefined","rightOrElse","rightOrUndefined","rightOption","leftOption","mapBoth","mapLeft","mapRight","mapBothEffect","map","left2","right2","all","flatMapLeft","mapLeftEffect","succeed","flatMapLeftEffect","flatMapRight","mapRightEffect","flatMapRightEffect","zip","array1","array2","f","newLength","Math","max","length","makeBy","index"],"sources":["../src/InclusiveOr.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonNullableX.d.ts","sourceRoot":"","sources":["../src/NonNullableX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAGL,KAAK,EAGN,MAAM,QAAQ,CAAC;AAGhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,OAAO,CAAC,EACR,eAAe,MAAM,KACpB,WAAW,CAAC,CAAC,CAOf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,KAAK,IACf,CAAC,EAAE,CAAC,YAAY;IACf,YAAY,EAAE,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/C,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MACpB,CAAC,EAAE,CAAC,SACI,CAAC,YACE;IACR,YAAY,EAAE,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/C,KACE,CAAC,CAWP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,GAAG,IACb,CAAC,EAAE,CAAC,OACE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAC1B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,MAC9C,CAAC,EAAE,CAAC,KACA,CAAC,OACC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAC1B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"NonNullableX.d.ts","sourceRoot":"","sources":["../src/NonNullableX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAGL,KAAK,EAGN,MAAM,QAAQ,CAAC;AAGhB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,EACnC,OAAO,CAAC,EACR,eAAe,MAAM,KACpB,WAAW,CAAC,CAAC,CAOf,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,KAAK,IACf,CAAC,EAAE,CAAC,YAAY;IACf,YAAY,EAAE,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/C,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MACpB,CAAC,EAAE,CAAC,SACI,CAAC,YACE;IACR,YAAY,EAAE,MAAM,CAAC,CAAC;IACtB,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC/C,KACE,CAAC,CAWP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,GAAG,IACb,CAAC,EAAE,CAAC,OACE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAC1B,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,MAC9C,CAAC,EAAE,CAAC,KACA,CAAC,OACC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAC1B,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAsBtC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,IAAI,GACd,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MACtB,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,CAAC,GAAG,IAAI,GAAG,SAMrC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,aAAa,cAEZ,YAAY,GAAG,YAAY,KAClC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MACvD,CAAC,SACO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YACX,YAAY,GAAG,YAAY,KAClC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAwC3B,CAAC"}
|
package/dist/NonNullableX.js
CHANGED
|
@@ -115,9 +115,14 @@ export const map = /*#__PURE__*/dual(2, (a, map) => {
|
|
|
115
115
|
if (Predicate.isNotNullish(a)) {
|
|
116
116
|
return map(a);
|
|
117
117
|
}
|
|
118
|
+
// Every value is either nullish or not, so once the check above has failed
|
|
119
|
+
// `isNullish(a)` is always true — its false branch (and the defensive throw
|
|
120
|
+
// below) is unreachable.
|
|
121
|
+
/* v8 ignore next */
|
|
118
122
|
if (Predicate.isNullish(a)) {
|
|
119
123
|
return a;
|
|
120
124
|
}
|
|
125
|
+
/* v8 ignore next */
|
|
121
126
|
throw new Error(`Value is neither nullable nor non-nullable: ${String(a)}`);
|
|
122
127
|
});
|
|
123
128
|
/**
|
package/dist/NonNullableX.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NonNullableX.js","names":["Number","EffectNumber","Match","Predicate","dual","fromNullableOrThrow","value","variableName","isNotNullish","Error","String","match","whenNullable","whenNotNullable","map","a","isNullish","lift","nullableOrder","order","behavior","nullableSortCategory","valueSortCategory","pipe","when","exhaustive","b","aCategory","bCategory","sign"],"sources":["../src/NonNullableX.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NonNullableX.js","names":["Number","EffectNumber","Match","Predicate","dual","fromNullableOrThrow","value","variableName","isNotNullish","Error","String","match","whenNullable","whenNotNullable","map","a","isNullish","lift","nullableOrder","order","behavior","nullableSortCategory","valueSortCategory","pipe","when","exhaustive","b","aCategory","bCategory","sign"],"sources":["../src/NonNullableX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SACEA,MAAM,IAAIC,YAAY,EACtBC,KAAK,EAGLC,SAAS,QACJ,QAAQ;AACf,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,KAAQ,EACRC,YAAqB,KACH;EAClB,IAAIJ,SAAS,CAACK,YAAY,CAACF,KAAK,CAAC,EAAE;IACjC,OAAOA,KAAK;EACd;EACA,MAAM,IAAIG,KAAK,CACb,sBAAsBC,MAAM,CAACJ,KAAK,CAAC,GAAGH,SAAS,CAACK,YAAY,CAACD,YAAY,CAAC,GAAG,oBAAoBA,YAAY,GAAG,GAAG,EAAE,EAAE,CACxH;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,OAAO,MAAMI,KAAK,gBAAGP,IAAI,CAavB,CAAC,EACD,CACEE,KAAQ,EACR;EACEM,YAAY;EACZC;AAAe,CAC0D,KAE3EV,SAAS,CAACK,YAAY,CAACF,KAAK,CAAC,GAAGO,eAAe,CAACP,KAAK,CAAC,GAAGM,YAAY,EAAE,CAC1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,OAAO,MAAME,GAAG,gBAAGV,IAAI,CASrB,CAAC,EACD,CACEW,CAAI,EACJD,GAA6B,KACO;EACpC,IAAIX,SAAS,CAACK,YAAY,CAACO,CAAC,CAAC,EAAE;IAC7B,OAAOD,GAAG,CAACC,CAAC,CAAC;EACf;EAEA;EACA;EACA;EACA;EACA,IAAIZ,SAAS,CAACa,SAAS,CAACD,CAAC,CAAC,EAAE;IAC1B,OAAOA,CAAC;EACV;EAEA;EACA,MAAM,IAAIN,KAAK,CAAC,+CAA+CC,MAAM,CAACK,CAAC,CAAC,EAAE,CAAC;AAC7E,CAAC,CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,OAAO,MAAME,IAAI,GACRH,GAAgB,IACtBC,CAAuB,IAA0B;EAChD,IAAIZ,SAAS,CAACa,SAAS,CAACD,CAAC,CAAC,EAAE;IAC1B,OAAOA,CAAC;EACV;EAEA,OAAOD,GAAG,CAACC,CAAC,CAAC;AACf,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,OAAO,MAAMG,aAAa,gBAAGd,IAAI,CAS/B,CAAC,EACD,CACEe,KAAqB,EACrBC,QAAqC,KACZ;EACzB;EACA,MAAM;IAAEC,oBAAoB;IAAEC;EAAiB,CAAE,GAAGpB,KAAK,CAACI,KAAK,CAC7Dc,QAAQ,CACT,CAACG,IAAI,CACJrB,KAAK,CAACsB,IAAI,CAAC,YAAY,EAAE,OAAO;IAC9BH,oBAAoB,EAAE,CAAC;IACvBC,iBAAiB,EAAE;GACpB,CAAC,CAAC,EACHpB,KAAK,CAACsB,IAAI,CAAC,YAAY,EAAE,OAAO;IAC9BH,oBAAoB,EAAE,CAAC;IACvBC,iBAAiB,EAAE;GACpB,CAAC,CAAC,EACHpB,KAAK,CAACuB,UAAU,CACjB;EAED,OAAO,CAACV,CAAW,EAAEW,CAAW,KAAuB;IACrD;IACA,IAAIvB,SAAS,CAACK,YAAY,CAACO,CAAC,CAAC,IAAIZ,SAAS,CAACK,YAAY,CAACkB,CAAC,CAAC,EAAE;MAC1D,OAAOP,KAAK,CAACJ,CAAC,EAAEW,CAAC,CAAC;IACpB;IAEA;IACA,MAAMC,SAAS,GAAGxB,SAAS,CAACK,YAAY,CAACO,CAAC,CAAC,GACvCO,iBAAiB,GACjBD,oBAAoB;IAExB,MAAMO,SAAS,GAAGzB,SAAS,CAACK,YAAY,CAACkB,CAAC,CAAC,GACvCJ,iBAAiB,GACjBD,oBAAoB;IAExB,OAAOpB,YAAY,CAAC4B,IAAI,CAACF,SAAS,GAAGC,SAAS,CAAC;EACjD,CAAC;AACH,CAAC,CACF","ignoreList":[]}
|
package/dist/OptionX.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import { Option } from "effect";
|
|
|
13
13
|
*
|
|
14
14
|
* @example
|
|
15
15
|
* ```ts
|
|
16
|
-
* import { Option } from "effect"
|
|
16
|
+
* import { Option, pipe } from "effect"
|
|
17
17
|
* import { OptionX } from "@nunofyobiz/effect-extras"
|
|
18
18
|
*
|
|
19
19
|
* // Both Some — succeeds with the pair
|
|
@@ -27,12 +27,18 @@ import { Option } from "effect";
|
|
|
27
27
|
* OptionX.tupleOf(Option.some(1), Option.none()),
|
|
28
28
|
* Option.none(),
|
|
29
29
|
* )
|
|
30
|
+
*
|
|
31
|
+
* // Data-last (piped): the piped Option fills the first tuple slot
|
|
32
|
+
* assert.deepStrictEqual(
|
|
33
|
+
* pipe(Option.some(1), OptionX.tupleOf(Option.some("a"))),
|
|
34
|
+
* Option.some([1, "a"]),
|
|
35
|
+
* )
|
|
30
36
|
* ```
|
|
31
37
|
*
|
|
32
38
|
* @category combinators
|
|
33
39
|
* @since 0.0.0
|
|
34
40
|
*/
|
|
35
|
-
export declare const tupleOf: (<
|
|
41
|
+
export declare const tupleOf: (<B>(b: Option.Option<B>) => <A>(a: Option.Option<A>) => Option.Option<[A, B]>) & (<A, B>(a: Option.Option<A>, b: Option.Option<B>) => Option.Option<[A, B]>);
|
|
36
42
|
/**
|
|
37
43
|
* Runs a side effect with the value of an `Option` when it is `Some`, doing
|
|
38
44
|
* nothing when it is `None`.
|
package/dist/OptionX.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionX.d.ts","sourceRoot":"","sources":["../src/OptionX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAGjD
|
|
1
|
+
{"version":3,"file":"OptionX.d.ts","sourceRoot":"","sources":["../src/OptionX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,OAAO,IACjB,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAC5E,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAK1E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,MAAM,IAChB,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,MAClE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAW/D,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,WAAW,IACrB,CAAC,aACW,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAC1B,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAChD,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAU/E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAClC,gBAAgB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,KAClD,MAAM,CAAC,MAAM,CAAC,CAAC,CACuD,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,aAAa,IACvB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,MAC/D,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAG7D,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,kBAAkB,IAC5B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,MACpE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,SAAS,CAGlE,CAAC"}
|
package/dist/OptionX.js
CHANGED
|
@@ -14,7 +14,7 @@ import { dual } from "effect/Function";
|
|
|
14
14
|
*
|
|
15
15
|
* @example
|
|
16
16
|
* ```ts
|
|
17
|
-
* import { Option } from "effect"
|
|
17
|
+
* import { Option, pipe } from "effect"
|
|
18
18
|
* import { OptionX } from "@nunofyobiz/effect-extras"
|
|
19
19
|
*
|
|
20
20
|
* // Both Some — succeeds with the pair
|
|
@@ -28,6 +28,12 @@ import { dual } from "effect/Function";
|
|
|
28
28
|
* OptionX.tupleOf(Option.some(1), Option.none()),
|
|
29
29
|
* Option.none(),
|
|
30
30
|
* )
|
|
31
|
+
*
|
|
32
|
+
* // Data-last (piped): the piped Option fills the first tuple slot
|
|
33
|
+
* assert.deepStrictEqual(
|
|
34
|
+
* pipe(Option.some(1), OptionX.tupleOf(Option.some("a"))),
|
|
35
|
+
* Option.some([1, "a"]),
|
|
36
|
+
* )
|
|
31
37
|
* ```
|
|
32
38
|
*
|
|
33
39
|
* @category combinators
|
package/dist/OptionX.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionX.js","names":["Option","Predicate","pipe","dual","tupleOf","a","b","flatMap","map","ifSome","self","match","onSome","value","onNone","inspectSome","function_","fromNullableOption","nullableOption","isNotNullish","none","mapSomeOrNull","getOrNull","mapSomeOrUndefined","getOrUndefined"],"sources":["../src/OptionX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,MAAM,EAAEC,SAAS,EAAEC,IAAI,QAAQ,QAAQ;AAChD,SAASC,IAAI,QAAQ,iBAAiB;AAEtC
|
|
1
|
+
{"version":3,"file":"OptionX.js","names":["Option","Predicate","pipe","dual","tupleOf","a","b","flatMap","map","ifSome","self","match","onSome","value","onNone","inspectSome","function_","fromNullableOption","nullableOption","isNotNullish","none","mapSomeOrNull","getOrNull","mapSomeOrUndefined","getOrUndefined"],"sources":["../src/OptionX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,MAAM,EAAEC,SAAS,EAAEC,IAAI,QAAQ,QAAQ;AAChD,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,OAAO,MAAMC,OAAO,gBAAGD,IAAI,CAIzB,CAAC,EACD,CAAOE,CAAmB,EAAEC,CAAmB,KAC7CN,MAAM,CAACO,OAAO,CAACF,CAAC,EAAGA,CAAC,IAAKL,MAAM,CAACQ,GAAG,CAACF,CAAC,EAAGA,CAAC,IAAK,CAACD,CAAC,EAAEC,CAAC,CAAC,CAAC,CAAC,CACzD;AAED;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMG,MAAM,gBAAGN,IAAI,CAGxB,CAAC,EAAE,CAAIO,IAAsB,EAAED,MAA0B,KAAU;EACnET,MAAM,CAACW,KAAK,CAACD,IAAI,EAAE;IACjBE,MAAM,EAAGC,KAAK,IAAI;MAChBJ,MAAM,CAACI,KAAK,CAAC;MACb;IACF,CAAC;IACDC,MAAM,EAAEA,CAAA,KAAK;MACX;IAAA;GAEH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAMC,WAAW,gBAAGZ,IAAI,CAM7B,CAAC,EACD,CACEO,IAAsB,EACtBM,SAA6B,KACT;EACpBP,MAAM,CAACC,IAAI,EAAEM,SAAS,CAAC;EACvB,OAAON,IAAI;AACb,CAAC,CACF;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMO,kBAAkB,GAC7BC,cAAmD,IAEnDjB,SAAS,CAACkB,YAAY,CAACD,cAAc,CAAC,GAAGA,cAAc,GAAGlB,MAAM,CAACoB,IAAI,EAAE;AAEzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,OAAO,MAAMC,aAAa,gBAAGlB,IAAI,CAG/B,CAAC,EAAE,CAAOO,IAAsB,EAAEF,GAAgB,KAClDN,IAAI,CAACQ,IAAI,EAAEV,MAAM,CAACQ,GAAG,CAACA,GAAG,CAAC,EAAER,MAAM,CAACsB,SAAS,CAAC,CAC9C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA,OAAO,MAAMC,kBAAkB,gBAAGpB,IAAI,CAGpC,CAAC,EAAE,CAAOO,IAAsB,EAAEF,GAAgB,KAClDN,IAAI,CAACQ,IAAI,EAAEV,MAAM,CAACQ,GAAG,CAACA,GAAG,CAAC,EAAER,MAAM,CAACwB,cAAc,CAAC,CACnD","ignoreList":[]}
|
package/dist/PredicateX.d.ts
CHANGED
|
@@ -73,4 +73,36 @@ export declare const matchRefine: (<A, B extends A, C>(predicate: Predicate.Refi
|
|
|
73
73
|
* @since 0.0.0
|
|
74
74
|
*/
|
|
75
75
|
export declare function isNonEmptyString(value: unknown): value is string;
|
|
76
|
+
/**
|
|
77
|
+
* Refines an `unknown` value to a plain `Record<string, unknown>` — `true` only
|
|
78
|
+
* for a non-null, non-array object whose prototype is `Object.prototype` (an
|
|
79
|
+
* object literal) or `null` (an `Object.create(null)` map).
|
|
80
|
+
*
|
|
81
|
+
* Effect ships no `Predicate.isRecord`. `Predicate.isObject` is the closest, but
|
|
82
|
+
* it also accepts `Map`, `Set`, `Date`, `RegExp`, and class instances. This guard
|
|
83
|
+
* adds a prototype check to rule those out, narrowing to `Record<string, unknown>`
|
|
84
|
+
* so the JSON-tree helpers (`RecordX.deepMerge`, `RecordX.canonicalize`,
|
|
85
|
+
* `RecordX.deleteByPath`) can compose without an `as` cast.
|
|
86
|
+
*
|
|
87
|
+
* It is named **`unsafe`** because the narrowing comes purely from the value's
|
|
88
|
+
* runtime shape — it does *not* validate the key or value types. A symbol-keyed
|
|
89
|
+
* entry still passes despite the `string` key claim, and values are asserted
|
|
90
|
+
* `unknown` without any check. Treat it as a structural convenience, not a
|
|
91
|
+
* `Schema` validation: reach for `Schema` when you need real key/value guarantees.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { PredicateX } from "@nunofyobiz/effect-extras"
|
|
96
|
+
*
|
|
97
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord({ a: 1 }), true)
|
|
98
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(Object.create(null)), true)
|
|
99
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord([1, 2]), false)
|
|
100
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(new Map()), false)
|
|
101
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(null), false)
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
104
|
+
* @category refinements
|
|
105
|
+
* @since 0.0.0
|
|
106
|
+
*/
|
|
107
|
+
export declare function unsafeIsRecord(value: unknown): value is Record<string, unknown>;
|
|
76
108
|
//# sourceMappingURL=PredicateX.d.ts.map
|
package/dist/PredicateX.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PredicateX.d.ts","sourceRoot":"","sources":["../src/PredicateX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,WAAW,IACrB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,aACL,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,YAC3B;IACR,SAAS,EAAE,MAAM,CAAC,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;CAC3B,KACE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MACnB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SACT,CAAC,aACG,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,YAC3B;IAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;CAAE,KACxD,CAAC,CAQP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMhE"}
|
|
1
|
+
{"version":3,"file":"PredicateX.d.ts","sourceRoot":"","sources":["../src/PredicateX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAC;AAG3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,WAAW,IACrB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,aACL,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,YAC3B;IACR,SAAS,EAAE,MAAM,CAAC,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;CAC3B,KACE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MACnB,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,SACT,CAAC,aACG,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,YAC3B;IAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;CAAE,KACxD,CAAC,CAQP,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMhE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMlC"}
|
package/dist/PredicateX.js
CHANGED
|
@@ -70,4 +70,42 @@ export const matchRefine = /*#__PURE__*/dual(3, (value, predicate, handlers) =>
|
|
|
70
70
|
export function isNonEmptyString(value) {
|
|
71
71
|
return Predicate.isNotNullish(value) && Predicate.isString(value) && String.isNonEmpty(value);
|
|
72
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Refines an `unknown` value to a plain `Record<string, unknown>` — `true` only
|
|
75
|
+
* for a non-null, non-array object whose prototype is `Object.prototype` (an
|
|
76
|
+
* object literal) or `null` (an `Object.create(null)` map).
|
|
77
|
+
*
|
|
78
|
+
* Effect ships no `Predicate.isRecord`. `Predicate.isObject` is the closest, but
|
|
79
|
+
* it also accepts `Map`, `Set`, `Date`, `RegExp`, and class instances. This guard
|
|
80
|
+
* adds a prototype check to rule those out, narrowing to `Record<string, unknown>`
|
|
81
|
+
* so the JSON-tree helpers (`RecordX.deepMerge`, `RecordX.canonicalize`,
|
|
82
|
+
* `RecordX.deleteByPath`) can compose without an `as` cast.
|
|
83
|
+
*
|
|
84
|
+
* It is named **`unsafe`** because the narrowing comes purely from the value's
|
|
85
|
+
* runtime shape — it does *not* validate the key or value types. A symbol-keyed
|
|
86
|
+
* entry still passes despite the `string` key claim, and values are asserted
|
|
87
|
+
* `unknown` without any check. Treat it as a structural convenience, not a
|
|
88
|
+
* `Schema` validation: reach for `Schema` when you need real key/value guarantees.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* import { PredicateX } from "@nunofyobiz/effect-extras"
|
|
93
|
+
*
|
|
94
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord({ a: 1 }), true)
|
|
95
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(Object.create(null)), true)
|
|
96
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord([1, 2]), false)
|
|
97
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(new Map()), false)
|
|
98
|
+
* assert.deepStrictEqual(PredicateX.unsafeIsRecord(null), false)
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @category refinements
|
|
102
|
+
* @since 0.0.0
|
|
103
|
+
*/
|
|
104
|
+
export function unsafeIsRecord(value) {
|
|
105
|
+
if (!Predicate.isObject(value)) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
const prototype = Object.getPrototypeOf(value);
|
|
109
|
+
return prototype === Object.prototype || prototype === null;
|
|
110
|
+
}
|
|
73
111
|
//# sourceMappingURL=PredicateX.js.map
|
package/dist/PredicateX.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PredicateX.js","names":["Predicate","String","dual","matchRefine","value","predicate","handlers","whenTrue","whenFalse","isNonEmptyString","isNotNullish","isString","isNonEmpty"],"sources":["../src/PredicateX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,SAAS,EAAEC,MAAM,QAAQ,QAAQ;AAC1C,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,MAAMC,WAAW,gBAAGD,IAAI,CAc7B,CAAC,EACD,CACEE,KAAQ,EACRC,SAAqC,EACrCC,QAA2D,KACpDD,SAAS,CAACD,KAAK,CAAC,GAAGE,QAAQ,CAACC,QAAQ,CAACH,KAAK,CAAC,GAAGE,QAAQ,CAACE,SAAS,EAAG,CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAM,SAAUC,gBAAgBA,CAACL,KAAc;EAC7C,OACEJ,SAAS,CAACU,YAAY,CAACN,KAAK,CAAC,IAC7BJ,SAAS,CAACW,QAAQ,CAACP,KAAK,CAAC,IACzBH,MAAM,CAACW,UAAU,CAACR,KAAK,CAAC;AAE5B","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"PredicateX.js","names":["Predicate","String","dual","matchRefine","value","predicate","handlers","whenTrue","whenFalse","isNonEmptyString","isNotNullish","isString","isNonEmpty","unsafeIsRecord","isObject","prototype","Object","getPrototypeOf"],"sources":["../src/PredicateX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,SAAS,EAAEC,MAAM,QAAQ,QAAQ;AAC1C,SAASC,IAAI,QAAQ,iBAAiB;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,MAAMC,WAAW,gBAAGD,IAAI,CAc7B,CAAC,EACD,CACEE,KAAQ,EACRC,SAAqC,EACrCC,QAA2D,KACpDD,SAAS,CAACD,KAAK,CAAC,GAAGE,QAAQ,CAACC,QAAQ,CAACH,KAAK,CAAC,GAAGE,QAAQ,CAACE,SAAS,EAAG,CAC7E;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAM,SAAUC,gBAAgBA,CAACL,KAAc;EAC7C,OACEJ,SAAS,CAACU,YAAY,CAACN,KAAK,CAAC,IAC7BJ,SAAS,CAACW,QAAQ,CAACP,KAAK,CAAC,IACzBH,MAAM,CAACW,UAAU,CAACR,KAAK,CAAC;AAE5B;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,OAAM,SAAUS,cAAcA,CAC5BT,KAAc;EAEd,IAAI,CAACJ,SAAS,CAACc,QAAQ,CAACV,KAAK,CAAC,EAAE;IAC9B,OAAO,KAAK;EACd;EACA,MAAMW,SAAS,GAAGC,MAAM,CAACC,cAAc,CAACb,KAAK,CAAC;EAC9C,OAAOW,SAAS,KAAKC,MAAM,CAACD,SAAS,IAAIA,SAAS,KAAK,IAAI;AAC7D","ignoreList":[]}
|
package/dist/RecordX.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @since 0.0.0
|
|
5
5
|
*/
|
|
6
|
-
import { Option, Order, Predicate } from "effect";
|
|
6
|
+
import { Option, Order, Predicate, Reducer } from "effect";
|
|
7
7
|
/**
|
|
8
8
|
* Returns `true` when `record` has at least one entry, narrowing it to a
|
|
9
9
|
* known-non-empty `Record`.
|
|
@@ -320,4 +320,131 @@ export declare const upsert: (<K extends string | symbol, V>(key: K, upsert: (ex
|
|
|
320
320
|
* @since 0.0.0
|
|
321
321
|
*/
|
|
322
322
|
export declare const collectBy: (<K extends string | symbol, V>(identify: (v: V) => K) => (values: Iterable<V>) => Record<K, V>) & (<K extends string | symbol, V>(values: Iterable<V>, identify: (v: V) => K) => Record<K, V>);
|
|
323
|
+
/**
|
|
324
|
+
* Deep-merges two JSON values, with `b` winning on conflicts.
|
|
325
|
+
*
|
|
326
|
+
* Plain objects (per `PredicateX.unsafeIsRecord`) are merged recursively,
|
|
327
|
+
* key-by-key; every other shape — primitives, arrays, and impostors like
|
|
328
|
+
* `Map`/`Date`/class instances — is replaced wholesale by `b`. If either side
|
|
329
|
+
* isn't a plain object, `b` is returned as-is. Neither input is mutated. Reach
|
|
330
|
+
* for it to layer partial JSON overrides on top of a base.
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```ts
|
|
334
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
335
|
+
* import { pipe } from "effect"
|
|
336
|
+
*
|
|
337
|
+
* // data-first — nested objects merge, b wins on leaf conflicts
|
|
338
|
+
* assert.deepStrictEqual(
|
|
339
|
+
* RecordX.deepMerge({ a: { x: 1 }, b: 2 }, { a: { y: 3 }, c: 4 }),
|
|
340
|
+
* { a: { x: 1, y: 3 }, b: 2, c: 4 },
|
|
341
|
+
* )
|
|
342
|
+
*
|
|
343
|
+
* // arrays are replaced wholesale, not concatenated
|
|
344
|
+
* assert.deepStrictEqual(RecordX.deepMerge({ a: [1, 2] }, { a: [3] }), { a: [3] })
|
|
345
|
+
*
|
|
346
|
+
* // data-last (pipeable) — merges the override onto the piped base
|
|
347
|
+
* assert.deepStrictEqual(pipe({ a: 1 }, RecordX.deepMerge({ b: 2 })), {
|
|
348
|
+
* a: 1,
|
|
349
|
+
* b: 2,
|
|
350
|
+
* })
|
|
351
|
+
* ```
|
|
352
|
+
*
|
|
353
|
+
* @category combining
|
|
354
|
+
* @since 0.0.0
|
|
355
|
+
*/
|
|
356
|
+
export declare const deepMerge: ((b: unknown) => (a: unknown) => unknown) & ((a: unknown, b: unknown) => unknown);
|
|
357
|
+
/**
|
|
358
|
+
* {@link deepMerge} as a `Reducer` (monoid) with identity `{}`.
|
|
359
|
+
*
|
|
360
|
+
* `deepMergeReducer.combineAll(layers)` folds an iterable of object layers
|
|
361
|
+
* left-to-right via {@link deepMerge} — the universal "merge N JSON objects into
|
|
362
|
+
* one" fold, replacing a hand-rolled `Array.reduce(layers, {}, deepMerge)`. The
|
|
363
|
+
* `{}` identity is exact for the object-valued layers these folds carry: an empty
|
|
364
|
+
* list yields `{}`, and a single layer is returned unchanged.
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* ```ts
|
|
368
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
369
|
+
*
|
|
370
|
+
* assert.deepStrictEqual(
|
|
371
|
+
* RecordX.deepMergeReducer.combineAll([
|
|
372
|
+
* { a: { x: 1 } },
|
|
373
|
+
* { a: { y: 2 }, b: 3 },
|
|
374
|
+
* { b: 4 },
|
|
375
|
+
* ]),
|
|
376
|
+
* { a: { x: 1, y: 2 }, b: 4 },
|
|
377
|
+
* )
|
|
378
|
+
*
|
|
379
|
+
* assert.deepStrictEqual(RecordX.deepMergeReducer.combineAll([]), {})
|
|
380
|
+
* ```
|
|
381
|
+
*
|
|
382
|
+
* @category instances
|
|
383
|
+
* @since 0.0.0
|
|
384
|
+
*/
|
|
385
|
+
export declare const deepMergeReducer: Reducer.Reducer<unknown>;
|
|
386
|
+
/**
|
|
387
|
+
* Canonicalizes a JSON value by recursively sorting object keys; arrays keep
|
|
388
|
+
* their order.
|
|
389
|
+
*
|
|
390
|
+
* Two structurally-equal values that differ only in key order canonicalize to
|
|
391
|
+
* the same shape, so `JSON.stringify(canonicalize(x))` is a stable structural
|
|
392
|
+
* key for comparison, deduping, or hashing. Plain objects (per
|
|
393
|
+
* `PredicateX.unsafeIsRecord`) have their keys sorted ascending and their values
|
|
394
|
+
* canonicalized recursively; arrays are canonicalized element-wise in place;
|
|
395
|
+
* everything else passes through unchanged.
|
|
396
|
+
*
|
|
397
|
+
* @example
|
|
398
|
+
* ```ts
|
|
399
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
400
|
+
*
|
|
401
|
+
* assert.deepStrictEqual(
|
|
402
|
+
* JSON.stringify(RecordX.canonicalize({ b: 1, a: { d: 1, c: 2 } })),
|
|
403
|
+
* JSON.stringify({ a: { c: 2, d: 1 }, b: 1 }),
|
|
404
|
+
* )
|
|
405
|
+
*
|
|
406
|
+
* // arrays keep their order; primitives pass through
|
|
407
|
+
* assert.deepStrictEqual(RecordX.canonicalize([3, 1, 2]), [3, 1, 2])
|
|
408
|
+
* assert.deepStrictEqual(RecordX.canonicalize("x"), "x")
|
|
409
|
+
* ```
|
|
410
|
+
*
|
|
411
|
+
* @category transformations
|
|
412
|
+
* @since 0.0.0
|
|
413
|
+
*/
|
|
414
|
+
export declare const canonicalize: (value: unknown) => unknown;
|
|
415
|
+
/**
|
|
416
|
+
* Immutably deletes the value at a `path` from a JSON object, pruning any parent
|
|
417
|
+
* objects left empty by the deletion.
|
|
418
|
+
*
|
|
419
|
+
* Walks `path` from the root; when it resolves to an existing key, that key is
|
|
420
|
+
* removed and every ancestor that becomes empty as a result is removed too.
|
|
421
|
+
* Returns `Some(newObject)` when the path existed (so callers can tell something
|
|
422
|
+
* changed), or `None` when it was absent or `object` isn't a plain object. The
|
|
423
|
+
* input is never mutated.
|
|
424
|
+
*
|
|
425
|
+
* @example
|
|
426
|
+
* ```ts
|
|
427
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
428
|
+
* import { Option, pipe } from "effect"
|
|
429
|
+
*
|
|
430
|
+
* // deletes the leaf and prunes the now-empty parent
|
|
431
|
+
* assert.deepStrictEqual(
|
|
432
|
+
* RecordX.deleteByPath({ a: { b: 1 } }, ["a", "b"]),
|
|
433
|
+
* Option.some({}),
|
|
434
|
+
* )
|
|
435
|
+
*
|
|
436
|
+
* // a sibling key keeps the parent alive
|
|
437
|
+
* assert.deepStrictEqual(
|
|
438
|
+
* RecordX.deleteByPath({ a: { b: 1, c: 2 } }, ["a", "b"]),
|
|
439
|
+
* Option.some({ a: { c: 2 } }),
|
|
440
|
+
* )
|
|
441
|
+
*
|
|
442
|
+
* // absent path → None; data-last (pipeable) form
|
|
443
|
+
* assert.deepStrictEqual(pipe({ a: 1 }, RecordX.deleteByPath(["b"])), Option.none())
|
|
444
|
+
* ```
|
|
445
|
+
*
|
|
446
|
+
* @category combining
|
|
447
|
+
* @since 0.0.0
|
|
448
|
+
*/
|
|
449
|
+
export declare const deleteByPath: ((path: readonly string[]) => (object: unknown) => Option.Option<unknown>) & ((object: unknown, path: readonly string[]) => Option.Option<unknown>);
|
|
323
450
|
//# sourceMappingURL=RecordX.d.ts.map
|
package/dist/RecordX.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordX.d.ts","sourceRoot":"","sources":["../src/RecordX.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAS,MAAM,EAAE,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"RecordX.d.ts","sourceRoot":"","sources":["../src/RecordX.ts"],"names":[],"mappings":"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"}
|
package/dist/RecordX.js
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @since 0.0.0
|
|
5
5
|
*/
|
|
6
|
-
import { Array, Option, Predicate, Record, pipe } from "effect";
|
|
6
|
+
import { Array, Option, Order, Predicate, Record, Reducer, pipe } from "effect";
|
|
7
7
|
import { dual } from "effect/Function";
|
|
8
8
|
import * as ArrayX from "./ArrayX.js";
|
|
9
|
+
import * as PredicateX from "./PredicateX.js";
|
|
9
10
|
/**
|
|
10
11
|
* Returns `true` when `record` has at least one entry, narrowing it to a
|
|
11
12
|
* known-non-empty `Record`.
|
|
@@ -323,4 +324,164 @@ export const upsert = /*#__PURE__*/dual(3, (record, key, upsert) => {
|
|
|
323
324
|
* @since 0.0.0
|
|
324
325
|
*/
|
|
325
326
|
export const collectBy = /*#__PURE__*/dual(2, (values, identify) => Array.reduce(values, {}, (accumulator, value) => Record.set(accumulator, identify(value), value)));
|
|
327
|
+
/**
|
|
328
|
+
* Deep-merges two JSON values, with `b` winning on conflicts.
|
|
329
|
+
*
|
|
330
|
+
* Plain objects (per `PredicateX.unsafeIsRecord`) are merged recursively,
|
|
331
|
+
* key-by-key; every other shape — primitives, arrays, and impostors like
|
|
332
|
+
* `Map`/`Date`/class instances — is replaced wholesale by `b`. If either side
|
|
333
|
+
* isn't a plain object, `b` is returned as-is. Neither input is mutated. Reach
|
|
334
|
+
* for it to layer partial JSON overrides on top of a base.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```ts
|
|
338
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
339
|
+
* import { pipe } from "effect"
|
|
340
|
+
*
|
|
341
|
+
* // data-first — nested objects merge, b wins on leaf conflicts
|
|
342
|
+
* assert.deepStrictEqual(
|
|
343
|
+
* RecordX.deepMerge({ a: { x: 1 }, b: 2 }, { a: { y: 3 }, c: 4 }),
|
|
344
|
+
* { a: { x: 1, y: 3 }, b: 2, c: 4 },
|
|
345
|
+
* )
|
|
346
|
+
*
|
|
347
|
+
* // arrays are replaced wholesale, not concatenated
|
|
348
|
+
* assert.deepStrictEqual(RecordX.deepMerge({ a: [1, 2] }, { a: [3] }), { a: [3] })
|
|
349
|
+
*
|
|
350
|
+
* // data-last (pipeable) — merges the override onto the piped base
|
|
351
|
+
* assert.deepStrictEqual(pipe({ a: 1 }, RecordX.deepMerge({ b: 2 })), {
|
|
352
|
+
* a: 1,
|
|
353
|
+
* b: 2,
|
|
354
|
+
* })
|
|
355
|
+
* ```
|
|
356
|
+
*
|
|
357
|
+
* @category combining
|
|
358
|
+
* @since 0.0.0
|
|
359
|
+
*/
|
|
360
|
+
export const deepMerge = /*#__PURE__*/dual(2, (a, b) => {
|
|
361
|
+
if (!PredicateX.unsafeIsRecord(a) || !PredicateX.unsafeIsRecord(b)) {
|
|
362
|
+
return b;
|
|
363
|
+
}
|
|
364
|
+
return Record.reduce(b, {
|
|
365
|
+
...a
|
|
366
|
+
}, (accumulator, value, key) => ({
|
|
367
|
+
...accumulator,
|
|
368
|
+
[key]: key in a ? deepMerge(a[key], value) : value
|
|
369
|
+
}));
|
|
370
|
+
});
|
|
371
|
+
/**
|
|
372
|
+
* {@link deepMerge} as a `Reducer` (monoid) with identity `{}`.
|
|
373
|
+
*
|
|
374
|
+
* `deepMergeReducer.combineAll(layers)` folds an iterable of object layers
|
|
375
|
+
* left-to-right via {@link deepMerge} — the universal "merge N JSON objects into
|
|
376
|
+
* one" fold, replacing a hand-rolled `Array.reduce(layers, {}, deepMerge)`. The
|
|
377
|
+
* `{}` identity is exact for the object-valued layers these folds carry: an empty
|
|
378
|
+
* list yields `{}`, and a single layer is returned unchanged.
|
|
379
|
+
*
|
|
380
|
+
* @example
|
|
381
|
+
* ```ts
|
|
382
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
383
|
+
*
|
|
384
|
+
* assert.deepStrictEqual(
|
|
385
|
+
* RecordX.deepMergeReducer.combineAll([
|
|
386
|
+
* { a: { x: 1 } },
|
|
387
|
+
* { a: { y: 2 }, b: 3 },
|
|
388
|
+
* { b: 4 },
|
|
389
|
+
* ]),
|
|
390
|
+
* { a: { x: 1, y: 2 }, b: 4 },
|
|
391
|
+
* )
|
|
392
|
+
*
|
|
393
|
+
* assert.deepStrictEqual(RecordX.deepMergeReducer.combineAll([]), {})
|
|
394
|
+
* ```
|
|
395
|
+
*
|
|
396
|
+
* @category instances
|
|
397
|
+
* @since 0.0.0
|
|
398
|
+
*/
|
|
399
|
+
export const deepMergeReducer = /*#__PURE__*/Reducer.make(deepMerge, {});
|
|
400
|
+
/**
|
|
401
|
+
* Canonicalizes a JSON value by recursively sorting object keys; arrays keep
|
|
402
|
+
* their order.
|
|
403
|
+
*
|
|
404
|
+
* Two structurally-equal values that differ only in key order canonicalize to
|
|
405
|
+
* the same shape, so `JSON.stringify(canonicalize(x))` is a stable structural
|
|
406
|
+
* key for comparison, deduping, or hashing. Plain objects (per
|
|
407
|
+
* `PredicateX.unsafeIsRecord`) have their keys sorted ascending and their values
|
|
408
|
+
* canonicalized recursively; arrays are canonicalized element-wise in place;
|
|
409
|
+
* everything else passes through unchanged.
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```ts
|
|
413
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
414
|
+
*
|
|
415
|
+
* assert.deepStrictEqual(
|
|
416
|
+
* JSON.stringify(RecordX.canonicalize({ b: 1, a: { d: 1, c: 2 } })),
|
|
417
|
+
* JSON.stringify({ a: { c: 2, d: 1 }, b: 1 }),
|
|
418
|
+
* )
|
|
419
|
+
*
|
|
420
|
+
* // arrays keep their order; primitives pass through
|
|
421
|
+
* assert.deepStrictEqual(RecordX.canonicalize([3, 1, 2]), [3, 1, 2])
|
|
422
|
+
* assert.deepStrictEqual(RecordX.canonicalize("x"), "x")
|
|
423
|
+
* ```
|
|
424
|
+
*
|
|
425
|
+
* @category transformations
|
|
426
|
+
* @since 0.0.0
|
|
427
|
+
*/
|
|
428
|
+
export const canonicalize = value => {
|
|
429
|
+
if (Array.isArray(value)) {
|
|
430
|
+
return Array.map(value, canonicalize);
|
|
431
|
+
}
|
|
432
|
+
if (!PredicateX.unsafeIsRecord(value)) {
|
|
433
|
+
return value;
|
|
434
|
+
}
|
|
435
|
+
return pipe(Record.toEntries(value), Array.map(([key, entry]) => [key, canonicalize(entry)]), Array.sort(Order.mapInput(Order.String, ([key]) => key)), Record.fromEntries);
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Immutably deletes the value at a `path` from a JSON object, pruning any parent
|
|
439
|
+
* objects left empty by the deletion.
|
|
440
|
+
*
|
|
441
|
+
* Walks `path` from the root; when it resolves to an existing key, that key is
|
|
442
|
+
* removed and every ancestor that becomes empty as a result is removed too.
|
|
443
|
+
* Returns `Some(newObject)` when the path existed (so callers can tell something
|
|
444
|
+
* changed), or `None` when it was absent or `object` isn't a plain object. The
|
|
445
|
+
* input is never mutated.
|
|
446
|
+
*
|
|
447
|
+
* @example
|
|
448
|
+
* ```ts
|
|
449
|
+
* import { RecordX } from "@nunofyobiz/effect-extras"
|
|
450
|
+
* import { Option, pipe } from "effect"
|
|
451
|
+
*
|
|
452
|
+
* // deletes the leaf and prunes the now-empty parent
|
|
453
|
+
* assert.deepStrictEqual(
|
|
454
|
+
* RecordX.deleteByPath({ a: { b: 1 } }, ["a", "b"]),
|
|
455
|
+
* Option.some({}),
|
|
456
|
+
* )
|
|
457
|
+
*
|
|
458
|
+
* // a sibling key keeps the parent alive
|
|
459
|
+
* assert.deepStrictEqual(
|
|
460
|
+
* RecordX.deleteByPath({ a: { b: 1, c: 2 } }, ["a", "b"]),
|
|
461
|
+
* Option.some({ a: { c: 2 } }),
|
|
462
|
+
* )
|
|
463
|
+
*
|
|
464
|
+
* // absent path → None; data-last (pipeable) form
|
|
465
|
+
* assert.deepStrictEqual(pipe({ a: 1 }, RecordX.deleteByPath(["b"])), Option.none())
|
|
466
|
+
* ```
|
|
467
|
+
*
|
|
468
|
+
* @category combining
|
|
469
|
+
* @since 0.0.0
|
|
470
|
+
*/
|
|
471
|
+
export const deleteByPath = /*#__PURE__*/dual(2, (object, path) => {
|
|
472
|
+
if (!PredicateX.unsafeIsRecord(object)) {
|
|
473
|
+
return Option.none();
|
|
474
|
+
}
|
|
475
|
+
const [head, ...rest] = path;
|
|
476
|
+
if (head === undefined) {
|
|
477
|
+
return Option.none();
|
|
478
|
+
}
|
|
479
|
+
if (rest.length === 0) {
|
|
480
|
+
return head in object ? Option.some(Record.remove(object, head)) : Option.none();
|
|
481
|
+
}
|
|
482
|
+
return Option.map(deleteByPath(object[head], rest), newChild => PredicateX.unsafeIsRecord(newChild) && Record.isEmptyRecord(newChild) ? Record.remove(object, head) : {
|
|
483
|
+
...object,
|
|
484
|
+
[head]: newChild
|
|
485
|
+
});
|
|
486
|
+
});
|
|
326
487
|
//# sourceMappingURL=RecordX.js.map
|
package/dist/RecordX.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecordX.js","names":["Array","Option","Predicate","Record","pipe","dual","ArrayX","isNonEmptyRecord","record","not","isEmptyRecord","modifyIfExists","self","key","f","modify","getOrElse","takeFirstWhere","predicate","order","values","takeLastWhere","takeLast","sort","last","keysAs","getOrThrow","getOrThrowWith","Error","String","keys","onNone","get","upsert","existingValue","updatedValue","set","collectBy","identify","reduce","accumulator","value"],"sources":["../src/RecordX.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;AAKA,SAASA,KAAK,EAAEC,MAAM,
|
|
1
|
+
{"version":3,"file":"RecordX.js","names":["Array","Option","Order","Predicate","Record","Reducer","pipe","dual","ArrayX","PredicateX","isNonEmptyRecord","record","not","isEmptyRecord","modifyIfExists","self","key","f","modify","getOrElse","takeFirstWhere","predicate","order","values","takeLastWhere","takeLast","sort","last","keysAs","getOrThrow","getOrThrowWith","Error","String","keys","onNone","get","upsert","existingValue","updatedValue","set","collectBy","identify","reduce","accumulator","value","deepMerge","a","b","unsafeIsRecord","deepMergeReducer","make","canonicalize","isArray","map","toEntries","entry","mapInput","fromEntries","deleteByPath","object","path","none","head","rest","undefined","length","some","remove","newChild"],"sources":["../src/RecordX.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|