jevfanity
v0.1.1
Published
Typed JavaScript and TypeScript client for the Jevfanity moderation API.
Readme
jevfanity
Typed JavaScript and TypeScript client for the Jevfanity moderation API.
The SDK works in Node.js 18+, modern browsers, and other runtimes with a global fetch. It provides moderation scores for profanity, slurs, harassment, threats, and sexual content.
Install
npm install jevfanityUsage
import Jevfanity from "jevfanity";
const client = new Jevfanity();
const result = await client.moderate("Text to check", {
level: "medium",
threshold: 0.75,
categories: ["profanity", "harassment"],
});
if (result.flagged) {
console.log(result.flagged_categories);
}The default API URL is https://api.jevfanity.app. For a self-hosted API or a protected deployment:
const client = new Jevfanity({
baseUrl: "https://moderation.example.com",
apiKey: process.env.JEVFANITY_API_KEY,
});API
client.moderate(text, options?)
Returns a typed ModerationResult containing:
flagged: whether any selected category reached the thresholdscore: the highest category scorecategories: a score from0to1for each selected categoryflagged_categories: categories that reached the thresholdlevelandthreshold: the policy used for the requestusageandprocessing: model and request details
Supported levels are low, medium, and strict. Supported categories are profanity, slur, harassment, threat, and sexual.
client.health()
Checks whether the API is available and returns { ok: true, service: "jevfanity" }.
Errors
HTTP failures and network failures throw JevfanityError:
import Jevfanity, { JevfanityError } from "jevfanity";
try {
await new Jevfanity().moderate(message);
} catch (error) {
if (error instanceof JevfanityError) {
console.error(error.status, error.body);
}
}status contains the HTTP status code, or 0 for a transport failure. body contains the parsed API error when one is available.
Custom fetch
Pass a custom fetch implementation through the constructor when testing or integrating with a runtime that provides its own HTTP client:
const client = new Jevfanity({
fetch: (url, init) => fetch(url, init),
});Development
This package is part of the Jevfanity workspace monorepo. From the repository root:
npm run build
npm run typecheck --workspace jevfanity
npm pack --dry-run --workspace jevfanityOnly this jevfanity workspace is published to npm. The API and web workspaces are private.
