Package Exports
- arcjet
- arcjet/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (arcjet) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
arcjet
Arcjet helps developers protect their apps. Installed as an SDK, it provides a set of core primitives such as rate limiting and bot protection. These can be used independently or combined to create a set of layered defenses, such as signup form protection.
This is the Arcjet TypeScript and JavaScript SDK core.
Getting started
Visit docs.arcjet.com to get started.
Generally, you'll want to use the Arcjet SDK for your specific framework, such
as @arcjet/next for Next.js. However, this package
can be used to interact with Arcjet if your framework does not have an
integration.
Installation
npm install -S arcjetExample
import http from "http";
import arcjet, { createRemoteClient, defaultBaseUrl } from "arcjet";
import { createConnectTransport } from "@connectrpc/connect-node";
const aj = arcjet({
key: "ajkey_mykey",
rules: [],
client: createRemoteClient({
transport: createConnectTransport({
baseUrl: defaultBaseUrl(),
httpVersion: "1.1",
}),
}),
});
const server = http.createServer(async function (
req: http.IncomingMessage,
res: http.ServerResponse,
) {
// Construct an object with Arcjet request details
const details = {
ip: req.socket.remoteAddress,
};
const decision = await aj.protect(details);
if (decision.isDenied()) {
res.writeHead(403, { "Content-Type": "application/json" });
res.end(JSON.stringify({ error: "Forbidden" }));
} else {
res.writeHead(200, { "Content-Type": "application/json" });
res.end(JSON.stringify({ data: "Hello World!" }));
}
});
server.listen(8000);API
Reference documentation is available at docs.arcjet.com.
License
Licensed under the Apache License, Version 2.0.