lemmy-js-client/README.md

56 lines
1.4 KiB
Markdown
Raw Normal View History

2020-08-19 17:29:37 +00:00
<div align="center">
![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/LemmyNet/lemmy-js-client.svg)
[![GitHub issues](https://img.shields.io/github/issues-raw/LemmyNet/lemmy-js-client.svg)](https://github.com/LemmyNet/lemmy-js-client/issues)
[![License](https://img.shields.io/github/license/LemmyNet/lemmy-js-client.svg)](LICENSE)
![GitHub stars](https://img.shields.io/github/stars/LemmyNet/lemmy-js-client?style=social)
2020-08-19 17:29:37 +00:00
</div>
# lemmy-js-client
2023-06-21 15:40:11 +00:00
A javascript / typescript http client and type system for [Lemmy](https://github.com/LemmyNet/lemmy).
2020-08-19 17:29:37 +00:00
## Installation
`pnpm install lemmy-js-client`
2020-08-19 17:29:37 +00:00
## Usage
### HTTP Client
[LemmyHttp docs](https://join-lemmy.org/api/classes/LemmyHttp.html)
2020-08-19 17:29:37 +00:00
```ts
import { LemmyHttp, Login } from "lemmy-js-client";
// Build the client
const baseUrl = "https://lemmy.ml";
const client: LemmyHttp = new LemmyHttp(baseUrl);
// Build the login form
const loginForm: Login = {
2023-06-21 15:40:11 +00:00
username_or_email: "my_name",
password: "my_pass",
};
// Login and set the client headers with your jwt
const { jwt } = await client.login(loginForm);
client.setHeaders({ Authorization: `Bearer ${jwt}` });
// Fetch top posts for the day
const getPostsForm: GetPosts = {
sort: "TopDay",
type_: "Local",
};
const posts = await client.getPosts(getPostsForm);
```
## Development
Use `pnpm add` to develop and test changes locally:
```
pnpm add path/to/lemmy-js-client
```