LemmyNet / lemmy-js-client

A javascript / typescript http and websocket client and type system for Lemmy.
GNU Affero General Public License v3.0
135 stars 55 forks source link
![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)

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