@stone-js/http-core v0.1.3
Stone.js - HTTP Core
Stone.js HTTP Core offers a simple, consistent API for handling HTTP requests and responses across any JavaScript runtime.
Overview
The @stone-js/http-core
package defines the foundational HTTP abstractions used throughout the Stone.js ecosystem. It introduces the IncomingHttpEvent
and OutgoingHttpResponse
classes, enabling context-aware handling of HTTP requests and responses in a runtime-agnostic way.
This module provides a normalized API for HTTP operations that works across adapters (Node.js, Lambda, etc.), serving as the bridge between the external runtime and the internal application logic.
Key Features
IncomingHttpEvent
: A wrapper for incoming HTTP requests with support for headers, query, body, method, and cookiesOutgoingHttpResponse
: A consistent abstraction for building and sending structured HTTP responses- First-class cookie handling with
Cookie
(secure, signed, or plain) - Support for headers, status codes, redirection, and JSON responses
- Shared interfaces for request and response resolution across runtimes
All components are designed to be used within the Continuum Architecture of Stone.js, making them predictable, extensible, and runtime-neutral.
Installation
npm install @stone-js/http-core
[!IMPORTANT] This package is pure ESM. Ensure your
package.json
includes"type": "module"
or configure your bundler appropriately.
Usage Example
import { IncomingHttpEvent, OutgoingHttpResponse } from '@stone-js/http-core'
// Simulate incoming request
const event = new IncomingHttpEvent({
method: 'GET',
url: URL.parse('https://example.com/api/resource'),
headers: { 'x-custom-header': 'value' },
body: {},
queryString: 'param1=value1¶m2=value2',
})
// Build response
const response = OutgoingHttpResponse.create({ content: { message: 'Hello from Stone.js' } })
response.setStatus(204)
response.setHeader('Content-Type', 'application/json')
Learn More
This package is part of the Stone.js ecosystem, a modern JavaScript framework built around the Continuum Architecture.
Explore the full documentation: https://stonejs.dev