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)
|
2023-01-04 17:05:41 +00:00
|
|
|
|
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
|
|
|
|
|
2024-01-29 03:08:00 +00:00
|
|
|
`pnpm install lemmy-js-client`
|
2020-08-19 17:29:37 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2021-08-23 01:01:40 +00:00
|
|
|
### HTTP Client
|
|
|
|
|
2022-11-21 20:49:53 +00:00
|
|
|
[LemmyHttp docs](https://join-lemmy.org/api/classes/LemmyHttp.html)
|
2020-08-19 17:29:37 +00:00
|
|
|
|
2021-08-23 01:01:40 +00:00
|
|
|
```ts
|
2024-05-04 18:42:51 +00:00
|
|
|
import { LemmyHttp, Login } from "lemmy-js-client";
|
2020-08-20 02:25:21 +00:00
|
|
|
|
2024-05-04 18:42:51 +00:00
|
|
|
// 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",
|
|
|
|
};
|
2024-05-04 18:42:51 +00:00
|
|
|
|
|
|
|
// 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);
|
2020-08-20 02:25:21 +00:00
|
|
|
```
|
2023-01-04 17:05:41 +00:00
|
|
|
|
|
|
|
## Development
|
|
|
|
|
2024-03-26 12:15:58 +00:00
|
|
|
Use `pnpm add` to develop and test changes locally:
|
2023-01-04 17:05:41 +00:00
|
|
|
|
|
|
|
```
|
2024-03-26 12:15:58 +00:00
|
|
|
pnpm add path/to/lemmy-js-client
|
2023-01-04 17:05:41 +00:00
|
|
|
```
|