ITADN
LemmyNet/lemmy-js-client
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

GitHub tag (latest SemVer) GitHub issues License GitHub stars

lemmy-js-client

专为 Lemmy] 设计的 JavaScript/TypeScript HTTP 客户端及类型系统。

安装

pnpm install lemmy-js-client

使用方式

HTTP 客户端

LemmyHttp 文档

import { LemmyHttp, Login } from "lemmy-js-client";

// Build the client
const baseUrl = "https://lemmy.ml";
const headers = {["x-real-ip": ...]};
const client: LemmyHttp = new LemmyHttp(baseUrl, {
  headers,
  useRequestState: true
});

// 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 loginRes = await client.login(loginForm);

// Make sure its successful
if (loginRes.state === "success") {
  const jwt = login.data.jwt;
  client.setHeaders({ Authorization: `Bearer ${jwt}` });
} else if (loginRes.state === "failed") {
  const err = login.err;
}

// Fetch top posts for the day
const getPostsForm: GetPosts = {
  sort: "TopDay",
  type_: "Local",
};
const postsRes = await client.getPosts(getPostsForm);

// Handle the different request states
switch (postsRes.state) {
  case "empty": {
    break;
  }
  case "loading": {
    break;
  }
  case "failed": {
    const err = postsRes.err;
    break;
  }
  case "success": {
    const data = postsRes.data;
    break;
  }
}

开发

使用 pnpm add 在本地进行开发与测试更改:

pnpm add path/to/lemmy-js-client

或者,可以使用 yalc publishyalc add lemmy-js-client

从 Lemmy 结构体生成 TypeScript 类型

运行 ./scripts/copy_generated_types_from_lemmy.sh

OpenAPI

若要生成 OpenAPI 文档,请运行 pnpm tsoa

这将创建两个文件:

  • redoc-static.html - OpenAPI 文档的静态 HTML 版本。
  • tsoa_build/swagger.json - 一个 OpenAPI / Swagger JSON 文件。

如需贡献代码,请查看 tsoa 文档