Repository URL to install this package:
|
Version:
0.0.6 ▾
|
import { Request as ExpressRequest, Response as ExpressResponse } from 'express';
export { OneRequestContextBase } from '@skava/request';
import { DataSources } from 'apollo-server-core/dist/graphqlOptions';
import { ApolloError } from 'apollo-server';
import { GraphQLResponse as ApolloGraphQLResponse } from 'apollo-server-core/src/requestpipelineapi';
/**
* === logger ===
*/
export declare type LogMapKeyType = 'info' | 'error' | 'debug' | 'warn';
export declare type LogMapType = Map<LogMapKeyType, Set<string | any>>;
export interface PinoLogFn {
(msg: string, ...args: any[]): void;
(obj: object, msg?: string, ...args: any[]): void;
}
export declare type CompatibleLogger<Base = unknown> = (Base extends unknown ? {
[key: string]: any;
} : Base) & {
info: PinoLogFn;
error: PinoLogFn;
debug: PinoLogFn;
warn: PinoLogFn;
};
/**
* ========= graphqls =========
*/
export interface ResolverArgs<Args = any> {
[key: string]: string | number | boolean | ResolverArgs<Args> | ResolverArgs[] | undefined | any;
}
export interface ResolverInfo {
cacheControl: any;
directives: any;
}
export interface ResolverContext {
req: ExpressRequest;
res: ExpressResponse;
request: Request;
dataSources: DataSources<ResolverContext>;
}
export interface ResolverObj {
self: any;
}
export declare type ResolverFunction<Type = any> = (obj: ResolverObj, args: ResolverArgs, context: ResolverContext, info: ResolverInfo) => Promise<Type> | Type;
export interface ResolverType<Type = any> {
[key: string]: ResolverFunction;
}
export interface ResolverExport<Type = any> {
Query?: ResolverType<Type>;
Mutation?: ResolverType<Type>;
}
export interface FactoryArgs {
query: any;
[key: string]: any;
}
export declare type GraphQLResponse<Response extends object> = ApolloGraphQLResponse & {
error?: ApolloError;
data?: Response;
};
export declare type AsyncGraphQLResponse<Response extends object> = Promise<GraphQLResponse<Response>>;