https://github.com/goparrot/square-connect-plus
Typescript library which extends the official Square Connect APIs library with additional functionality
https://github.com/goparrot/square-connect-plus
library node retry square-connect typescript
Last synced: over 1 year ago
JSON representation
Typescript library which extends the official Square Connect APIs library with additional functionality
- Host: GitHub
- URL: https://github.com/goparrot/square-connect-plus
- Owner: goparrot
- License: mit
- Created: 2020-01-31T09:01:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-16T10:21:47.000Z (almost 2 years ago)
- Last Synced: 2025-02-20T18:47:27.428Z (over 1 year ago)
- Topics: library, node, retry, square-connect, typescript
- Language: TypeScript
- Size: 141 KB
- Stars: 4
- Watchers: 8
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[](https://github.com/goparrot/square-connect-plus/actions?query=branch%3Amaster+event%3Apush+workflow%3ACI)
[](https://coveralls.io/github/goparrot/square-connect-plus?branch=master)
[](https://www.npmjs.com/package/@goparrot/square-connect-plus)
[](https://greenkeeper.io/)
[](http://commitizen.github.io/cz-cli/)
[](https://conventionalcommits.org)
# Square Connect Plus
**Square Connect Plus** is a Typescript library which extends the official Square Node.js SDK library with additional functionality.
The library does not modify request and response payload.
- [Installation](#installation)
- [Usage](#usage)
- [Versioning](#versioning)
- [Contributing](#contributing)
- [Unit Tests](#unit-tests)
- [Background](#background)
- [License](#license)
## Installation
$ npm i @goparrot/square-connect-plus square@17.0.0
## Usage
### Simple example
```typescript
import { SquareClient } from '@goparrot/square-connect-plus';
import { ListLocationsResponse } from 'square';
const accessToken: string = `${process.env.SQUARE_ACCESS_TOKEN}`;
const squareClient: SquareClient = new SquareClient(accessToken);
(async () => {
try {
const listLocationsResponse: ListLocationsResponse = await squareClient.getLocationsApi().listLocations();
if (listLocationsResponse.errors.length) {
throw new Error(`cant fetch locations`);
}
console.info('locations', listLocationsResponse.locations);
} catch (error) {
console.error(error);
// or error as string with stack + request and response payload
// console.error(`${error.stack}\npayload: ${error.toString()}`);
}
})();
```
### Advanced example
```typescript
import { SquareClient, exponentialDelay, retryCondition } from '@goparrot/square-connect-plus';
const accessToken: string = `${process.env.SQUARE_ACCESS_TOKEN}`;
const squareClient: SquareClient = new SquareClient(accessToken, {
retry: {
maxRetries: 10,
},
configuration: {
timeout: 60_000,
},
logger: console,
});
```
## Available Options
### `retry` Options
| Name | Type | Default | Description |
| -------------- | ---------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| maxRetries | `Number` | `6` | The number of times to retry before failing. |
| retryCondition | `Function` | `retryCondition` | A callback to further control if a request should be retried. By default, the built-in `retryCondition` function is used. |
| retryDelay | `Function` | `exponentialDelay` | A callback to further control the delay between retried requests. By default, the built-in `exponentialDelay` function is used ([Exponential Backoff](https://developers.google.com/analytics/devguides/reporting/core/v3/errors#backoff)). |
### `originClient` Options
A set of possible settings for the original library.
| Name | Type | Default | Description |
| ----------------- | -------- | ------------------------------ | ------------------------------------------------------------------------- |
| customUrl | `String` | `https://connect.squareup.com` | The custom URL against which to resolve every API call's (relative) path. |
| additionalHeaders | `Object` | `{}` | Record |
| timeout | `Number` | `60_000` | The default HTTP timeout for all API calls. |
| squareVersion | `String` | `2021-12-15` | The default square api version for all API calls. |
| environment | `Enum` | `Environment.Production` | The default square enviroment for all API calls. |
| accessToken | `String` | `''` | Scoped access token. |
### `logger` Option
By default, the built-in `NullLogger` class is used.
You can use any logger that fits the built-in `ILogger` interface
## Versioning
Square Connect Plus follows [Semantic Versioning](http://semver.org/).
## Contributing
See [`CONTRIBUTING`](https://github.com/goparrot/square-connect-plus/blob/master/CONTRIBUTING.md#contributing) file.
## Unit Tests
In order to run the test suite, install the development dependencies:
$ npm i
Then, run the following command:
$ npm run coverage
## License
Square Connect Plus is [MIT licensed](LICENSE).