@dashkite/masonry
v0.13.0
Published
Functions for composing asset pipelines
Downloads
95
Readme
Masonry
Functions for reading, writing, and processing files, also known as asset pipelines.
import * as M from "@dashkite/masonry"
import {coffee} from "@dashkite/masonry-coffee"
do M.start [
M.glob [ "{src,test}/**/*.coffee" ]
M.read
M.tr coffee
M.extension ".js"
M.write "build"
]
Use with Genie to run build functions using a task runner command-line interface.
Quick Reference
Masonry is based on composing reactors, also known as asynchronous iterators. The start
function takes a list of functions that, together, yield a reactor, and waits on each value in turn. What this means is that we never iterate through a list of files more than once within a given function, even though it may appear otherwise. For all intents and purposes, you can imagine the reactors, like read
and write
as simply operating on a single file.
Reactors
| Name | Arguments | Description |
| --------- | ----------------- | ------------------------------------------------------------ |
| glob | pattern | Given a list of glob patterns and a base directory, returns a reactor that produces paths that match the patterns. |
| read | - | Reads each file. Typically used after glob
. |
| tr | function or array | Given a function that takes a context object, invokes the processor for each file. Typically used after read
to compile or translate a file. If given an array, will call each function in turn with the output from the previous function. |
| extension | text | Sets the extension of the context, which is used by write
to determine the extension for the output file. |
| write | directory | Given a directory, writes each file out based on the relative path. |
| copy | directory | May be used in place of read
and write
when you simply want to copy a file from one directory to another using a stream. |
| set | name, setter | Sets the property name on the build context using the given function, which accepts the build context as an argument. |
Utilities
Masonry provides standalone utility functions for convenience
| Name | Arguments | Description | | ----- | ------------- | ------------------------------------------------------------ | | rm | directory | Removes a directory. Useful for cleaning files from the previous build. | | watch | path, handler | Watch a directory or file and call a handler in response to changes. |