Skip to content

golya/lab-di

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lab-di

Introduction

lab-di is a small dependency injection container based on BottleJS. It features directory loading, implementation handling.

Build a service with different implementations

└── service
    ├── implementations
    │   ├── memory.js
    │   └── real.js
    └── index.js

service/index.js

function Service(container) {
  const implementation = container.get('config').get(Service.serviceName);
  return container.getImplementation(Service.serviceName, implementation);
}

Service.type = 'factory';
module.exports = Service;

service/implementations/memory.js

function MemoryService (config) {
  // return with the memory implementation  
  return {};
}

MemoryService.deps = ['config'];
module.exports = MemoryService;

Register a service into the di container

using the di

const di = require('lab-di')();

di.registerModule(require('./module'), 'Module');
di.registerModule(require('./other'), 'Other');

using the tools

const diTools = require('lab-di/tools')();
diTools.registerDir(path.resolve(__dirname, 'services'));
const di = diTools.getDI();

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 78.9%
  • Gherkin 21.1%