@dashkite/masonry

0.13.0 • Public • Published

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.

Package Sidebar

Install

npm i @dashkite/masonry

Weekly Downloads

2

Version

0.13.0

License

SEE LICENSE IN LICENSE.md

Unpacked Size

32.8 kB

Total Files

4

Last publish

Collaborators

  • dyoder
  • freeformflow