Portable Abstractions and Patterns for Node.js
This module is a part of the Pip.Services polyglot microservices toolkit. It provides a set of basic patterns used in microservices or backend services. Also the module implemenets a reasonably thin abstraction layer over most fundamental functions across all languages supported by the toolkit to facilitate symmetric implementation.
This module contains the following packages:
- Commands - commanding and eventing patterns
- Config - configuration pattern
- Convert - portable value converters
- Data - data patterns
- Errors- application errors
- Random - random data generators
- Refer - locator inversion of control (IoC) pattern
- Reflect - portable reflection utilities
- Run - component life-cycle management patterns
- Validate - validation patterns
- Configuration Pattern
- Locator Pattern
- Component Lifecycle
- Components with Active Logic
- Data Patterns
- API Reference
- Change Log
- Get Help
- Contribute
Use
Install the NPM package as
npm install pip-services3-commons-node --save
Then you are ready to start using the Pip.Services patterns to augment your backend code.
For instance, here is how you can implement a component, that receives configuration, get assigned references, can be opened and closed using the patterns from this module.
;;;;;;
Then here is how the component can be used in the code
;;; ; // Configure the componentmyComponentA.configureConfigParams.fromTuples 'param1', 'XYZ', 'param2', 987; // Set references to the componentmyComponentB.setReferencesReferences.fromTuples new Descriptor"myservice", "mycomponent-b", "default", "default", "1.0", myComponentB; // Open the componentmyComponentB.open"123",;
Develop
For development you shall install the following prerequisites:
- Node.js 8+
- Visual Studio Code or another IDE of your choice
- Docker
- Typescript
Install dependencies:
npm install
Compile the code:
tsc
Run automated tests:
npm test
Generate API documentation:
./docgen.ps1
Before committing changes run dockerized build and test as:
./build.ps1./test.ps1./clear.ps1
Contacts
The module is created and maintained by Sergey Seroukhov.
The documentation is written by Egor Nuzhnykh, Alexey Dvoykin, Mark Makarychev.