Node.js Unified SDK v5.0.1

We are releasing the next major version of the Node.js SDK - version 5.0.0.

Note: Version 5.x of the SDK has aspects that are not backward compatible with 4.x. We are detailing the differences in our documentation. The full release can be found here

Highlights

Client Class Breakdown

The Client class was very large and difficult to test. To make this easier to work on and more testable, we have:

  • Implemented a facade for the client
  • Created a class to handle generic REST GET, PUT, POST, and DELETE
  • Created separate classes for each resource, providing a better representation of the API
  • Added unit and integration tests for new client classes

Implement POS Facade

Prior to version 5.0.0, we had two separate SDKs, the "Light" SDK, which could only use the POS facade, and the "Full" SDK, which used the merchant and payout facades. This created the need for additional effort both in maintaining and implementing the SDK.

As of version 5.0.0, the SDK supports both methods. You can use just the POS facade, which is limited in feature set but does not require signed requests (no private key to manage) or with the merchant/payout facade, which has more functionality but is more complex to implement.

This provides an easier upgrade path and reduces the duplicate work of maintaining two separate SDKs regarding dependency upgrades, bug fixes, etc.

Unit Test Suite

A new unit test suite has been added to the codebase that runs against all currently supported versions of Node.js. The tests run in GitHub Actions for non-master commits as well as pull requests.

Functional Test Suite

A functional test suite has been added to the codebase that will run against the test API. Due to there being so many outside variables from external resources, this does not run in the GitHub Actions pipeline.

Linter

We are using Prettier in GitHub Actions for non-master commits as well as pull requests.

Other Notes

  • Implemented Husky to run Prettier locally via Git commit hook
  • Moved documentation to Readme.com
  • Replaced TSLint with ESLint
  • Added an npm run setup script to run the setup script easily
  • Added JSDoc
  • Added Payout Group functionality
  • Bug Fixes
  • Fixed an issue when calling GetLedger client method

Full Changelog: 4.0.0...5.0.0