@typed/guard 1.0.0-beta.1 → 1.0.0-beta.11
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/LICENSE +21 -0
- package/README.md +43 -23
- package/dist/getGuard.d.ts +24 -0
- package/dist/getGuard.d.ts.map +1 -0
- package/dist/getGuard.js +37 -0
- package/dist/index.d.ts +510 -45
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +376 -22
- package/examples/basic.ts +23 -0
- package/package.json +34 -16
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -314
- package/src/index.test.ts +0 -370
- package/src/index.ts +0 -661
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,SAAS,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAC7D,KAAK,EAAE,CAAC,KACL,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE3C;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACrB;;OAEG;IACH,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAC7E,CAAC,GACD,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1D,CAAC,GACD,KAAK,CAAC;IAEZ;;OAEG;IACH,KAAY,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAChF,CAAC,GACD,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,GAC1D,CAAC,GACD,KAAK,CAAC;IAEZ;;OAEG;IACH,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAC7E,CAAC,GACD,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1D,CAAC,GACD,KAAK,CAAC;IAEZ;;OAEG;IACH,KAAY,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAC9E,CAAC,GACD,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,GAC1D,CAAC,GACD,KAAK,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK;IAChE,QAAQ,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7F;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACjD,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAmD,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACX,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC/B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACpB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC/B,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAoB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACX,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GACpC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACpB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GACpC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAgB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CASlF,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,GAAG,EAAE;IAChB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAC3B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC3C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACpB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC3C,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAoB/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,CAAC,EAAE,CAAC,EACH,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAC5B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAUlG,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,EACd,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAC3B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EACvB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,GAC3B,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAO9F,CAAC;AAEF;;GAEG;AACH,wBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,EAC3F,MAAM,EAAE,EAAE,GACT,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAY7F;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IACtF,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAEjD,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAC7F,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,EAAE,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI;IAC3F;SACG,CAAC,IAAI,MAAM,EAAE,GAAG;YAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;SAAE;KAC3E,CAAC,MAAM,EAAE,CAAC;CACZ,SAAS,CAAC,MAAM,CAAC,CAAC,GACf,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAKjF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACZ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACrB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAClD,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAiBhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACZ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACrC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACrB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GACrC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAiBhC,CAAC;AAEH,OAAO,EAAE,QAAQ,IAAI,KAAK,EAAE,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE;IACrB,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACtE,GAAG,EAAE,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAC3D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACT,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAE5D,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAC/E,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,EACN,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAC3D,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAkB1D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE;IACpB,CAAC,EAAE,EACD,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,GAClC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EACT,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3F,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EACb,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,GAClC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EACrB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAe5C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE;IAC3B,CAAC,EAAE,EAAE,CAAC,EACJ,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAC9B,OAAO,EAAE,CAAC,GACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAChB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAC9B,OAAO,EAAE,CAAC,GACT,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;CAgBlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE;IACjC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACZ,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACxB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAChC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAkB5C,CAAC;AAIH;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnD,MAAM,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAG3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnD,MAAM,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAG3E;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnB,MAAM,EAAE,CAAC,GACR,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACzB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAClC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,EAC/B,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAc1E,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,EACnB,MAAM,EAAE,CAAC,GACR,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACzB,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAClC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE5E,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,EAC/B,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,EAAE,CAAC,GACR,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;CAc7E,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,IAAI,EAAE;IACV,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EACvB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEjG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,CAAC,EACnC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACxB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,CAAC,GACP,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAUvC,CAAC;AAEH,OAAO;AACL;;GAEG;AACH,IAAI,IAAI,GAAG,GACZ,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,EACA,KAAK,EAAE,CAAC,GACP,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAC5B,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACZ,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,GACP,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAQ5C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,CAAC,SAAS,WAAW,EACpB,GAAG,EAAE,CAAC,GACL,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,WAAW,EAChC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,GACL,KAAK,CAAC,CAAC,EAAE;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAOpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE;IACjB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAC3C,GAAG,EAAE,CAAC,EACN,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC1B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAEpF,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAC3C,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,EACN,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAC1B,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG;SAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;CAuBjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,35 +5,124 @@ import * as Effect from "effect/Effect";
|
|
|
5
5
|
import { dual } from "effect/Function";
|
|
6
6
|
import * as Option from "effect/Option";
|
|
7
7
|
import * as Schema from "effect/Schema";
|
|
8
|
+
export { getGuard } from "./getGuard.js";
|
|
9
|
+
import { getGuard } from "./getGuard.js";
|
|
10
|
+
const invokeGuard = (guard, input) => Effect.suspend(() => guard(input));
|
|
11
|
+
const isObjectRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
12
|
+
const assertObjectRecord = (value) => {
|
|
13
|
+
if (!isObjectRecord(value)) {
|
|
14
|
+
throw new TypeError("Expected a guard object output");
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
};
|
|
18
|
+
const copyEnumerableRecord = (source) => {
|
|
19
|
+
const output = {};
|
|
20
|
+
for (const key of Reflect.ownKeys(source)) {
|
|
21
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key))
|
|
22
|
+
continue;
|
|
23
|
+
output[key] = source[key];
|
|
24
|
+
}
|
|
25
|
+
return output;
|
|
26
|
+
};
|
|
27
|
+
const extendEnumerableRecord = (source, key, value) => {
|
|
28
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) {
|
|
29
|
+
throw new TypeError(`Guard output already contains key: ${String(key)}`);
|
|
30
|
+
}
|
|
31
|
+
const output = copyEnumerableRecord(source);
|
|
32
|
+
output[key] = value;
|
|
33
|
+
return output;
|
|
34
|
+
};
|
|
35
|
+
const mergeEnumerableRecords = (base, extension) => {
|
|
36
|
+
const output = copyEnumerableRecord(base);
|
|
37
|
+
for (const key of Reflect.ownKeys(extension)) {
|
|
38
|
+
if (!Object.prototype.propertyIsEnumerable.call(extension, key))
|
|
39
|
+
continue;
|
|
40
|
+
if (Object.prototype.propertyIsEnumerable.call(output, key)) {
|
|
41
|
+
throw new TypeError(`Guard output already contains key: ${String(key)}`);
|
|
42
|
+
}
|
|
43
|
+
output[key] = extension[key];
|
|
44
|
+
}
|
|
45
|
+
return output;
|
|
46
|
+
};
|
|
8
47
|
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
48
|
+
* Runs `output` only when `input` matches. `None` short-circuits successfully,
|
|
49
|
+
* while failures and service requirements are preserved from both Guards.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* ## Why
|
|
53
|
+
* Sequential Guard composition must preserve ordinary non-match while unioning the typed error and service channels of both stages.
|
|
54
|
+
*
|
|
55
|
+
* ## Ownership and lifetime
|
|
56
|
+
* Construction acquires no resources; each invocation runs the first Effect and only starts the second after `Some`.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { liftPredicate, pipe } from "@typed/guard"
|
|
61
|
+
* const nonEmpty = pipe(liftPredicate((u: unknown): u is string => typeof u === "string"), liftPredicate((s) => s.length > 0))
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @category Sequential composition
|
|
13
65
|
* @since 1.0.0
|
|
14
66
|
*/
|
|
15
67
|
export const pipe = dual(2, function flatMap(input, output) {
|
|
16
68
|
const g1 = getGuard(input);
|
|
17
69
|
const g2 = getGuard(output);
|
|
18
|
-
return (i) => Effect.flatMapEager(g1
|
|
70
|
+
return (i) => Effect.flatMapEager(invokeGuard(g1, i), Option.match({
|
|
19
71
|
onNone: () => Effect.succeedNone,
|
|
20
|
-
onSome: g2,
|
|
72
|
+
onSome: (value) => invokeGuard(g2, value),
|
|
21
73
|
}));
|
|
22
74
|
});
|
|
23
75
|
/**
|
|
76
|
+
* Maps matched output with an Effect while preserving `None`.
|
|
77
|
+
* @remarks
|
|
78
|
+
* ## Why
|
|
79
|
+
* Effectful mapping can add typed errors and services without changing non-match into failure.
|
|
80
|
+
* ## Ownership and lifetime
|
|
81
|
+
* Construction acquires no resources; the mapping Effect starts only after the source Guard produces `Some`.
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* import { liftPredicate, mapEffect } from "@typed/guard"
|
|
85
|
+
* import { Effect } from "effect"
|
|
86
|
+
* const length = mapEffect(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => Effect.succeed(s.length))
|
|
87
|
+
* ```
|
|
88
|
+
* @category Value transformations
|
|
24
89
|
* @since 1.0.0
|
|
25
90
|
*/
|
|
26
91
|
export const mapEffect = dual(2, function mapEffect(guard, f) {
|
|
27
92
|
return pipe(guard, (o) => Effect.asSome(f(o)));
|
|
28
93
|
});
|
|
29
94
|
/**
|
|
95
|
+
* Maps matched output synchronously while preserving non-match and Effect channels.
|
|
96
|
+
* @remarks
|
|
97
|
+
* ## Why
|
|
98
|
+
* Pure output adaptation should not add errors or services and should never run for `None`.
|
|
99
|
+
* ## Ownership and lifetime
|
|
100
|
+
* Construction acquires no resources; the callback runs once for each `Some` during Effect execution.
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* import { liftPredicate, map } from "@typed/guard"
|
|
104
|
+
* const length = map(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => s.length)
|
|
105
|
+
* ```
|
|
106
|
+
* @category Value transformations
|
|
30
107
|
* @since 1.0.0
|
|
31
108
|
*/
|
|
32
109
|
export const map = dual(2, function map(guard, f) {
|
|
33
110
|
const g = getGuard(guard);
|
|
34
|
-
return (i) => Effect.mapEager(g
|
|
111
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.map(f));
|
|
35
112
|
});
|
|
36
113
|
/**
|
|
114
|
+
* Runs a synchronous or Effectful observation for each matched value and returns the value unchanged.
|
|
115
|
+
* @remarks
|
|
116
|
+
* ## Why
|
|
117
|
+
* Observation composes without changing output, while Effect callbacks correctly contribute their errors and services.
|
|
118
|
+
* ## Ownership and lifetime
|
|
119
|
+
* Construction acquires no resources; callback lifetime is bounded by each matching Guard invocation.
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* import { liftPredicate, tap } from "@typed/guard"
|
|
123
|
+
* const observed = tap(liftPredicate((u: unknown): u is string => typeof u === "string"), console.log)
|
|
124
|
+
* ```
|
|
125
|
+
* @category Effectful observation
|
|
37
126
|
* @since 1.0.0
|
|
38
127
|
*/
|
|
39
128
|
export const tap = dual(2, function tap(guard, f) {
|
|
@@ -45,27 +134,73 @@ export const tap = dual(2, function tap(guard, f) {
|
|
|
45
134
|
});
|
|
46
135
|
});
|
|
47
136
|
/**
|
|
137
|
+
* Refines and maps a matched value with an Option-returning function.
|
|
138
|
+
* @remarks
|
|
139
|
+
* ## Why
|
|
140
|
+
* `Option.none` provides a second ordinary non-match stage without introducing typed failure.
|
|
141
|
+
* ## Ownership and lifetime
|
|
142
|
+
* This combinator acquires no resources; the callback runs only for source matches.
|
|
143
|
+
* @example
|
|
144
|
+
* ```ts
|
|
145
|
+
* import { filterMap, liftPredicate } from "@typed/guard"
|
|
146
|
+
* import { Option } from "effect"
|
|
147
|
+
* const parsed = filterMap(liftPredicate((u: unknown): u is string => typeof u === "string"), (s) => s ? Option.some(Number(s)) : Option.none())
|
|
148
|
+
* ```
|
|
149
|
+
* @category Input selection
|
|
48
150
|
* @since 1.0.0
|
|
49
151
|
*/
|
|
50
152
|
export const filterMap = dual(2, (guard, f) => {
|
|
51
153
|
const g = getGuard(guard);
|
|
52
|
-
return (i) => Effect.mapEager(g
|
|
154
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.flatMap(f));
|
|
53
155
|
});
|
|
54
156
|
/**
|
|
157
|
+
* Keeps matched values that satisfy a predicate or refinement.
|
|
158
|
+
* @remarks
|
|
159
|
+
* ## Why
|
|
160
|
+
* Predicate failure remains successful `None`, preserving Guard dispatch semantics and type refinement.
|
|
161
|
+
* ## Ownership and lifetime
|
|
162
|
+
* This combinator acquires no resources; the predicate runs only for source matches.
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* import { filter, liftPredicate } from "@typed/guard"
|
|
166
|
+
* const positive = filter(liftPredicate((u: unknown): u is number => typeof u === "number"), (n) => n > 0)
|
|
167
|
+
* ```
|
|
168
|
+
* @category Input selection
|
|
55
169
|
* @since 1.0.0
|
|
56
170
|
*/
|
|
57
171
|
export const filter = dual(2, (guard, predicate) => {
|
|
58
172
|
const g = getGuard(guard);
|
|
59
|
-
return (i) => Effect.mapEager(g
|
|
173
|
+
return (i) => Effect.mapEager(invokeGuard(g, i), Option.filter(predicate));
|
|
60
174
|
});
|
|
61
175
|
/**
|
|
176
|
+
* Runs candidates sequentially and returns the first match tagged with its key.
|
|
177
|
+
* Candidates are snapshotted from own enumerable keys when `any` is called.
|
|
178
|
+
* ECMAScript own-key order applies: integer-index strings, other strings, then
|
|
179
|
+
* symbols.
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* ## Why
|
|
183
|
+
* Ordered first-match dispatch turns independently composable Guards into a deterministic tagged union without treating `None` as failure.
|
|
184
|
+
*
|
|
185
|
+
* ## Ownership and lifetime
|
|
186
|
+
* Construction snapshots own enumerable entries and acquires no resources; each run executes candidates sequentially until the first `Some`.
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```ts
|
|
190
|
+
* import { any, liftPredicate } from "@typed/guard"
|
|
191
|
+
* const classify = any({ text: liftPredicate((u: unknown): u is string => typeof u === "string") })
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @category Alternative selection
|
|
62
195
|
* @since 1.0.0
|
|
63
196
|
*/
|
|
64
197
|
export function any(guards) {
|
|
65
|
-
const entries =
|
|
198
|
+
const entries = Reflect.ownKeys(guards)
|
|
199
|
+
.filter((key) => Object.prototype.propertyIsEnumerable.call(guards, key))
|
|
200
|
+
.map((key) => [key, getGuard(guards[key])]);
|
|
66
201
|
return (i) => Effect.gen(function* () {
|
|
67
202
|
for (const [_tag, guard] of entries) {
|
|
68
|
-
const match = yield* guard
|
|
203
|
+
const match = yield* invokeGuard(guard, i);
|
|
69
204
|
if (Option.isSome(match)) {
|
|
70
205
|
return Option.some({ _tag, value: match.value });
|
|
71
206
|
}
|
|
@@ -74,53 +209,162 @@ export function any(guards) {
|
|
|
74
209
|
});
|
|
75
210
|
}
|
|
76
211
|
export function liftPredicate(predicate) {
|
|
77
|
-
return (a) => Effect.
|
|
212
|
+
return (a) => Effect.sync(() => (predicate(a) ? Option.some(a) : Option.none()));
|
|
78
213
|
}
|
|
79
214
|
/**
|
|
215
|
+
* Recovers from the complete Effect Cause and lifts the recovery result into `Some`.
|
|
216
|
+
* @remarks
|
|
217
|
+
* ## Why
|
|
218
|
+
* Cause-aware recovery can deliberately handle typed failures, defects, and interruption; `None` remains an unrecovered non-match.
|
|
219
|
+
* ## Ownership and lifetime
|
|
220
|
+
* Construction acquires no resources; recovery starts only when the source Effect fails and follows that invocation's lifetime.
|
|
221
|
+
* @example
|
|
222
|
+
* ```ts
|
|
223
|
+
* import { catchCause } from "@typed/guard"
|
|
224
|
+
* import type { Guard } from "@typed/guard"
|
|
225
|
+
* import { Effect } from "effect"
|
|
226
|
+
* const source: Guard<string, string, string> = (input) => input ? Effect.succeedSome(input) : Effect.fail("empty")
|
|
227
|
+
* const recovered = catchCause(source, () => Effect.succeed("fallback"))
|
|
228
|
+
* ```
|
|
229
|
+
* @category Error recovery
|
|
80
230
|
* @since 1.0.0
|
|
81
231
|
*/
|
|
82
232
|
export const catchCause = dual(2, function catchCause(guard, f) {
|
|
83
233
|
const g = getGuard(guard);
|
|
84
|
-
return (i) => Effect.catchCause(g
|
|
234
|
+
return (i) => Effect.catchCause(invokeGuard(g, i), (a) => Effect.asSome(f(a)));
|
|
85
235
|
});
|
|
86
236
|
/**
|
|
237
|
+
* Recovers typed failures and lifts the recovery result into `Some`.
|
|
238
|
+
* @remarks
|
|
239
|
+
* ## Why
|
|
240
|
+
* Typed recovery leaves defects and interruption untouched and does not confuse successful `None` with failure. The exported `catch` name is an alias of this declaration.
|
|
241
|
+
* ## Ownership and lifetime
|
|
242
|
+
* Construction acquires no resources; recovery starts only for typed failure during the source invocation.
|
|
243
|
+
* @example
|
|
244
|
+
* ```ts
|
|
245
|
+
* import { catchAll } from "@typed/guard"
|
|
246
|
+
* import type { Guard } from "@typed/guard"
|
|
247
|
+
* import { Effect } from "effect"
|
|
248
|
+
* const source: Guard<string, string, string> = (input) => input ? Effect.succeedSome(input) : Effect.fail("empty")
|
|
249
|
+
* const recovered = catchAll(source, (error) => Effect.succeed(error.length))
|
|
250
|
+
* ```
|
|
251
|
+
* @category Error recovery
|
|
87
252
|
* @since 1.0.0
|
|
88
253
|
*/
|
|
89
254
|
export const catchAll = dual(2, function catchAll(guard, f) {
|
|
90
255
|
const g = getGuard(guard);
|
|
91
|
-
return (i) => Effect.catchEager(g
|
|
256
|
+
return (i) => Effect.catchEager(invokeGuard(g, i), (a) => Effect.asSome(f(a)));
|
|
92
257
|
});
|
|
93
258
|
export { catchAll as catch };
|
|
94
259
|
/**
|
|
260
|
+
* Recovers selected tagged typed failures and leaves unmatched tags in the error channel.
|
|
261
|
+
* @remarks
|
|
262
|
+
* ## Why
|
|
263
|
+
* Tag-specific recovery preserves type-safe residual errors while lifting recovered output into `Some`; `None`, defects, and interruption are unchanged.
|
|
264
|
+
* ## Ownership and lifetime
|
|
265
|
+
* Construction acquires no resources; the handler runs only for matching tagged failures during an invocation.
|
|
266
|
+
* @example
|
|
267
|
+
* ```ts
|
|
268
|
+
* import { catchTag } from "@typed/guard"
|
|
269
|
+
* import type { Guard } from "@typed/guard"
|
|
270
|
+
* import { Effect } from "effect"
|
|
271
|
+
* type NotFound = { readonly _tag: "NotFound" }
|
|
272
|
+
* const source: Guard<string, string, NotFound> = (input) => input ? Effect.succeedSome(input) : Effect.fail({ _tag: "NotFound" })
|
|
273
|
+
* const recovered = catchTag(source, "NotFound", () => Effect.succeed("fallback"))
|
|
274
|
+
* ```
|
|
275
|
+
* @category Error recovery
|
|
95
276
|
* @since 1.0.0
|
|
96
277
|
*/
|
|
97
|
-
export const catchTag = dual(3,
|
|
278
|
+
export const catchTag = dual(3, (guard, tag, f) => {
|
|
98
279
|
const g = getGuard(guard);
|
|
99
|
-
return (i) => Effect.catchTag(g
|
|
280
|
+
return ((i) => Effect.catchTag(invokeGuard(g, i), tag, (e) => Effect.asSome(f(e))));
|
|
100
281
|
});
|
|
101
282
|
/**
|
|
283
|
+
* Provides a Context or Layer to a Guard's Effect.
|
|
284
|
+
* @remarks
|
|
285
|
+
* ## Why
|
|
286
|
+
* Provision removes supplied services from `R`; Layers may also contribute acquisition errors and their own requirements exactly as Effect does.
|
|
287
|
+
* ## Ownership and lifetime
|
|
288
|
+
* A Context acquires no resources here. Layer resources are acquired and released according to the Effect Scope that runs the Guard.
|
|
289
|
+
* @example
|
|
290
|
+
* ```ts
|
|
291
|
+
* import { provide } from "@typed/guard"
|
|
292
|
+
* import type { Guard } from "@typed/guard"
|
|
293
|
+
* import { Context, Effect, Option } from "effect"
|
|
294
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
295
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
296
|
+
* const guard = provide(requiresFlag, Context.make(Flag, { enabled: true }))
|
|
297
|
+
* ```
|
|
298
|
+
* See [Effect services and Layers](https://effect.website/docs/requirements-management/layers/).
|
|
299
|
+
* @category Services
|
|
102
300
|
* @since 1.0.0
|
|
103
301
|
*/
|
|
104
302
|
export const provide = dual(2, function provide(guard, provided) {
|
|
105
303
|
const g = getGuard(guard);
|
|
106
|
-
return (i) => Effect.provide(g
|
|
304
|
+
return (i) => Effect.provide(invokeGuard(g, i), provided);
|
|
107
305
|
});
|
|
108
306
|
/**
|
|
307
|
+
* Provides one concrete service to a Guard.
|
|
308
|
+
* @remarks
|
|
309
|
+
* ## Why
|
|
310
|
+
* Targeted service provision removes only the selected identifier from the Guard environment.
|
|
311
|
+
* ## Ownership and lifetime
|
|
312
|
+
* This combinator acquires no resources and reuses the supplied service for each invocation.
|
|
313
|
+
* @example
|
|
314
|
+
* ```ts
|
|
315
|
+
* import { provideService } from "@typed/guard"
|
|
316
|
+
* import type { Guard } from "@typed/guard"
|
|
317
|
+
* import { Context, Effect, Option } from "effect"
|
|
318
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
319
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
320
|
+
* const guard = provideService(requiresFlag, Flag, { enabled: true })
|
|
321
|
+
* ```
|
|
322
|
+
* @category Services
|
|
109
323
|
* @since 1.0.0
|
|
110
324
|
*/
|
|
111
325
|
export const provideService = dual(3, function provideService(guard, tag, service) {
|
|
112
326
|
const g = getGuard(guard);
|
|
113
|
-
return (i) => Effect.provideService(g
|
|
327
|
+
return (i) => Effect.provideService(invokeGuard(g, i), tag, service);
|
|
114
328
|
});
|
|
115
329
|
/**
|
|
330
|
+
* Provides a service produced by an Effect to a Guard.
|
|
331
|
+
* @remarks
|
|
332
|
+
* ## Why
|
|
333
|
+
* Effectful provision makes acquisition errors and required services explicit in the composed Guard channels.
|
|
334
|
+
* ## Ownership and lifetime
|
|
335
|
+
* The service Effect runs for each Guard invocation and is interrupted with that invocation; scoped resources follow the surrounding Scope.
|
|
336
|
+
* @example
|
|
337
|
+
* ```ts
|
|
338
|
+
* import { provideServiceEffect } from "@typed/guard"
|
|
339
|
+
* import type { Guard } from "@typed/guard"
|
|
340
|
+
* import { Context, Effect, Option } from "effect"
|
|
341
|
+
* const Flag = Context.Service<{ readonly enabled: boolean }>("Flag")
|
|
342
|
+
* const requiresFlag: Guard<boolean, boolean, never, Context.Service.Identifier<typeof Flag>> = (input) => Effect.map(Effect.service(Flag), ({ enabled }) => enabled && input ? Option.some(input) : Option.none())
|
|
343
|
+
* const guard = provideServiceEffect(requiresFlag, Flag, Effect.succeed({ enabled: true }))
|
|
344
|
+
* ```
|
|
345
|
+
* @category Services
|
|
116
346
|
* @since 1.0.0
|
|
117
347
|
*/
|
|
118
348
|
export const provideServiceEffect = dual(3, function provideServiceEffect(guard, tag, service) {
|
|
119
349
|
const g = getGuard(guard);
|
|
120
|
-
return (i) => Effect.provideServiceEffect(g
|
|
350
|
+
return (i) => Effect.provideServiceEffect(invokeGuard(g, i), tag, service);
|
|
121
351
|
});
|
|
122
352
|
const parseOptions = { errors: "all", onExcessProperty: "ignore" };
|
|
123
353
|
/**
|
|
354
|
+
* Creates a Guard that decodes a schema's Encoded input to its Type.
|
|
355
|
+
* @remarks
|
|
356
|
+
* ## Why
|
|
357
|
+
* Schema decoding reports all issues, ignores excess properties, retains `SchemaError` in the typed channel, and carries decoding services in `R`.
|
|
358
|
+
* ## Ownership and lifetime
|
|
359
|
+
* Construction acquires no resources; schema services and any scoped work follow each returned Effect invocation.
|
|
360
|
+
* @example
|
|
361
|
+
* ```ts
|
|
362
|
+
* import { fromSchemaDecode } from "@typed/guard"
|
|
363
|
+
* import { Schema } from "effect"
|
|
364
|
+
* const number = fromSchemaDecode(Schema.NumberFromString)
|
|
365
|
+
* ```
|
|
366
|
+
* See [Effect Schema transformations](https://effect.website/docs/schema/transformations/).
|
|
367
|
+
* @category Schema decoding and encoding
|
|
124
368
|
* @since 1.0.0
|
|
125
369
|
*/
|
|
126
370
|
export function fromSchemaDecode(schema) {
|
|
@@ -128,6 +372,19 @@ export function fromSchemaDecode(schema) {
|
|
|
128
372
|
return (i) => Effect.asSome(decode_(i, parseOptions));
|
|
129
373
|
}
|
|
130
374
|
/**
|
|
375
|
+
* Creates a Guard that encodes a schema's Type to its Encoded representation.
|
|
376
|
+
* @remarks
|
|
377
|
+
* ## Why
|
|
378
|
+
* Schema encoding is the reverse direction of decoding and keeps encoding services and `SchemaError` visible in the Guard type.
|
|
379
|
+
* ## Ownership and lifetime
|
|
380
|
+
* Construction acquires no resources; schema services and any scoped work follow each returned Effect invocation.
|
|
381
|
+
* @example
|
|
382
|
+
* ```ts
|
|
383
|
+
* import { fromSchemaEncode } from "@typed/guard"
|
|
384
|
+
* import { Schema } from "effect"
|
|
385
|
+
* const encoded = fromSchemaEncode(Schema.NumberFromString)
|
|
386
|
+
* ```
|
|
387
|
+
* @category Schema decoding and encoding
|
|
131
388
|
* @since 1.0.0
|
|
132
389
|
*/
|
|
133
390
|
export function fromSchemaEncode(schema) {
|
|
@@ -135,42 +392,139 @@ export function fromSchemaEncode(schema) {
|
|
|
135
392
|
return (a) => Effect.asSome(encode_(a, parseOptions));
|
|
136
393
|
}
|
|
137
394
|
/**
|
|
395
|
+
* Decodes each matched encoded value through an Effect Schema.
|
|
396
|
+
* @remarks
|
|
397
|
+
* ## Why
|
|
398
|
+
* The composed Guard preserves source non-match and errors while adding schema failures and decoding service requirements.
|
|
399
|
+
* ## Ownership and lifetime
|
|
400
|
+
* Construction acquires no resources; decoding starts only for `Some` and follows that invocation's lifetime.
|
|
401
|
+
* @example
|
|
402
|
+
* ```ts
|
|
403
|
+
* import { decode, liftPredicate } from "@typed/guard"
|
|
404
|
+
* import { Schema } from "effect"
|
|
405
|
+
* const number = decode(liftPredicate((u: unknown): u is string => typeof u === "string"), Schema.NumberFromString)
|
|
406
|
+
* ```
|
|
407
|
+
* @category Schema decoding and encoding
|
|
138
408
|
* @since 1.0.0
|
|
139
409
|
*/
|
|
140
410
|
export const decode = dual(2, function decode(guard, schema) {
|
|
141
411
|
return pipe(guard, fromSchemaDecode(schema));
|
|
142
412
|
});
|
|
143
413
|
/**
|
|
414
|
+
* Encodes each matched schema Type to its Encoded representation.
|
|
415
|
+
* @remarks
|
|
416
|
+
* ## Why
|
|
417
|
+
* The composed Guard preserves source non-match and errors while adding schema failures and encoding service requirements.
|
|
418
|
+
* ## Ownership and lifetime
|
|
419
|
+
* Construction acquires no resources; encoding starts only for `Some` and follows that invocation's lifetime.
|
|
420
|
+
* @example
|
|
421
|
+
* ```ts
|
|
422
|
+
* import { encode, liftPredicate } from "@typed/guard"
|
|
423
|
+
* import { Schema } from "effect"
|
|
424
|
+
* const text = encode(liftPredicate((u: unknown): u is number => typeof u === "number"), Schema.NumberFromString)
|
|
425
|
+
* ```
|
|
426
|
+
* @category Schema decoding and encoding
|
|
144
427
|
* @since 1.0.0
|
|
145
428
|
*/
|
|
146
429
|
export const encode = dual(2, function encode(guard, schema) {
|
|
147
430
|
return pipe(guard, fromSchemaEncode(schema));
|
|
148
431
|
});
|
|
149
432
|
/**
|
|
433
|
+
* Adds a fixed property to every matched record output.
|
|
434
|
+
* @remarks
|
|
435
|
+
* ## Why
|
|
436
|
+
* Record construction does not mutate the input and rejects existing enumerable keys; it returns an unfrozen plain object containing own enumerable string and symbol properties while dropping prototypes and non-enumerables.
|
|
437
|
+
* ## Ownership and lifetime
|
|
438
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
439
|
+
* @example
|
|
440
|
+
* ```ts
|
|
441
|
+
* import { bindTo, let as letGuard, liftPredicate } from "@typed/guard"
|
|
442
|
+
* const named = letGuard(bindTo(liftPredicate(Boolean), "value"), "kind", "input")
|
|
443
|
+
* ```
|
|
444
|
+
* @category Record construction
|
|
150
445
|
* @since 1.0.0
|
|
151
446
|
*/
|
|
152
447
|
const let_ = dual(3, function attachProperty(guard, key, value) {
|
|
153
|
-
return map(guard, (a) => (
|
|
448
|
+
return map(guard, (a) => extendEnumerableRecord(assertObjectRecord(a), key, value));
|
|
154
449
|
});
|
|
155
450
|
export {
|
|
156
451
|
/**
|
|
452
|
+
* Adds a fixed property to every matched object output. The key must not
|
|
453
|
+
* already exist; use `bindTo` first when the prior output is not an object.
|
|
454
|
+
*
|
|
455
|
+
* This alias shares the canonical documentation and behavior of `let_`.
|
|
456
|
+
*
|
|
157
457
|
* @since 1.0.0
|
|
158
458
|
*/
|
|
159
459
|
let_ as let, };
|
|
160
460
|
/**
|
|
461
|
+
* Adds a readonly `_tag` to every matched object output. The output must not
|
|
462
|
+
* already have an `_tag` property.
|
|
463
|
+
*
|
|
464
|
+
* @remarks
|
|
465
|
+
* ## Why
|
|
466
|
+
* A typed discriminant turns matched record outputs into exhaustively narrowable tagged values while rejecting key collisions.
|
|
467
|
+
*
|
|
468
|
+
* ## Ownership and lifetime
|
|
469
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
470
|
+
*
|
|
471
|
+
* @example
|
|
472
|
+
* ```ts
|
|
473
|
+
* import { addTag, bindTo, liftPredicate } from "@typed/guard"
|
|
474
|
+
* const tagged = addTag(bindTo(liftPredicate(Boolean), "value"), "Input")
|
|
475
|
+
* ```
|
|
476
|
+
*
|
|
477
|
+
* @category Record construction
|
|
161
478
|
* @since 1.0.0
|
|
162
479
|
*/
|
|
163
480
|
export const addTag = dual(2, function attachProperty(guard, value) {
|
|
164
|
-
return map(guard, (a) => (
|
|
481
|
+
return map(guard, (a) => extendEnumerableRecord(assertObjectRecord(a), "_tag", value));
|
|
165
482
|
});
|
|
166
483
|
/**
|
|
484
|
+
* Wraps any matched output in a new object under `key`. This is the explicit
|
|
485
|
+
* transition from an arbitrary output to the record-building workflow.
|
|
486
|
+
*
|
|
487
|
+
* @remarks
|
|
488
|
+
* ## Why
|
|
489
|
+
* Explicit wrapping makes arbitrary values safe for record combinators without assuming their runtime shape.
|
|
490
|
+
*
|
|
491
|
+
* ## Ownership and lifetime
|
|
492
|
+
* This pure combinator acquires no resources and creates a fresh plain object for every match.
|
|
493
|
+
*
|
|
494
|
+
* @example
|
|
495
|
+
* ```ts
|
|
496
|
+
* import { bindTo, liftPredicate } from "@typed/guard"
|
|
497
|
+
* const named = bindTo(liftPredicate(Boolean), "value")
|
|
498
|
+
* ```
|
|
499
|
+
*
|
|
500
|
+
* @category Record construction
|
|
167
501
|
* @since 1.0.0
|
|
168
502
|
*/
|
|
169
503
|
export const bindTo = dual(2, (guard, key) => map(guard, (a) => ({ [key]: a })));
|
|
170
504
|
/**
|
|
505
|
+
* Runs `f` on a matched object and adds its matched value under a new key. The
|
|
506
|
+
* key must not already exist. Enumerable getters and proxy traps may execute
|
|
507
|
+
* during the object spread.
|
|
508
|
+
*
|
|
509
|
+
* @remarks
|
|
510
|
+
* ## Why
|
|
511
|
+
* Dependent record construction runs the second Guard only after the base matches, preserves `None`, and unions both error and service channels.
|
|
512
|
+
*
|
|
513
|
+
* ## Ownership and lifetime
|
|
514
|
+
* Construction acquires no resources; each successful bind creates a fresh plain object and the dependent Effect follows the invocation lifetime.
|
|
515
|
+
*
|
|
516
|
+
* @example
|
|
517
|
+
* ```ts
|
|
518
|
+
* import { bind, bindTo, liftPredicate, map } from "@typed/guard"
|
|
519
|
+
* const base = bindTo(liftPredicate((u: unknown): u is string => typeof u === "string"), "text")
|
|
520
|
+
* const nonEmptyLength = map(liftPredicate((record: { readonly text: string }) => record.text.length > 0), (record) => record.text.length)
|
|
521
|
+
* const sized = bind(base, "length", nonEmptyLength)
|
|
522
|
+
* ```
|
|
523
|
+
*
|
|
524
|
+
* @category Record construction
|
|
171
525
|
* @since 1.0.0
|
|
172
526
|
*/
|
|
173
527
|
export const bind = dual(3, function bind(guard, key, f) {
|
|
174
528
|
const f_ = bindTo(f, key);
|
|
175
|
-
return pipe(guard, (o) => Effect.mapEager(f_
|
|
529
|
+
return pipe(guard, (o) => Effect.mapEager(invokeGuard(f_, o), Option.map((b) => mergeEnumerableRecords(assertObjectRecord(o), b))));
|
|
176
530
|
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Effect, Option } from "effect";
|
|
2
|
+
import * as Guard from "@typed/guard";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
|
|
5
|
+
const Positive = Schema.Finite.check(Schema.isGreaterThan(0));
|
|
6
|
+
const positive = Guard.fromSchemaDecode(Positive);
|
|
7
|
+
|
|
8
|
+
const program = positive(42).pipe(
|
|
9
|
+
Effect.map(
|
|
10
|
+
Option.match({
|
|
11
|
+
onNone: () => "not a positive number",
|
|
12
|
+
onSome: (n) => `ok: ${n}`,
|
|
13
|
+
}),
|
|
14
|
+
),
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
const result = await Effect.runPromise(program);
|
|
18
|
+
console.log(result); // "ok: 42"
|
|
19
|
+
|
|
20
|
+
const even = Guard.liftPredicate((n: number) => n % 2 === 0);
|
|
21
|
+
const positiveEven = Guard.pipe(positive, even);
|
|
22
|
+
|
|
23
|
+
void positiveEven;
|