spur-common
v4.0.0
Published
A Node.JS library of common modules used as a base to most Node.JS applications.
Downloads
1,092
Readme
A Node.js library of common modules used to create common applications.
About the Spur Framework
The Spur Framework is a collection of commonly used Node.JS libraries used to create common application types with shared libraries.
Visit NPMJS.org for a full list of Spur Framework libraries >>
Topics
Quick start
Installing
$ npm install spur-ioc --save
$ npm install spur-common --save
Usage
src/injector.js
const spur = require('spur-ioc');
const spurCommon = require('spur-common');
module.exports = function(){
// define a new injector
const ioc = spur.create('demo');
// register already constructed objects such as globals
ioc.registerDependencies({
});
// register folders in your project to be autoinjected
ioc.registerFolders(__dirname, [
'demo/'
]);
// THIS IS THE IMPORTANT PART: Merge the spur-common dependencies to your local container
ioc.merge(spurCommon())
return ioc;
}
start.js
const injector = require('./src/injector');
injector().inject(function (UncaughtHandler, Logger) {
Logger.info('Starting app...');
// Here you would inject your dependencies like WebServer or runtime class and start it.
// Enabled the UncaughtHandler
UncaughtHandler.listen();
});
Available dependencies in injector
To see the latest list of the default dependencies that are injected, check out the injector.js file. Here is a short list of of all of the dependencies available:
System dependencies
| Name | Original Module Name | Description | | :---- | :---- | :---- | | fs | fs | Node file system | | path | path | Node path module | | nodeProcess | process | Node process module | | console | console | JavaScript Console | | JSON | JSON | JavaScript JSON library |
Libraries
List of external dependencies used and exposed by spur-common. They can be found at npmjs.org using their original names.
| Name | Original Module Name | | :---- | :---- | | Promise | bluebird | | superagent | superagent | | FormData | form-data | | SpurErrors | spur-errors |
Local dependecies
All of the files under the src/
directory are made available when this module is merged into another injector. The following list are the notable dependencies available.
| Name | Source | Description | | :---- | :---- | :---- | | BaseDelegate | code | A utility class used to create classes with delegates that can be allow us to replace implementations dynamically and allow for plugins. For an example, take a look at Logger. | | UncaughtHandler | code | Simple module that catches uncaught errors when initialized. | | FixtureUtil | code | Fixtures util that allows you to read test files from a specific directory. | | HTTPService | code | An extension of the superagent module to support promises and other nice enhancements to make HTTP requests simpler to process. | | Logger | code | An implementation of a logger that extends console.log and makes it so you can add plugins for logging to different sources. | | fsPromise | code | A wrapper for the Node fs module that adds promises to the module. | | Utils | code | A collection of random utilities. |
Contributing
We accept pull requests
Please send in pull requests and they will be reviewed in a timely manner. Please review this generic guide to submitting a good pull requests. The only things we ask in addition are the following:
- Please submit small pull requests
- Provide a good description of the changes
- Code changes must include tests
- Be nice to each other in comments. :innocent:
Style guide
The majority of the settings are controlled using an EditorConfig configuration file. To use it please download a plugin the plugin for your editor of choice.
All tests should pass
To run the test suite, first install the dependancies, then run npm test
$ npm install
$ npm test