MCPcopy Create free account
hub / github.com/Effect-TS/effect / findOneOption

Function findOneOption

packages/effect/src/unstable/sql/SqlSchema.ts:148–172  ·  view source on GitHub ↗
(
  options: {
    readonly Request: Req
    readonly Result: Res
    readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>
  }
)

Source from the content-addressed store, hash-verified

146 * @since 4.0.0
147 */
148export const findOneOption = <Req extends Schema.Constraint, Res extends Schema.Constraint, E, R>(
149 options: {
150 readonly Request: Req
151 readonly Result: Res
152 readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>
153 }
154) => {
155 const encodeRequest = Schema.encodeEffect(options.Request)
156 const decode = Schema.decodeUnknownEffect(options.Result)
157 return (
158 request: Req["Type"]
159 ): Effect.Effect<
160 Option.Option<Res["Type"]>,
161 E | Schema.SchemaError,
162 R | Req["EncodingServices"] | Res["DecodingServices"]
163 > =>
164 Effect.flatMap(
165 Effect.flatMap(encodeRequest(request), options.execute),
166 (arr): Effect.Effect<
167 Option.Option<Res["Type"]>,
168 Schema.SchemaError,
169 Req["EncodingServices"] | Res["DecodingServices"]
170 > => Arr.isReadonlyArrayNonEmpty(arr) ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
171 )
172}

Callers

nothing calls this directly

Calls 1

decodeFunction · 0.50

Tested by

no test coverage detected