JSPM

http-directives

1.0.5
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 29
  • Score
    100M100P100Q78201F
  • License MIT

A TypeScript-friendly package that provides strongly-typed HTTP constants

Package Exports

  • http-directives

Readme

http-directives

A TypeScript-friendly package that provides strongly-typed constants for common HTTP headers, directives, status codes, MIME types, caching policies, CSP rules, and more.
Say goodbye to string typos and make your HTTP code safer, cleaner, and more maintainable.

Installation

npm i http-directives

What’s included

The following categories of constants are included in this package:

Category Constants examples
HTTP Status Codes OK, NOT_FOUND, INTERNAL_SERVER_ERROR, etc.
HTTP Methods GET, POST, PUT, DELETE, etc.
HTTP Headers CONTENT_TYPE, CACHE_CONTROL, STRICT_TRANSPORT_SECURITY, CONTENT_SECURITY_POLICY, etc.
MIME Types APPLICATION_JSON, APPLICATION_JAVASCRIPT, APPLICATION_ZIP, TEXT_PLAIN, TEXT_HTML, etc.
Content Encodings GZIP, BR, etc.
Cache Control MAX_AGE, NO_CACHE, PRIVATE, etc.
Charsets UTF-8, UTF-16, ISO-8859-1, etc.
CSP Directives SCRIPT_SRC, STYLE_SRC, etc.
CSP Sources SELF, UNSAFE_INLINE, nonce(), sha256(), etc.
DNT !, ?, N, T, etc.
Protocols HTTP, HTTPS, SSH, WSS, MQTT, etc.

Usage example

import {
    Headers,
    MimeTypes,
    ContentEncodings,
    Charsets,
    StatusCodes,
    CacheControl,
    CSPDirectives,
    CSPSources,
    Methods,
    DNT,
    Protocols
} from 'http-directives';

Headers.STRICT_TRANSPORT_SECURITY // "Strict-Transport-Security"
MimeTypes.APPLICATION_JAVASCRIPT  // "application/javascript"
ContentEncodings.GZIP             // "gzip"
Charsets.UTF_8                    // "UTF-8"
StatusCodes.OK                    // 200
CacheControl.MAX_AGE              // "max-age"
CSPDirectives.BASE_URI            // "base-uri"
CSPSources.SELF                   // "self"
Methods.POST                      // "POST"
DNT.NOT_TRACKING                  // "N"
Protocols.HTTPS                   // "https:"

Additionally, exported CSP utility functions:

import {CSPSources} from 'http-directives';

CSPSources.nonce('abc123')        // "'nonce-abc123'"
CSPSources.sha256('hash')         // "'sha256-hash'"
CSPSources.sha384('hash')         // "'sha384-hash'"
CSPSources.sha512('hash')         // "'sha512-hash'"

Extensible

Define and reuse your own constants with full autocompletion and type safety:

import {Headers} from 'http-directives';

class CustomHeaders extends Headers {
    public static readonly CUSTOM_HEADER = 'custom-header';
}

CustomHeaders.CUSTOM_HEADER    // "custom-header"

Benefits

  • Type-safe: Avoid typos in strings and headers
  • Autocompletion: Full IDE support with TypeScript
  • Up-to-date: Includes modern headers, directives, and encodings
  • Zero dependencies: Lightweight and fast
  • Compatible: Supports both ESM and CJS
  • Extensible: Easily add custom directives and headers

Contributing

Please motivate yourself to submit a PR.

License

MIT