Skip to content
This repository was archived by the owner on Oct 11, 2021. It is now read-only.

dominicegginton/koa-sassy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

koa-sassy

Modern Koa middleware for compiling SASS and caching cache. It comes with built-in ETag cache-control header support and an easy to use API. I no longer suggest using koa-sassy, it was originally built more as a learning aid for maintaining and publishing npm packages, however, the architecture itself is fundamentally floored. Compiling and caching SASS in middleware is highly inefficient and is much better handled by build tools. As software engineers, we should constantly be thinking about how we can improve the suitability of the systems we design and build. I'm taking one very small step in the name of the environment by archiving this unsustainable project.

Install

npm i koa-sassy

Getting Started

const Koa = require('koa')
const sassy = require('koa-sassy')
const app = new Koa()

app.use(sassy('/sass'))

app.listen(3000)

Documentation

Start Serving SASS

To start compiling and serving SASS files pass koa-sassy to app.use(). koa-sassy comes with grate default options and makes complaining and serving SASS effortless.

app.use(sassy('/sass'))

Mount SASS to path

By default koa-sassy mounts and serves all complied SASS on the / path. By setting the options.mount parameter it is posiable to mount your SASS to a specified path.

app.use(sassy('/sass', { mount: '/stylesheets' }))

This mounts your complied SASS to the /stylesheets path.

Setting the Cache-Control HTTP Header

The Cash-Control HTTP header is used to specify browser cashing policies in both client requests and server responses. Use the options.maxAge perimeter to pass the number of seconds you wish for clients to cache stylesheets for.

app.use(sassy('/sass'), { maxAge: 3600 }) // 1 hour

koa-sassy default value for options.maxAge is 86400 (1 day), and will max out at 31536000 (1 year)

ETags and Request Freshness

An ETag is a unique identifer assigned by the web server to a specific version of a resource then passed to the client within the HTTP ETag header of the response. When the resource is updated or changed a new unique ETag is generated. koa-sassy uses the etag module to generate ETags.

Request freshness is determined by matching the current resources ETag against the ETag received from the If-None-Match HTTP request header. Fresh requests are responded with a status code of 304 (not modified) and stale requests are sent a status code of 200 along with the favicon in the response body. Support for ETags and freshness checking is built into koa-sassy by default.

Contributing

Contributors are welcome, feel free to submit a new pull request to help improve koa-sassy.

About

Modern Koa middleware for SASS

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors