UNPKG

cnpmcore

Version:
63 lines (62 loc) 1.96 kB
/// <reference types="node" /> /// <reference types="node" /> import { CnpmcoreConfig } from '../port/config'; import { Readable } from 'stream'; import { IncomingHttpHeaders } from 'http'; import { EggContext } from '@eggjs/tegg'; import { estypes } from '@elastic/elasticsearch'; export interface UploadResult { key: string; } export interface AppendResult { key: string; nextAppendPosition?: number; } export interface UploadOptions { key: string; } export interface AppendOptions { key: string; position?: string; headers?: IncomingHttpHeaders; } export interface DownloadOptions { timeout: number; } export interface NFSClient { uploadBytes(bytes: Uint8Array, options: UploadOptions): Promise<UploadResult>; appendBytes(bytes: Uint8Array, options: AppendOptions): Promise<AppendResult>; upload(filePath: string, options: UploadOptions): Promise<UploadResult>; remove(key: string): Promise<void>; readBytes(key: string): Promise<Uint8Array | undefined>; createDownloadStream(key: string): Promise<Readable | undefined>; download(key: string, filepath: string, options: DownloadOptions): Promise<void>; url?(key: string): string; } export interface QueueAdapter { push<T>(key: string, item: T): Promise<boolean>; pop<T>(key: string): Promise<T | null>; length(key: string): Promise<number>; } export interface SearchAdapter { search<T>(query: any): Promise<estypes.SearchHitsMetadata<T>>; upsert<T>(id: string, document: T): Promise<string>; delete(id: string): Promise<string>; } export interface AuthUrlResult { loginUrl: string; doneUrl: string; } export interface userResult { name: string; email: string; } export interface AuthClient { getAuthUrl(ctx: EggContext): Promise<AuthUrlResult>; ensureCurrentUser(): Promise<userResult | null>; } declare module 'egg' { interface EggAppConfig { cnpmcore: CnpmcoreConfig; } }