A javascript / typescript http and websocket client and type system for Lemmy.
Find a file
Dessalines 589f336a72
Better readme example. (#261)
* Better readme example.

* Update README.md

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>

---------

Co-authored-by: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com>
2024-05-04 18:42:51 +00:00
.github Adding sleeplessone1917 to codeowners 2023-05-15 15:23:45 -04:00
.husky Migrate from yarn to pnpm. (#236) 2024-01-28 22:08:00 -05:00
src Remove pointless integer annotations. #190 (#260) 2024-04-30 06:34:18 -04:00
.eslintrc.json #186 wrap bare strings to Error object (#207) 2023-10-26 11:56:24 -04:00
.gitignore Adding typedoc, and code comments. Fixes #29 (#30) 2021-08-22 21:01:40 -04:00
.prettierrc.json Add community language (#85) 2022-12-19 10:57:02 -05:00
.woodpecker.yml Fixing npm publish. 2024-03-27 10:38:53 -04:00
copy_generated_types_from_lemmy.sh Remove pointless integer annotations. #190 (#260) 2024-04-30 06:34:18 -04:00
deploy.sh Migrate from yarn to pnpm. (#236) 2024-01-28 22:08:00 -05:00
LICENSE Initial commit. 2020-08-19 13:29:37 -04:00
package.json Remove pointless integer annotations. #190 (#260) 2024-04-30 06:34:18 -04:00
pnpm-lock.yaml Adding LocalImageView. (#258) 2024-04-16 19:10:57 -04:00
putTypesInIndex.js Updating moderator_view. 2023-08-29 15:53:23 -04:00
README.md Better readme example. (#261) 2024-05-04 18:42:51 +00:00
tsconfig.json Make private class properties actually private (#128) 2023-06-05 19:32:23 -04:00

GitHub tag (latest SemVer) GitHub issues License GitHub stars

lemmy-js-client

A javascript / typescript http client and type system for Lemmy.

Installation

pnpm install lemmy-js-client

Usage

HTTP Client

LemmyHttp docs

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 = {
  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