UNPKG

alinea

Version:
54 lines (53 loc) 2.52 kB
import type { Type } from 'alinea'; import type { Config } from 'alinea/core/Config'; import type { Entry } from 'alinea/core/Entry'; import type { Expr } from 'alinea/core/Expr'; import { Field } from 'alinea/core/Field'; import { type AnyQueryResult, type Edge, type EdgeQuery, type GraphQuery, type Projection, type Status } from 'alinea/core/Graph'; import { type HasExpr } from 'alinea/core/Internal'; import type { Resolver } from 'alinea/core/Resolver'; import { type EntryCondition, type EntryFilter, type EntryGraph, type EntryIndex } from './EntryIndex.js'; import { LinkResolver } from './LinkResolver.js'; type Interim = any; export interface PostContext { linkResolver: LinkResolver; } export declare class EntryResolver implements Resolver { #private; index: EntryIndex; constructor(config: Config, index: EntryIndex); call(ctx: ResolveContext, entry: Entry, internal: { method: string; args: Array<Expr>; }): unknown; field(entry: Entry, field: Expr): unknown; expr(ctx: ResolveContext, entry: Entry, expr: Expr): unknown; projectTypes(types: Array<Type>): Array<[string, Expr]>; projection(query: GraphQuery<Projection>): Projection; sourceFilter(ctx: ResolveContext, entry: Entry, query: EdgeQuery): EntryCondition; selectProjection(ctx: ResolveContext, entry: Entry, value: Projection): unknown; select(ctx: ResolveContext, entry: Entry | null, query: GraphQuery<Projection>): unknown; condition(ctx: ResolveContext, query: EdgeQuery): EntryFilter; isSingleResult(query: GraphQuery & Partial<Edge>): boolean; query(ctx: ResolveContext, query: GraphQuery<Projection>, preFilter?: EntryCondition): { entries: Entry<Record<string, unknown>>[]; getUnprocessed: () => unknown; getProcessed: () => Promise<any>; }; postField(ctx: PostContext, interim: Interim, field: Field): Promise<void>; postExpr(ctx: PostContext, interim: Interim, expr: HasExpr): Promise<void>; postRow(ctx: PostContext, interim: Interim, query: GraphQuery<Projection>): Promise<void>; post(ctx: PostContext, interim: Interim, input: EdgeQuery<Projection>): Promise<void>; resolve<Query extends GraphQuery>(query: Query): Promise<AnyQueryResult<Query>>; } export interface ResolveContext { status: Status; locale?: string | null; graph: EntryGraph; searchTerms?: string; } export declare function statusChecker(status: Status): Check; interface Check { (input: Entry): boolean; } export {};