Pod Point Network API SDK (JS)
A JavaScript wrapper for the Pod Point Network API (v3 onward) built with TypeScript.
Installation
To install this package, run the following command:
npm install --save @pod-point/api3-js
Usage
This package contains a client, repositories, services, models and factories.
Client
First, you will want to create a new client instance.
import { Client } from '@pod-point/api3-js';
const client = new Client(accessKey, secretKey, userAgent, domain, prefix);
Repositories & Services
Next, you can start creating and using repository and service instances with the client you have just created.
import { UserRepository } from '@pod-point/api3-js';
import client from 'path/to/client';
const userRepository = new UserRepository(client);
Models & Factories
Lastly, you can use the model factories to create:
- fake model instances
- fake objects representing a models attributes
- fake objects representing a models payload
import { UserFactory } from '@pod-point/api3-js';
const userFactory = new UserFactory();
const fakeUserPayload = userFactory.payload();
const fakeUserAttributes = userFactory.attributes();
const fakeUser = userFactory.model();
Overrides can be passed into all of these methods, and there is also a method available to generate any of these objects in a pre-defined "state".
This is styled on the Laravel factories.
Example:
import { ChargeFactory } from '@pod-point/api3-js';
const chargeFactory = new ChargeFactory();
const charge = chargeFactory.states(['single']).model();
In the example above we have applied the "single" state before generating the model, this basically applies some pre-defined overrides to the fake payload/attributes.
Development
Prerequisites
- Node
12.x
- run nvm use
to use the required version - TypeScript
- Version:
v3.9.10
- Javascript Support: >=
es2020
- Compiler Target:
es2015
(Higher level features will be downleveled)
Building with TypeScript
npm run build
Testing
This package uses jest. To run the test suites for this project, run the following command:
npm run test
Releases
This package is distributed via NPM and published automatically by Travis when creating a tagged commit.
Once your PR has been opened, run the following commands to update the package version and create a new release/tag. Now, your changes will accessible by any service before merging to master.
npm version <major|minor|patch|prerelease>
git push && git push --tags
"Whoops, I already merged..."
If you forget to do this before merging, this is not a problem, just
- Create a new branch from master
- Run these same commands above
- Open and merge a PR back to
master
so that the package.json
file is updated.
Travis will run on this new branch and publish the package to NPM.
Travel shouldn't damage the earth 🌍
Made with ❤️ at Pod Point