1- import { A , DPE , keyWrappedValue , O , pipe , type UnionToIntersection } from "@duplojs/utils" ;
2- import { constrainedTypeKind , createConstraintsSet , type EligiblePrimitive , type GetConstraint , type Primitive } from "@duplojs/utils/clean" ;
1+ import { DPE , type UnionToIntersection , C } from "@duplojs/utils" ;
2+ import "@duplojs/utils/clean" ;
3+
4+ interface ToExtractParserParams {
5+ coerce ?: boolean ;
6+ }
37
48declare module "@duplojs/utils/clean" {
59 interface ConstraintsSetHandler <
6- GenericPrimitiveValue extends EligiblePrimitive = EligiblePrimitive ,
10+ GenericPrimitiveValue extends C . EligiblePrimitive = C . EligiblePrimitive ,
711 GenericConstraintsHandler extends readonly ConstraintHandler [ ] = readonly [ ] ,
812 > {
9- toExtractParser ( ) : DPE . ContractExtended <
13+ toExtractParser ( params ?: ToExtractParserParams ) : DPE . ContractExtended <
1014 (
11- & Primitive < GenericPrimitiveValue >
15+ & C . Primitive < GenericPrimitiveValue >
1216 & UnionToIntersection <
1317 GenericConstraintsHandler [ number ] extends infer InferredConstraint
1418 ? InferredConstraint extends ConstraintHandler
15- ? GetConstraint < InferredConstraint >
19+ ? C . GetConstraint < InferredConstraint >
1620 : never
1721 : never
1822 >
@@ -24,57 +28,27 @@ declare module "@duplojs/utils/clean" {
2428 }
2529}
2630
27- createConstraintsSet . overrideHandler . setMethod (
31+ C . createConstraintsSet . overrideHandler . setMethod (
2832 "toExtractParser" ,
29- ( self ) => {
30- const checkers = A . flatMap (
31- self . constraints ,
32- ( { checkers } ) => checkers ,
33- ) ;
34-
35- const dataParserWithCheckers = self
36- . primitiveHandler
37- . dataParser
38- . addChecker ( ...checkers as never ) ;
39-
40- const constraintsKindValue = pipe (
41- self . constraints ,
42- A . map ( ( { name } ) => O . entry ( name , null ) ) ,
43- O . fromEntries ,
44- ) ;
45-
46- const valueContainer = constrainedTypeKind . setTo (
47- { } ,
48- constraintsKindValue ,
49- ) ;
50-
51- const dataParser = DPE . transform (
52- dataParserWithCheckers ,
53- ( input ) => ( {
54- ...valueContainer ,
55- [ keyWrappedValue ] : input ,
56- } ) as never ,
33+ ( self , params ) => {
34+ const innerDataParser = C . toMapDataParser (
35+ self ,
36+ params ,
5737 ) ;
5838
59- return dataParser ;
39+ return DPE . lazy (
40+ ( ) => innerDataParser ,
41+ ) as never ;
6042 } ,
6143) ;
6244
63- createConstraintsSet . overrideHandler . setMethod (
45+ C . createConstraintsSet . overrideHandler . setMethod (
6446 "toEndpointSchema" ,
6547 ( self ) => {
66- const checkers = A . flatMap (
67- self . constraints ,
68- ( { checkers } ) => checkers ,
69- ) ;
70-
71- const dataParserWithCheckers = self
72- . primitiveHandler
73- . dataParser
74- . addChecker ( ...checkers as never ) as never ;
48+ const innerDataParser = self . internal . dataParser ;
7549
7650 return DPE . lazy (
77- ( ) => dataParserWithCheckers ,
78- ) ;
51+ ( ) => innerDataParser ,
52+ ) as never ;
7953 } ,
8054) ;
0 commit comments