# Visao Viewer API

### Installation

Install needed dependencies of the project.
```bash
yarn install
```

### Tests
```bash
yarn test
```

### Build
```bash
yarn build
```

### Deploy new version

The first thing to do is to make sure everything is committed.
Meaning there are no git pending changes.
Once that is done, we need to determine what kind of release we are
making (Patch, Minor, Major).
Here is a [fun article](https://medium.com/fiverr-engineering/major-minor-patch-a5298e2e1798)
to help us determine what to do.

#### Patch
> **Content**: Internal fix
>
> **Example**: Bug fix, Performance improvement, environment or internal tweaks
>
> **Policy**: Consumers should update their software without hesitation

```bash
yarn patch
```

#### Minor
> **Content**: Interface change with full backward compatibility
>
> **Example**: New feature, Endpoint declared deprecated
>
> **Policy**: Update your software to get some new features. Nothing will break

```bash
yarn minor
```

#### Major
> **Content**: Interface change breaking backward compatibility
>
> **Example**: Change API endpoint name or signature, Remove an endpoint
>
> **Policy**: Test your system extensively post update.
Migration documents may be in order

```bash
yarn major
```

#### Publish on npm
```bash
yarn publish # Prefer using npm publish as something is missing in our package for yarn to properly work
```

## Issue Tracking
Check [this repo](https://github.com/Technologie-Visao/viewer-api/issues)
to see all the reported issues from our users.



## NX Commands

- Build for NPM: `yarn nx run viewer-api:npmbuild`
- Version: `yarn nx run viewer-api:version`
- PostVersion: `yarn nx run viewer-api:postversion`
- Patch: `yarn nx run viewer-api:patch`
- Minor: `yarn nx run viewer-api:minor`
- Major: `yarn nx run viewer-api:major`

