open-index/open-npm huggingface dataset:
npm package: @raha/api
Description: API Client for Raha
Author: Raha
Latest version: 0.2.16

# `client/`

API REST client. Has full and very complete TypeScript definitions.

## Installation

```bash
yarn add @raha/api
```

## Usage

```typescript
import { list } from "@raha/api/dist/operations/list";
const API_BASE = "https://raha-5395e.appspot.com/api/";

list(API_BASE).then(({ status, body }) => {
  if (status !== 200) {
    throw new Error("How sad!");
  }
  body.map(operation => console.log(JSON.stringify(operation))); // or do something else.
});
```

## Publishing the library

First, ask a maintainer of this library to grant you access to
`@raha/api` on NPM.

Then, if the changes here depend on changes to `@raha/api-shared` (i.e. changes to
`/packages/shared`), ensure:

1.  You publish `/packages/shared` first.
1.  The version of `@raha/api-shared` referenced in
    `/packages/client/package.json` has been bumped to the newly published
    version.

Then, run:

```bash
npm login  # log into NPM if you haven't already
npm publish
```

Please follow [semver](https://semver.org) when choosing a version number.

If you're getting Typescript errors related to `@raha/api-shared`, go to
`packages/shared` and run `yarn build` first.

After publishing the new version, create a PR with the updated version number
in package.json (the commit should have been automatically created by NPM).

## Testing

Run `yarn test`.

This project uses `jest` for testing. Any file that ends in `.test.(j|t)sx?` is
treated as a test.

Tests are currently sparse/nonexistent; this must be fixed!

## Page weight

You probably want to use some tree-shaking so that you don't include unnecessary
code like the server in your frontend.
npm package: @raha/api-shared
Description: Shared code between the Raha API and client library.
Author: Raha
Latest version: 0.1.23

# shared/

Stuff that's used by both the API server and the REST client, including the
shape of all API endpoints as well as helpers and data models.

## Installation

```bash
yarn add @raha/api-shared
```

## Developing simultaneously with other packages in the monorepo

If you're working on the `shared/` package simultaneously with sibling packages
in this repo that depend on `shared/`, like `client/` or `server/`, it's useful
to have the latest working changes available to those libraries before this
library is published. To do that, make sure that Typescript is compiling the
code in this package as you code, by running:

```bash
yarn build:watch
```

### Background

With [Typescript Project
References](https://www.typescriptlang.org/docs/handbook/project-references.html)
configured in the root `tsconfig.json`, those sibling packages use whatever
types are available in `shared/dist/` (the build directory of this package) to
fill in the types in those respective packages.

So, for the latest types for `shared/` to be present, ensure that the latest
types are always available, by watching on any changes here and rebuilding
automatically, with the command above.

## Publishing the library

First, ask a maintainer of this library to grant you access to
`@raha/api-shared` on NPM.

Then, run this command:

```bash
npm login  # log into NPM if you haven't already
npm publish
```

Please follow [semver](https://semver.org) when choosing a version number.

After publishing the new version, update the api-shared version that the
server and client packages depend on, and create a PR with the updated version
numbers (a commit updating the api-shared package.json version number should
have automatically been created by npm).

## Testing

Run `yarn test`.

This project uses `jest` for testing. Any file that ends in `.test.(j|t)sx?` is
treated as a test.

Tests are currently sparse/nonexistent; this must be fixed!