Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ronin-co/hono-client
Access RONIN via Hono.
https://github.com/ronin-co/hono-client
hono honojs javascript js middleware ronin ts typescript
Last synced: about 2 months ago
JSON representation
Access RONIN via Hono.
- Host: GitHub
- URL: https://github.com/ronin-co/hono-client
- Owner: ronin-co
- License: apache-2.0
- Created: 2024-05-06T09:25:08.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-10-28T02:15:45.000Z (about 2 months ago)
- Last Synced: 2024-10-28T06:09:44.672Z (about 2 months ago)
- Topics: hono, honojs, javascript, js, middleware, ronin, ts, typescript
- Language: TypeScript
- Homepage: https://ronin.co/docs/typescript-client
- Size: 216 KB
- Stars: 23
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Hono + RONIN
[![Tests](https://github.com/ronin-co/hono-client/actions/workflows/validate.yml/badge.svg)](https://github.com/ronin-co/hono-client/actions/workflows/validate.yml)
[![Install Size](https://packagephobia.com/badge?p=hono-ronin)](https://packagephobia.com/result?p=hono-ronin)A [Hono middleware](https://hono.dev/guides/middleware) for querying data from [RONIN](https://ronin.co) with ease.
## Setup
First, install the [package](https://www.npmjs.com/package/hono-ronin) with a package manager of your choice:
```bash
# Bun
bun add hono-ronin# npm
npm install hono-ronin
```Next, create a new app token on the [RONIN dashboard](http://ronin.co) (under "Apps" in the sidebar), and add it as a environment variable named `RONIN_TOKEN` to your Hono context.
Once added, you can import and use the middleware in your Hono app:
```typescript
import { Hono } from "hono";
import { ronin } from "hono-ronin";const app = new Hono();
app.use("*", ronin());
app.get("/", async (c) => {
const posts = await c.var.ronin.get.posts();
return c.json(posts);
});
```That's it! 🎉
You can now start inserting records with the [RONIN query syntax](https://ronin.co/docs/queries), or add them on the [RONIN dashboard](http://ronin.co). Everything you can do with the RONIN Hono client, you can also do on the dashboard (creating records, retrieving them, filtering them, updating them, etc).
### TypeScript
Out of the box, we also export the required `Bindings` and `Variables` types, which you can use to extend the Hono context and get full auto-completion:
```ts
import { Hono } from "hono";
import { ronin, type Bindings, type Variables } from "hono-ronin";const app = new Hono<{
Bindings: Bindings;
Variables: Variables;
}>();app.use("*", ronin());
```## Contributing
We would be excited to welcome your suggestions for the RONIN Hono client!
To start contributing code, first make sure you have [Bun](https://bun.sh) installed, which is a JavaScript runtime.
Next, [clone the repo](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) and install its dependencies:
```bash
bun install
```Once that's done, link the package to make it available to all of your local projects:
```bash
bun link
```Inside your project, you can then run the following command, which is similar to `bun add hono-ronin` or `npm install hono-ronin`, except that it doesn't install `hono-ronin` from npm, but instead uses your local clone of the package:
```bash
bun link hono-ronin
```If your project is not yet compatible with [Bun](https://bun.sh), feel free to replace all of the occurances of the word `bun` in the commands above with `npm` instead.
You will just need to make sure that, once you [create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request#creating-the-pull-request) on the current repo, it will not contain a `package-lock.json` file, which is usually generated by npm. Instead, we're using the `bun.lockb` file for this purpose (locking sub dependencies to a certain version).
### Developing
In order to be compatible with a wide range of projects, the source code of the `hono-ronin` repo needs to be compiled (transpiled) whenever you make changes to it. To automate this, you can keep this command running in your terminal:
```bash
bun run dev
```Whenever you make a change to the source code, it will then automatically be transpiled again.
### Running Tests
The RONIN Hono client has 100% test coverage, which means that every single line of code is tested automatically, to ensure that any change to the source code doesn't cause a regression.
Before you create a pull request on the `hono-ronin` repo, it is therefore advised to run those tests in order to ensure everything works as expected:
```bash
# Run all tests
bun test# Alternatively, run a single test
bun test -t 'your test name'
```