Table of Contents

Query Contracts

Core query support in @cratis/arc is built on typed query classes and generated proxies.

IQuery

The base query interface holds cross-cutting query concerns:

interface IQuery {
    sorting: Sorting;
    paging: Paging;
}

IQueryFor

IQueryFor adds route, typed parameters, default value, and execution:

interface IQueryFor<TDataType, TParameters = object> extends IQuery {
    readonly route: string;
    defaultValue: TDataType;
    parameters: TParameters | undefined;
    perform(args?: TParameters): Promise<QueryResult<TDataType>>;
}

Built-in Concerns

Query contracts include:

  • Typed parameters and responses
  • Sorting and paging metadata
  • Default values for predictable initialization
  • Execution through perform()

See Also