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

Function findOne

packages/effect/src/unstable/sql/SqlSchema.ts:115–139  ·  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

113 * @since 4.0.0
114 */
115export const findOne = <Req extends Schema.Constraint, Res extends Schema.Constraint, E, R>(
116 options: {
117 readonly Request: Req
118 readonly Result: Res
119 readonly execute: (request: Req["Encoded"]) => Effect.Effect<ReadonlyArray<unknown>, E, R>
120 }
121) => {
122 const encodeRequest = Schema.encodeEffect(options.Request)
123 const decode = Schema.decodeUnknownEffect(options.Result)
124 return (
125 request: Req["Type"]
126 ): Effect.Effect<
127 Res["Type"],
128 E | Schema.SchemaError | Cause.NoSuchElementError,
129 R | Req["EncodingServices"] | Res["DecodingServices"]
130 > =>
131 Effect.flatMap(
132 Effect.flatMap(encodeRequest(request), options.execute),
133 (arr): Effect.Effect<
134 Res["Type"],
135 Schema.SchemaError | Cause.NoSuchElementError,
136 Req["EncodingServices"] | Res["DecodingServices"]
137 > => Arr.isReadonlyArrayNonEmpty(arr) ? decode(arr[0]) : Effect.fail(new Cause.NoSuchElementError())
138 )
139}
140
141/**
142 * Builds a query function that encodes the request, decodes the first result row

Callers

nothing calls this directly

Calls 2

decodeFunction · 0.50
failMethod · 0.45

Tested by

no test coverage detected