New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

nali

Package Overview
Dependencies
Maintainers
2
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nali

a DI service registry

  • 1.1.4
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
2
Weekly downloads
 
Created
Source

nali

a service registry for dependency injection and application composition

js-standard-style Dependency Status Circle CI

usage

const nali = require('nali')

// we can register services
// type Service: (...) => Instance
// Services are functions with
// optional dependency names as parameters
// and which return an initialized instance of itself
// the return value can be a Promise or a Value
nali.register({
  config: function () {
    return P
    conn_str: 'http://foo.bar'
  },
  db: function (config) {
    return Doodaboos.connect(config.conn_str)
  
  })

// we can resolve an instance of our `db` service:

nali.resolve('db').then(function (db) {
  // now we can do stuff with our db service
})

nali will fetch or lazily instantiate arbitrary trees of service dependencies.

api

nali(name: String) => service:any

(alias: nali.fetch)

Synchronously fetch a service instance

Can also be used to asynchronously resolve multiple dependencies, for example:

nali(function (db, log, sessions, webService) {
  // now we have all the things
})

nali.resolve(name: String) => Promise<service: Any>

Asynchronously resolve an instance of a service, lazily instantiating any dependencies if necessary

nali.registerInstance(name: String, instance: Object) => void

deprecated use nali.register('name', () => instance) instead

nali.registerService(name: String, service: Service) => void

deprecated use nali.register('name', service) instead

Service Dependencies

DI works similar to Angular. Service init functions state the names of their dependencies as parameter names, which are parsed out when the Service is registered. They are not called with new or with any particular this context.

Return a Promises/A+ promise if you need to asynchronously instantiate a service

Resolution algorithm

Work in progress.

Try get local instance Try get new instance of local service Try get parent instance Try get new instance of parent service Etc

not implemented

  • scopes
  • disposing instances / lifecycle management
  • anything else

installation

$ npm install nali

running the tests

From package root:

$ npm install
$ npm test

contributors

license

MIT. (c) MMXV AgileMD. See LICENSE.md

Keywords

FAQs

Package last updated on 10 Jun 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc