json-graphql-server is a TypeScript library and CLI that generates a fully functional GraphQL API from a plain JavaScript/JSON data object. At runtime it introspects the supplied data to infer GraphQL object types, filter input types, relationship fields, list queries, and mutations, then serves an executable schema through an Express middleware, a standalone CLI, or a browser-side XHR mock. The primary use case is fast prototyping and testing: developers provide an array of records per entity, and the tool immediately exposes queries like Post(id:), allPosts(page, perPage, sortField, sortOrder, filter), and _allPostsMeta, plus create/update/remove/delete mutations that mutate the in-memory data arrays. It is essentially json-server, but for GraphQL, and is designed to be used as a mock API or development fixture rather than a production data layer.
Reload is a Node.js library and CLI tool that automatically refreshes web pages in the browser when server-side code changes. It works by injecting a client-side JavaScript file that opens a WebSocket connection to the server. When the server restarts (or a manual reload event is triggered), the WebSocket closes, the client detects the closure, waits for the server to come back up, and then reloads the page. The library integrates with Express applications by creating a route to serve the client script, while the CLI tool serves static files and uses nodemon to watch for file changes. The core logic is in `lib/reload.js`, which handles WebSocket server setup, HTTPS support, and parameter validation. The client-side script (`lib/reload-client.js`) is a self-contained pattern that can be reused in other projects. The codebase is well-tested, actively maintained, and follows modern JavaScript practices.
express-slow-down is an Express.js middleware library that rate-limits clients by slowing down responses instead of blocking them outright. It wraps `express-rate-limit` internally, using a custom handler that computes a delay based on request count and configurable options like `delayAfter`, `delayMs`, and `maxDelayMs`. The middleware increments a per-client counter (via a store, defaulting to an in-memory store), and when the count exceeds a threshold, it delays subsequent responses. It supports custom stores, async functions for dynamic delays, and standard/legacy rate-limit headers. The codebase is well-structured TypeScript with comprehensive unit and integration tests, and follows modern ES module and TypeScript practices.
This repository is the `express-jwt` npm package, a widely-used Express.js middleware for validating JSON Web Tokens (JWTs). The core function `expressjwt(options)` returns a middleware that extracts the JWT from the request (defaulting to the Authorization Bearer header), decodes it, verifies its signature using a provided secret or async callback, checks standard claims like audience and issuer, and optionally checks token revocation. The decoded payload is attached to `req.auth`. The middleware supports CORS preflight handling and integrates with `express-unless` for conditional skipping. It is a focused, well-structured library with clean TypeScript types and a simple architecture. The code is actively maintained by Auth0 with automated CI/CD for releases and testing across multiple Node.js versions. The primary reusable component is a generic deep property setter utility.
PeerJS Server is a Node.js application that facilitates WebRTC peer-to-peer connections by handling signaling between clients. It does not proxy media data but exchanges metadata (offers, answers, ICE candidates) via WebSocket connections. The server provides an HTTP API for obtaining client IDs and discovering peers (when enabled), manages client state and message queues for offline clients, and includes services to monitor connection health and expire stale messages. Built with Express.js and the 'ws' library, it features a modular architecture separating API routing, message handling, core logic (realm/model management), and background services (connection checking, message expiration). The CLI entry point allows running as a standalone server, while the programmatic API enables integration into existing Node.js applications.