UNPKG

@onn-software/ddl-to-gql

Version:

Convert a SQL DDL to a GraphQL implementation with all relations.

2 lines (1 loc) 2.09 kB
export declare const baseModel = "export interface Paginate {\n pageIndex: number,\n pageSize: number,\n}\n\nexport interface Paginated<T> extends Paginate {\n totalEntries: number,\n data: T[],\n}\n\nexport enum QueryOperator {\n EQUALS = 'EQUALS',\n IN = 'IN',\n BETWEEN = 'BETWEEN',\n LIKE = 'LIKE',\n NULL = 'NULL',\n NOT_EQUALS = 'NOT_EQUALS',\n NOT_IN = 'NOT_IN',\n NOT_BETWEEN = 'NOT_BETWEEN',\n NOT_NULL = 'NOT_NULL',\n}\n\nexport interface Clause<T = string> { \n field: T; \n operator: QueryOperator; \n value: any;\n}\n\nexport interface MutationResult { \n rows: number;\n res: string;\n error?: string;\n}\n\nexport interface OnnCache {\n get: <T>(options:any) => Promise<T | undefined>;\n set: <T>(options:any, value: T) => Promise<T | unknown>;\n del: (options:any) => Promise<void | undefined>;\n}\n\nexport class MemCache implements OnnCache {\n cache: Record<string, any> = {};\n get = async <T>(options:any) => this.cache[JSON.stringify(options)] as T;\n set = async <T>(options:any, value: T) => this.cache[JSON.stringify(options)] = value;\n del = async (options:any) => this.set(options, undefined);\n}\n\nexport interface OnnContext {\n onn?: {\n skipCache?: boolean;\n cache?: OnnCache;\n extras?: Record<string, any>;\n }\n}\n\nexport interface QueryBuilder<TYPE extends {}, IMPL = any> {\n executeQuery(): Promise<TYPE[]>;\n executeCount(): Promise<number>;\n executeInsert(value: Partial<TYPE>): Promise<MutationResult>;\n executeUpdate(value: Partial<TYPE>): Promise<MutationResult>;\n executeDelete(): Promise<MutationResult>;\n table(tableName:string): QueryBuilder<TYPE, IMPL>;\n orderBy(orderBy?: { field: string, direction: 'asc' | 'desc' }): QueryBuilder<TYPE, IMPL>;\n distinct(distinct?: string[]): QueryBuilder<TYPE, IMPL>;\n where(...clause: Clause[]): QueryBuilder<TYPE, IMPL>;\n select(fields: string | string[]): QueryBuilder<TYPE, IMPL>;\n offset(offset: number): QueryBuilder<TYPE, IMPL>;\n limit(limit: number): QueryBuilder<TYPE, IMPL>;\n}\n\n";