0.0.14 • Published 6 years ago

cdi-node v0.0.14

Weekly downloads
3
License
ISC
Repository
github
Last release
6 years ago

cdi-node

Build Status

Coverage Status

Library that assists in dependency management.

Installation

Requirements

  • NodeJS 8+

$ npm i cdi-node

Usage

Simple

const CDI = require('cdi-node')

const cdi = new CDI()

const _module = cdi.configure({})

_module.fn = ({ _var1 }) => {
    return new Promise((resolve, reject) => {
        return resolve(_var1)
    })
}

const response = await _module.fn({ _var1: 'test' })
// response: 'test'

Simple with context

const CDI = require('cdi-node')

const cdi = new CDI()

const _module = cdi.configure({})

_module.context = '_context'

_module.fn = ({ _var1 }) => {
    return new Promise((resolve, reject) => {
        return resolve(_var1 + this.context)
    })
}

const response = await _module.fn({ _var1: 'test' })
// response: 'test_context'

Simple with interceptor variable

const CDI = require('cdi-node')

const cdi = new CDI()

cdi.addInterceptorVariable('_var1', async (fnName, args) => {
    return args && args._var1 + '_interceptor'
})

const _module = cdi.configure({})

_module.fn = ({ _var1 }) => {
    return new Promise((resolve, reject) => {
        return resolve(_var1)
    })
}

const response = await _module.fn({ _var1: 'test' })
// response: 'test_interceptor'

Simple with interceptor catch error

const CDI = require('cdi-node')

const cdi = new CDI()

cdi.setInterceptorCatch(async (err, fnName, args) => {
    if (args && args._var1) {
        return err.message + ' + effect + ' + fnName
    }

    throw err
})

const _module = cdi.configure({})

_module.fn = ({ _var1 }) => {
    throw new Error('error test')
}

const response = await _module.fn({ _var1: 'test' })
// response: 'error test + effect + fn'
try{
    await _module.fn()
}catch(err){
    // err.messge: 'error test'
}

Simple with interceptor Done

const CDI = require('cdi-node')

const cdi = new CDI()

cdi.setInterceptorDone(async (response, fnName, args) => {
    if (response === 'done') {
        return response + ' + ' + fnName
    }

    throw new Error(response)
})

const _module = cdi.configure({})

_module.fn = ({ _var1 }) => {
    return 'done'
}

_module._fn = ({ _var1 }) => {
    return 'error'
}

const response = await _module.fn({ _var1: 'test' })
// response: 'done + fn'
try{
    await _module._fn()
}catch(err){
    // err.messge: 'error'
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago