Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.67 KB

readme.md

File metadata and controls

49 lines (38 loc) · 1.67 KB

@architect/asap

Architect Static Asset Proxy (ASAP) - a helpful library for Lambda-based static asset delivery

GitHub CI status

Usage

Module

Call ASAP within your handler function manually like so:

let asap = require('@architect/asap')

// All config is optional!
module.exports = asap({
  // Alias assets to different filenames
  alias: {
    '/an-asset.jpg': '/a-different-filename.jpg',
    '/a-path': '/a-different-path',
  },
  // Pass your own fingerprinted static asset manifest (defaults to Arc-generated static.json)
  assets: { 'some-file.gif': 'some-file-a1b2c3.gif' },
  // Set a custom bucket configuration (defaults to Arc-generated buckets)
  bucket: {
    staging: 'staging-bucket-name',
    production: 'production-bucket-name',
    folder: 'some-bucket-subfolder',
  },
  // Override the content-aware cache-control header
  cacheControl: 'max-age=0',
  // Manually set response headers
  headers: { 'some-header': 'ok=true' },
  // Return null if asset is not found (defaults to `false`)
  passthru: true,
  // Engage SPA mode (defaults to `false`)
  spa: false,
})

Lambda handler

Use ASAP as the handler for your Lambda! If you're using Architect, this is done automatically for you when you don't define a root handler for your @http pragma.

If using ASAP with non-Architect projects, just point your Lambda's source directory to src/, and make sure you set the following two env vars:

  • ARC_ENV: staging or production
  • ARC_STATIC_BUCKET: the S3 bucket name where your assets are stored