LemmyNet/lemmy-js-client · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
lemmy-js-client
专为 Lemmy] 设计的 JavaScript/TypeScript HTTP 客户端及类型系统。
安装
pnpm install lemmy-js-client
使用方式
HTTP 客户端
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 publish 和 yalc 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 文档。