Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@adonisjs/fold

Package Overview
Dependencies
Maintainers
2
Versions
111
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@adonisjs/fold

Dependency manager and ioc container for your next NodeJs application

  • 4.0.9
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
36K
decreased by-4.05%
Maintainers
2
Weekly downloads
 
Created
Source

AdonisJs Fold 🚀

Dependency manager and IoC container for Node.js

NPM Version Build Status Appveyor Coveralls

Fold is a dependency manager for Node.js used by AdonisJs framework. Below is the list of features.

Features

  1. Support for binding dependencies with unique namespaces.
  2. Autoloading multiple directories under a namespace.
  3. Defining aliases for bindings.
  4. Automatic resolution of namespaces and transparent dependency injection.
  5. Support for fakes when writing tests.
  6. Support for service providers, to bind dependencies in structured way.

Installation

You can install the package from npm.

npm i --save adonis-fold

Basic Usage

const { ioc } = require('adonis-fold')

class Foo {
}

ioc.bind('App/Foo', function () {
  return new Foo()
})

const foo = ioc.use('App/Foo')
// return Foo class instance

ioc.with('App/Foo', (Foo) => {
  // Only if App/Foo exists
})

Simple enough! But we do not see the real power of the Ioc container, since we can instantiate the class manually too. Right? NO

Here are the following benefits.

  1. The author of the Foo class can decide how to instantiate the class and return a properly configured instance, instead of leaving it to the consumer.

  2. While you are making use of the Ioc container, one binding can be dependent upon others, without much work. For example


class Foo {
  constructor (config) {
    //
  }
}

ioc.bind('App/Foo', function (app) {
  const config = app.use('App/Config')
  return new Foo(config)
})

const foo = ioc.use('App/Foo')

This time, we injected App/Config behind the scenes and the consumer of the Foo class won't have to worry about passing the config manually.

Moving Forward

Checkout the official documentation at the AdonisJs website for more info.

Tests

Tests are written using japa. Run the following commands to run tests.

npm run test:local

# report coverage
npm run test

# on windows
npm run test:win

Release History

Checkout CHANGELOG.md file for release history.

Meta

AdonisJs – @adonisframeworkvirk@adonisjs.com

Checkout LICENSE.txt for license information

Harminder Virk (Aman) - https://github.com/thetutlage

Keywords

FAQs

Package last updated on 15 Jul 2018

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