@escueladigital/micro
Version:
Microservice manager for nodejs with kafka
120 lines (107 loc) • 2.96 kB
TypeScript
export class JwtConfig {
static getHeader(): string
static middleware(): void
}
export type PubSub = {
/**
*
* @param value - EL varlor que se enviará
* @param topic - El nombre del topico al que se dirige la información.
* @param responseKind - El nombre de la cabezera de respuesta(solo se usa internamente).
*/
writeMessageToTopic(value: Object, topic: string, responseKind?: string): void
/**
*
* @param topic - El nombre del topico(método al que se desea consultar) de otro microservicio
* @param args - Argumentos que requiere el método - formato
*/
rpc(topic: string, args?: Object): Promise<any>
}
export class Pubsub {
private nameTopic(topic: string): string
/**
*
* @param topics - Los el listado de topicos que son aplicables
*/
getMicroTopics(topics: Array<string>): Array<string>
/**
* Abre la conexión con el message broker.
*/
openConnection(): void
/**
* Cierra la conexión con el message broker.
*/
closeConnection(): void
/**
*
* @param value - EL varlor que se enviará
* @param topic - El nombre del topico al que se dirige la información.
* @param responseKind - El nombre de la cabezera de respuesta(solo se usa internamente).
*/
writeMessageToTopic(value: Object, topic: string, responseKind?: string): void
/**
*
* @param topic - El nombre del topico(método al que se desea consultar) de otro microservicio
* @param args - Argumentos que requiere el método
*/
rpc(topic: string, args?: Object): void
}
export class db {
static connect(logger: Object, Reporter: Object): Object
}
export interface Report {
report(text: string): void
}
export class Logger {
static Reporter: Report
/**
*
* @param app - El objeto de la aplicación generado por koa
* @param key - Key opcional de google.
*/
static logger(app: Object, key?: Object): void
}
type Logg = {
/**
* LOG DE NIVEL INFORMATIVO
* @param text - Texto del log
*/
info(text: string): void
/**
* LOG DE NIVEL COMÚN
* @param text - Texto del log
*/
log(text: string): void
/**
* LOG DE NIVEL ADVERTENCIA
* @param text - Texto del log
*/
warn(text: string): void
/**
* LOG DE NIVEL ERROR
* @param text - Texto del log
*/
error(text: string): void
}
type Reporter = {
report(text: string): void;
}
export type App = {
models: Object
PubSub: PubSub
logger: Logg
name: string
datasources: Object
}
export type Micro = {
start(port: number, secret: string, googleKey?: Object): Function
app: App,
/**
*
* @param compensations - Arreglo de promesas para compensar las transacciones realizadas
* @param [Attempts=3]- numero de intentos que se realizaran para tratar de compensar la transacción antes de lanzar error
*/
commitOffsets(compensations: Array<Promise<any>>, Attempts: number): Promise<any>,
Reporter: Reporter,
}
export const micro: Micro