@n1k1t/mock-server
Version:
Powerful util to setup mocks over HTTP APIs
57 lines • 2.73 kB
TypeScript
import { Redis, RedisOptions } from 'ioredis';
import { Server } from 'socket.io';
import { ProvidersStorage, Router, Transport, TransportsStorage } from './models';
import { IIoExchangeSchema, IServerContext, IServerContextDefaults } from './types';
import { AnalyticsService, MetricsService } from './services';
import { OnsiteClient } from '../client';
export * from './transports';
export * from './models';
export * from './types';
export interface IMockServerConfiguration {
port: number;
host: string;
containers?: {
/** Seconds `default: 1h` */
expiredCleaningInterval?: number;
};
transports?: Partial<Record<string, Transport>> & Record<string, Transport>;
databases?: {
redis?: RedisOptions;
};
}
export declare class MockServer<TConfiguration extends IMockServerConfiguration = IMockServerConfiguration, TContext extends IServerContext = IServerContext> {
configuration: TConfiguration;
TContext: TContext;
timestamp: number;
authority: string;
databases: {
redis: Redis | null;
};
exchanges: {
io: import("./models").ISocketIoExchangeService<IIoExchangeSchema>;
};
providers: ProvidersStorage<TContext>;
transports: TransportsStorage<TContext>;
router: Router<TContext>;
http: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
ws: import("ws").Server<typeof import("ws"), typeof import("http").IncomingMessage>;
io: Server<import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, import("socket.io/dist/typed-events").DefaultEventsMap, any>;
services: {
readonly analytics: AnalyticsService;
readonly metrics: MetricsService;
};
private internal;
constructor(configuration: TConfiguration);
get client(): OnsiteClient<TContext>;
unbindExpiredContainers(): this;
static start<TConfiguration extends IMockServerConfiguration, TContext extends IServerContext = IServerContext<{
transport: IServerContextDefaults['transport'] | Extract<keyof TConfiguration['transports'], string>;
event: IServerContextDefaults['event'] | {
[K in keyof TConfiguration['transports']]: NonNullable<TConfiguration['transports']>[K]['TContext']['event'];
}[keyof TConfiguration['transports']];
flag: IServerContextDefaults['flag'] | {
[K in keyof TConfiguration['transports']]: NonNullable<TConfiguration['transports']>[K]['TContext']['flag'];
}[keyof TConfiguration['transports']];
}>>(configuration: TConfiguration): Promise<MockServer<TConfiguration, TContext>>;
}
//# sourceMappingURL=index.d.ts.map