( result: Effect.Effect<unknown, SchemaIssue.Issue, unknown>, current: unknown, transformation: SchemaAST.Link["transformation"], options: SchemaAST.ParseOptions )
| 1035 | } |
| 1036 | |
| 1037 | function applyTransformation( |
| 1038 | result: Effect.Effect<unknown, SchemaIssue.Issue, unknown>, |
| 1039 | current: unknown, |
| 1040 | transformation: SchemaAST.Link["transformation"], |
| 1041 | options: SchemaAST.ParseOptions |
| 1042 | ): Effect.Effect<unknown, SchemaIssue.Issue, unknown> { |
| 1043 | let transformed: Effect.Effect<Option.Option<unknown>, SchemaIssue.Issue, unknown> |
| 1044 | if (effectIsExit(result) && result._tag === "Success") { |
| 1045 | const optional = InternalParser.toOption( |
| 1046 | result === InternalParser.sameExit |
| 1047 | ? current |
| 1048 | : (result as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args] |
| 1049 | ) |
| 1050 | transformed = transformation._tag === "Transformation" |
| 1051 | ? transformation.decode.run(optional, options) |
| 1052 | : transformation.decode(InternalParser.succeed(optional), options) |
| 1053 | } else if (transformation._tag === "Transformation") { |
| 1054 | transformed = Effect.flatMapEager( |
| 1055 | result, |
| 1056 | (value) => transformation.decode.run(InternalParser.toOption(value), options) |
| 1057 | ) |
| 1058 | } else { |
| 1059 | transformed = transformation.decode( |
| 1060 | Effect.mapEager(result, InternalParser.toOption), |
| 1061 | options |
| 1062 | ) |
| 1063 | } |
| 1064 | return effectIsExit(transformed) && transformed._tag === "Success" |
| 1065 | ? InternalParser.fromOptionExit( |
| 1066 | (transformed as InternalParser.Success<Option.Option<unknown>, SchemaIssue.Issue>)[InternalParser.args] |
| 1067 | ) |
| 1068 | : Effect.flatMapEager(transformed, InternalParser.fromOptionExit) |
| 1069 | } |
| 1070 | |
| 1071 | function makeConstructorParser(descriptor: SchemaAST.ConstructorDescriptor, compile: Compiler): Parser { |
| 1072 | let sourceParser: Parser |
no test coverage detected