api-core
Version:
Model-based dynamic multi-level APIs for any provider, plus multiple consumption channels
108 lines (107 loc) • 4.14 kB
TypeScript
/// <reference types="node" />
import { ApiQuery, ApiQueryScope, QueryStep } from "./ApiQuery";
import { ApiEdgeQuery } from "../edge/ApiEdgeQuery";
import { ApiEdgeQueryContext } from "../edge/ApiEdgeQueryContext";
import { ApiEdgeRelation } from "../relations/ApiEdgeRelation";
import { ApiRequest, PathSegment } from "../request/ApiRequest";
import { ApiEdgeQueryResponse } from "../edge/ApiEdgeQueryResponse";
import { Api } from "../Api";
import { ApiEdgeMethod } from "../edge/ApiEdgeMethod";
import { ApiEdgeDefinition } from "../edge/ApiEdgeDefinition";
export declare class EmbedQueryQueryStep implements QueryStep {
query: ApiQuery;
request: ApiRequest;
segment: PathSegment;
sourceField: string;
targetField: string;
idField: string;
forceArray: boolean;
isMultiMulti: boolean;
constructor(query: ApiQuery, segment: PathSegment, request: ApiRequest);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class QueryEdgeQueryStep implements QueryStep {
query: ApiEdgeQuery;
constructor(query: ApiEdgeQuery);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class CallMethodQueryStep implements QueryStep {
method: ApiEdgeMethod;
edge: ApiEdgeDefinition;
constructor(method: ApiEdgeMethod, edge: ApiEdgeDefinition);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class RelateQueryStep implements QueryStep {
relation: ApiEdgeRelation;
constructor(relation: ApiEdgeRelation);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class RelateBackwardsQueryStep implements QueryStep {
relation: ApiEdgeRelation;
constructor(relation: ApiEdgeRelation);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class RelateChangeQueryStep implements QueryStep {
relation: ApiEdgeRelation;
constructor(relation: ApiEdgeRelation);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class RelateBackwardsChangeQueryStep implements QueryStep {
relation: ApiEdgeRelation;
constructor(relation: ApiEdgeRelation);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class SetResponseQueryStep implements QueryStep {
response: ApiEdgeQueryResponse;
constructor(response: ApiEdgeQueryResponse);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class SetBodyQueryStep implements QueryStep {
body: any;
stream: NodeJS.ReadableStream | null;
constructor(body: any, stream?: NodeJS.ReadableStream | null);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class ProvideIdQueryStep implements QueryStep {
fieldName: string;
constructor(fieldName?: string);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class ExtendContextQueryStep implements QueryStep {
context: ApiEdgeQueryContext;
constructor(context: ApiEdgeQueryContext);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class ExtendContextLiveQueryStep implements QueryStep {
apply: (context: ApiEdgeQueryContext) => void | any;
constructor(func: (context: ApiEdgeQueryContext) => void | any);
execute: (scope: ApiQueryScope) => Promise<ApiQueryScope>;
inspect: () => string;
}
export declare class ApiQueryBuilder {
api: Api;
constructor(api: Api);
private addQueryActions;
private addMethodActions;
private addMethodCallStep;
private addQueryStep;
private static buildProvideIdStep;
private buildCheckStep;
private buildReadStep;
private buildEmbedSteps;
private buildReadQuery;
private buildChangeQuery;
private buildCreateQuery;
build: (request: ApiRequest) => ApiQuery;
}