mirror of
https://github.com/stoatchat/javascript-client-sdk.git
synced 2026-08-27 23:29:58 -04:00
836ae4c778c40db40854d7d39bc95c9c8a7f0c14
`hydrateInternal` resolves incoming payload keys using `keyMapping[key] ?? key` before invoking `functions[targetKey]`. Because `keyMapping` included entries for `mentions` and `replies` but missed `role_mentions`, the target key remained as its raw API string (`role_mentions`). Since no matching handler function existed under that name, it threw an error that was silently caught and logged as "Skipping key ... during hydration!". Because of this missing mapping, `roleMentionIds` was never populated during hydration and its extractor function went completely unused. Any code relying on it received `undefined`. Specifically, `Message.mentioned` checks `roleMentions?.some((role) => role.assigned)`, which meant it could never return true for role-based mentions. Adding `role_mentions` to the key mapping allows the existing extractor function to run as intended. Signed-off-by: Aki <aki@akiworks.xyz>
stoat.js
stoat.js is a JavaScript library for interacting with the Stoat API
Requirements
To use this module, you must be using at least:
- Node.js v22.15.0 (LTS) in ES module mode
- or Deno v2.2 (LTS)
Example Usage
import { Client } from "stoat.js";
let client = new Client();
client.on("ready", async () =>
console.info(`Logged in as ${client.user.username}!`),
);
client.on("message", async (message) => {
if (message.content === "hello") {
message.channel.sendMessage("world");
}
});
client.loginBot("..");
Reactivity with Signals & Solid.js Primitives
All objects have reactivity built-in and can be dropped straight into any Solid.js project.
const client = new Client();
// initialise the client
function MyApp() {
return (
<h1>Your username is: {client.user?.username ?? "[logging in...]"}</h1>
);
}
Stoat API Types
Warning
It is advised you do not use this unless necessary. If you find somewhere that isn't covered by the library, please open an issue as this library aims to transform all objects.
All stoat-api types are re-exported from this library under API.
import { API } from "stoat.js";
// API.Channel;
// API.[..];
Releases
6
Languages
TypeScript
99.4%
JavaScript
0.5%