boost_library
A simple Spring 'like' Dependency injection container & optionally express wrapped server.
A simple Spring 'like' Dependency injection container & optionally express wrapped server.
Boost functions:
You can use this function to register a key/value Object that can be retrieved:
$Component({
key: 'IService',
name: 'service.impl.v1',
dependencies: ['IAnotherService'],
injector: ({IAnotherService }) =>{
//some code
},
})
Controllers are functionally the same as components the only difference controllers will be searched and instantiated at run time to run the express server. All exported functions out of controller will be registered as express routes.
$Controller({
key: 'IController',
name: 'controller.impl.v1',
dependencies: ['IAnotherService'],
injector: ({IAnotherService }) =>{
const service = {};
service.ping = {
method: 'GET',
path: '/ping',
call: (req, res) => {
//Some code
}
}
return service;
},
})
Component Scan allows the container to scan your paths to find dependencies. You must supply basepackage paths in order for them to be picked up.
$ComponentScan({
basePackages: [__dirname + '/somepath',
then: () => {
//do some code
//Typically you can begin running your app at this point
}
})
get will attempt to retrieve a dependency by key
get({key: 'ISevice'})
Function will retrieve a list of names for all registered dependencies in the container.
Function will inspect each dependency for dependencies and throw errors if not well formed.
Function for passing in pre handle middleware
Function for passing in post handle middleware
Function for running the app and starting the express server;