@greenrenge/adapters

    1.0.1 • Public • Published

    ADAPTERS

    This idea comes to solve the dependencies issue, each unit of work can work on any adapters which implement the same interface.

    Input Adapter

    it is responsible for generate or send the data to the handlers which is separated by name of channel/event key-value pairs of string : function(data):Promise

    Interfaces

    Adapter is a class receiving an object with has the channel name as the property name, and function handler is a value

    Example

    const InputAdapter = require('./campaign_adapters/input_adapters/agenda/agenda-input-adapter')
    
    const handlers = {
        channel1 : async (data) => {},
        channel2 : (data)=>{return new Promise(..)}
    }
    const input = new InputAdapter(handlers)
    
    await input.setting(..some_custom_setting..) // for any custom setting , can be ignore but should implement this
    
    await input.connect() // start getting data
    await input.disconnect() //destroy any connections
    

    Methods

    connect is start to receive the messages.

    .connect() : Promise
    .setting(object) : Promise
    .disconnect() : Promise
    

    Output Adapter

    it is a responsible handler for publishing the generated data. publishing to other modules or microservices somehow.

    Interfaces

    Adapter is a class which may needs to be config before publishing the messages. messages will publish according to channel name

    Example

    const OutputAdapter = require('./campaign_adapters/output_adapters/mq/rabbitmq-output-adapter')
    
    const output = new OutputAdapter()
    
    await output.setting(..some_custom_setting..) // for any custom setting , can be ignore but should implement this
    
    await input.connect() // connect to any connections
    await input.publish({channel = 'facebook', data='hello world'})
    await input.disconnect() //destroy any connections
    

    Methods

    connect is start to receive the messages.

    .connect() : Promise
    .setting(object) : Promise
    .disconnect():Promise
    
    

    Keywords

    none

    Install

    npm i @greenrenge/adapters

    DownloadsWeekly Downloads

    1

    Version

    1.0.1

    License

    ISC

    Unpacked Size

    94 kB

    Total Files

    33

    Last publish

    Collaborators

    • greenrenge