/** * 项目中有些介于随手一写和公开定义之间的类型定义, * 有多个文件需要用到的,可以放此处。 */ import { Observable } from 'rxjs/Observable'; import { Database, SchemaDef } from '../db'; export declare type GeneralSchemaDef = SchemaDef<{}>; export declare type SchemaColl = { schema: GeneralSchemaDef; name: string; pkName: string; }[]; export declare type Dict = { [key: string]: T; }; export declare type Omit = Pick>; export declare type TableInfo = { tabName: string; pkName: string; }; export interface PagingQuery { page: number; count: number; } export interface UrlPagingQuery extends PagingQuery { } export interface SqlPagingQuery { skip: number; limit: number; } export interface ParsedWSMsg { method: string; id: string; type: string; data: any; source: string; } export declare type WSMsgToDBHandler = (msg: ParsedWSMsg, db: Database) => Observable; export declare type WSMsgHandler = (msg: ParsedWSMsg) => Observable; export declare type Variables = { [key: string]: any; }; export interface GraphQLRequestContext { query: string; variables?: Variables; } export declare type GraphQLError = { message: string; path?: Array; locations?: Array<{ line: number; column: number; }>; extensions?: { [key: string]: any; }; }; export interface GraphQLResponse { data?: T | null; errors?: GraphQLError[]; extensions?: any; status: number; [key: string]: any; } export interface GraphQLRequest { header?: Headers; credentials?: RequestCredentials; } export interface GraphQLClientOption { host: string; headers: object; } export interface GraphQLMeta { result: unknown; variables: unknown; } export declare type GraphQLQuery = string | (string & GraphQLMeta); export declare type GraphQLVariables = Q extends GraphQLMeta ? Q['variables'] : V; export declare type GraphQLResult = Q extends GraphQLMeta ? Q['result'] : R;