Minimalist build system for CoffeeScript based ExtendScripts.
Last updated 6 years ago by franklinkim .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install coffee-toaster-api 
SYNC missed versions from official npm registry.


Build Status Coverage Status Dependency Status

Minimalist build system for CoffeeScript.

This is based on Coffee Toaster.

Getting Started

Install the module with:

$ npm install coffee-toaster-api --save


  vendors: []
  exclude: []
  bare: false
  packaging: true
  expose: null
  minify: true
  callback: null
  release: null


Type Array Default []

An ordered array of all your vendor's paths. These files must be purely javascript, preferably minified ones -- Toaster will not compile or minify them, only concatenate everything.


Type Array Default []

Let's you excplicity exclude some folder, file or file type from Toaster search/process mechanism. The string you use here will effectively turn into a RegExp like that:

new RegExp '.DS_store'
new RegExp '.swp'
new RegExp 'my/folder/to/be/excluded'


Type Boolean Default false

If true, compile your CoffeeScript files without the top-level function safety wrapper.


Type Boolean Default false

If true, Toaster will rewrite all your class declarations.

If you have a file in src/app/models/ with this contents:

class User

Toaster will rewrite your declaration prepending a namespace to it, based on the folder the class is located, resulting -- in this example -- into this:

class app.models.User

This rewriting process is saved directly into your file. In case you move this class to another folder, the prepended namespace will be rewrited again, always following your folder structure.

In other words, your don't need to worry about hardcoded namespaces in your files, because Toaster will handle all the dirty for you.


Type String Default null

If informed, list all you packages of classes in the given scope. If you use window as your expose scope, your classes will be available also in the window object -- or whatever scope you inform, suck as exports if you're building for NodeJS.

In the end you'll be able to access your files throught this scope where your classes was exposed.



Type Boolean Object Default null

If true, minify your release file using UglifyJS.

If object, it will be passed directly to UglifyJS.

      beautify: true
      indent_level: 2


Type Function Default null

Lets you modify the generated contents.

  callback: (contents, minified) ->
    contents.replace('foo', 'bar')


Type String Default null

The file path to your release file.

Usage Examples

Build the sources from the src folder, prepend the example.js vendor and compile it to lib/app.js

var Toaster = require("coffee-toaster-api");

options = {
  bare: false,
  minify: false,
  vendors: ["vendor/example.js"],
  folders: "src/app":"app",
  release: "lib/app.js"

var toaster = new Toasty(process.cwd(), options);;


I Love Open Source

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Copyright (c) 2013 We Are Interactive under the MIT license.

Bitdeli Badge

Current Tags

  • 1.0.2                                ...           latest (6 years ago)

3 Versions

  • 1.0.2                                ...           6 years ago
  • 1.0.1                                ...           6 years ago
  • 1.0.0                                ...           7 years ago
Maintainers (1)
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (7)
Dependents (1)

Copyright 2014 - 2017 © |