Query
Query wraps SvelteKit query(...) and makes the callable client-side surface return Effect.
ts
import { Query } from "svelte-effect-runtime";Signatures
ts
type EffectQueryFunction<Input, Output, Error = never> =
((arg: OptionalArgument<Input>) =>
Effect.Effect<Output, RemoteFailure<Error>, never>) & {
native: RemoteQueryFunction<Input, Output>;
};ts
interface EffectQueryFactory {
<Output, ErrorType, Requirements>(
fn: () => Effect.Effect<Output, ErrorType, Requirements>
): EffectQueryFunction<void, Output, ErrorType>;
<Input, Output, ErrorType, Requirements>(
validate: "unchecked",
fn: (arg: Input) => Effect.Effect<Output, ErrorType, Requirements>
): EffectQueryFunction<Input, Output, ErrorType>;
<SchemaType extends EffectSchema, Output, ErrorType, Requirements>(
validate: SchemaType,
fn: (arg: SchemaOutput<SchemaType>) =>
Effect.Effect<Output, ErrorType, Requirements>
): EffectQueryFunction<SchemaInput<SchemaType>, Output, ErrorType>;
batch: typeof query_batch_factory;
}Type model
- Server callback input for schema overload:
SchemaOutput<SchemaType> - Client callable input for schema overload:
SchemaInput<SchemaType> - Client error type:
RemoteFailure<ErrorType>
Query.batch
Query.batch follows the validator forms:
Query.batch("unchecked", fn)Query.batch(schema, fn)
Unlike Query, Query.batch does not support the no-validator overload.