boost_library
v1.0.4
Published
A simple Spring 'like' Dependency injection container & optionally express wrapped server.
Downloads
9
Readme
Boost Libary
A simple Spring 'like' Dependency injection container & optionally express wrapped server.
Boost functions:
$Component
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
},
})
$Controller
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;
},
})
$ComponentScan;
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
get will attempt to retrieve a dependency by key
get({key: 'ISevice'})
getListOfComponentNames
Function will retrieve a list of names for all registered dependencies in the container.
validate
Function will inspect each dependency for dependencies and throw errors if not well formed.
registerPreEndpointHandlers
Function for passing in pre handle middleware
registerPostEndpointHandlers
Function for passing in post handle middleware
run
Function for running the app and starting the express server;