npm package: @highsystems/client
Description: A lightweight, typed, promise-based High Systems API, autogenerated from the OpenAPI spec
Author: Tristian Flanagan
Latest version: 0.2.0

@highsystems/client
===================

[![npm license](https://img.shields.io/npm/l/@highsystems/client.svg)](https://www.npmjs.com/package/@highsystems/client) [![npm version](https://img.shields.io/npm/v/@highsystems/client.svg)](https://www.npmjs.com/package/@highsystems/client) [![npm downloads](https://img.shields.io/npm/dm/@highsystems/client.svg)](https://www.npmjs.com/package/@highsystems/client)

A lightweight, typed, promise-based High Systems API, autogenerated from the OpenAPI spec

Written in TypeScript, targets Nodejs and the Browser.

A large chunk of this library is generated based on the OpenAPI definition found at [https://docs.highsystems.io/](https://docs.highsystems.io/).

All the types and public methods are generated and kept updated directly from the OpenAPI definition.

You can find this code in `src/code-generation/`.

Install
-------
```
# Install
$ npm install --save @highsystems/client
```

Documentation
-------------

[TypeDoc Documentation](https://highsystems.github.io/node-highsystems/)
[High Systems Documentation](https://docs.highsystems.io/)

Server-Side Example
-------------------
```typescript
import { HighSystems } from '@highsystems/client';

const highsystems = new HighSystems({
    instance: 'www',
    userToken: 'xxx'
});

(async () => {
    try {
        const results = await highsystems.getApplication({
            appid: 'xxxxxxxxxxxxxxx'
        });

        console.log(results.name);
    }catch(err){
        console.error(err);
    }
})();
```

Client-Side Example
-------------------
Import `HighSystems` by loading `highsystems.browserify.min.js`

```javascript
var highsystems = new HighSystems({
    instance: 'www',
    userToken: 'xxx'
});

return highsystems.getApplication({
    appId: 'xxxxxxxxxxxxxxx'
}).then(function(results){
    console.log(results.name);
}).catch(function(err){
    console.error(err);
});
```

Debugging
---------

Server-side, set the environment variable `DEBUG` to `highsystems:*`.

In the browser, open the dev console and enter: `window.localStorage.debug = 'highsystems:*'`.

The used debug namespaces: `main`, `request`, `response` and for development: `build` and `generate`.

Development
-----------

```
# Fork and clone the repository
$ yarn install
$ git checkout -b feature/branch
# Download the latest OAS definition and replace in `assets/openapi.json`
$ yarn run generate
# Manually modify as required
$ yarn run build
$ yarn run test
$ yarn run docs
$ git add
$ git commit
$ git push -u origin feature/branch
```

License
-------
Copyright 2023 High Systems, Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.