@consento/api
Advanced tools
Comparing version 0.0.6 to 0.0.7
@@ -1,3 +0,3 @@ | ||
import { ISender, IReceiver, IEncodable } from '@consento/crypto'; | ||
import { INotifications, INotificationsTransport, INotificationsOptions, INotificationsHandler } from './types'; | ||
import { ISender, IReceiver, IEncodable, IEncryptedMessage } from '@consento/crypto'; | ||
import { INotifications, INotificationsTransport, INotificationsOptions } from './types'; | ||
import { EventEmitter } from 'events'; | ||
@@ -9,7 +9,7 @@ export declare class Notifications<MessageFormat extends IEncodable = IEncodable> extends EventEmitter implements INotifications { | ||
}; | ||
handle: (receiverIdBase64: string, encryptedMessage: IEncryptedMessage) => void; | ||
constructor({ transport }: INotificationsOptions); | ||
addHandler(handler: INotificationsHandler<MessageFormat>): void; | ||
subscribe(receivers: IReceiver[], force?: boolean): Promise<boolean>; | ||
unsubscribe(receivers: IReceiver[], force?: boolean): Promise<boolean>; | ||
send(sender: ISender, message: IEncodable): Promise<string[]>; | ||
send(sender: ISender, message: MessageFormat): Promise<string[]>; | ||
} |
@@ -8,3 +8,4 @@ "use strict"; | ||
this._transport = transport; | ||
transport.addListener('message', (receiverIdBase64, encryptedMessage) => { | ||
this._receivers = {}; | ||
this.handle = (receiverIdBase64, encryptedMessage) => { | ||
(async () => { | ||
@@ -32,8 +33,4 @@ const receiver = this._receivers[receiverIdBase64]; | ||
})().catch(error => this.emit('error', error)); | ||
}); | ||
this._receivers = {}; | ||
}; | ||
} | ||
addHandler(handler) { | ||
this.addListener('message', handler); | ||
} | ||
async subscribe(receivers, force = false) { | ||
@@ -40,0 +37,0 @@ if (receivers.length === 0) { |
import { ISender, IReceiver, IAnnonymous, IEncodable, IEncryptedMessage } from '@consento/crypto'; | ||
import { EventEmitter } from 'events'; | ||
export interface INotificationsTransport extends EventEmitter { | ||
export interface INotificationsTransport { | ||
subscribe(receivers: IReceiver[]): PromiseLike<boolean>; | ||
@@ -11,5 +10,4 @@ unsubscribe(receivers: IReceiver[]): PromiseLike<boolean>; | ||
} | ||
export declare type INotificationsHandler<MessageFormat extends IEncodable = IEncodable> = (receiver: IReceiver, message: MessageFormat) => void; | ||
export interface INotifications<MessageFormat extends IEncodable = IEncodable> { | ||
addHandler(handler: INotificationsHandler<MessageFormat>): void; | ||
handle: (receiverBase64: string, message: IEncryptedMessage) => void; | ||
subscribe(receivers: IReceiver[], force?: boolean): PromiseLike<boolean>; | ||
@@ -16,0 +14,0 @@ unsubscribe(receivers: IReceiver[], force?: boolean): PromiseLike<boolean>; |
{ | ||
"name": "@consento/api", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"description": "JavasScript API for building things with consento.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -64,4 +64,10 @@ # @consento/api | ||
If the transport receives a method it needs to call | ||
```javascript | ||
notifications.handle(idBase64, encryptedMessage) | ||
``` | ||
## License | ||
[MIT](./LICENSE) |
@@ -1,3 +0,3 @@ | ||
import { ISender, IReceiver, IEncodable } from '@consento/crypto' | ||
import { INotifications, INotificationsTransport, INotificationsOptions, INotificationsHandler } from './types' | ||
import { ISender, IReceiver, IEncodable, IEncryptedMessage } from '@consento/crypto' | ||
import { INotifications, INotificationsTransport, INotificationsOptions } from './types' | ||
import { EventEmitter } from 'events' | ||
@@ -9,6 +9,9 @@ | ||
handle: (receiverIdBase64: string, encryptedMessage: IEncryptedMessage) => void | ||
constructor ({ transport }: INotificationsOptions) { | ||
super() | ||
this._transport = transport | ||
transport.addListener('message', (receiverIdBase64: string, encryptedMessage: any) => { | ||
this._receivers = {} | ||
this.handle = (receiverIdBase64: string, encryptedMessage: IEncryptedMessage) => { | ||
(async () => { | ||
@@ -35,10 +38,5 @@ const receiver = this._receivers[receiverIdBase64] | ||
})().catch(error => this.emit('error', error)) | ||
}) | ||
this._receivers = {} | ||
} | ||
} | ||
addHandler (handler: INotificationsHandler<MessageFormat>): void { | ||
this.addListener('message', handler) | ||
} | ||
async subscribe (receivers: IReceiver[], force: boolean = false): Promise<boolean> { | ||
@@ -81,5 +79,5 @@ if (receivers.length === 0) { | ||
async send (sender: ISender, message: IEncodable): Promise<string[]> { | ||
async send (sender: ISender, message: MessageFormat): Promise<string[]> { | ||
return this._transport.send(sender, await sender.encrypt(message)) | ||
} | ||
} |
import { ISender, IReceiver, IAnnonymous, IEncodable, IEncryptedMessage } from '@consento/crypto' | ||
import { EventEmitter } from 'events' | ||
export interface INotificationsTransport extends EventEmitter { | ||
export interface INotificationsTransport { | ||
subscribe (receivers: IReceiver[]): PromiseLike<boolean> | ||
@@ -14,6 +13,4 @@ unsubscribe (receivers: IReceiver[]): PromiseLike<boolean> | ||
export type INotificationsHandler<MessageFormat extends IEncodable = IEncodable> = (receiver: IReceiver, message: MessageFormat) => void | ||
export interface INotifications<MessageFormat extends IEncodable = IEncodable> { | ||
addHandler (handler: INotificationsHandler<MessageFormat>): void | ||
handle: (receiverBase64: string, message: IEncryptedMessage) => void | ||
subscribe (receivers: IReceiver[], force?: boolean): PromiseLike<boolean> | ||
@@ -20,0 +17,0 @@ unsubscribe (receivers: IReceiver[], force?: boolean): PromiseLike<boolean> |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
73
17055
260