0.2.0 • Published 6 years ago

@jamen/http-static v0.2.0

Weekly downloads
-
License
-
Repository
-
Last release
6 years ago

http-static

Function that creates static endpoints. Persists a certain amount of file contents in memory and purges the least used files first. Replaces fs.createReadStream easy.

Install

npm i @jamen/http-static

Usage

createStatic(options)

Create static cache and functions. The options available are:

  • cacheThreshold: A threshold in bytes for how much file contents to cache in memory. Defaults to 0x500000 (5MiB). Use 0 to disable cache.
  • gzip: Automatically create .gz files associated with each file in memory. Defaults to false.
let static = createStatic({ cacheThreshold: 0xFFFF })

static.readStream(file)

A replacement for fs.createReadStream to keep frequently used files in memory, which can be streamed to an HTTP response object:

let static = createStatic()

createServer((request, response) => {
    // ...
    static.readStream(file).pipe(response)
})

Note: Because the files are cached in memory, changes on disk wont take effect unless the cache is removed (see below) or the cache is disabled (set cacheThreshold to zero).

static.removeCache(file)

Removes a file from the cache. This is necessary if, for example, the file changed and you want to view the updates.

let static = createStatic()

// Read from disk
static.readStream('/tmp/foo.txt').pipe(...)

// Read cache from the previous read
static.readStream('/tmp/foo.txt').pipe(...)

// Remove cache
static.removeCache('/tmp/foo.txt')

// Read from disk again
static.readStream('/tmp/foo.txt').pipe(...)

static.setContentType(file, response)

A function to set the response content type (using the map below).

extToMime

An object mapping extensions to MIMEs, generated from mime-db.

Note for contributors: This file is automatically generated from a script. To update it, run:

node scripts/create-ext-to-mime.js > lib/ext-to-mime.json