{ resolve } = require \path { each, keys } = require \prelude-ls gulp-help = require \gulp-help merge = require \merge run-sequence1 = require \run-sequence { clean-directory } = require \./tasks/clean { compile-babel } = require \./tasks/babel { compile-browserify, watch-browserify } = require \./tasks/browserify { compile-copy } = require \./tasks/copy { compile-images } = require \./tasks/images { compile-less } = require \./tasks/less { compile-livescript } = require \./tasks/livescript { minify-html, minify-javascript } = require \./tasks/minify { run-live-server } = require \./tasks/live-server { run-server } = require \./tasks/server { run-tests, watch-tests } = require \./tasks/tests { watch-compilers } = require \./tasks/watch defaults = require \./defaults id-builder = (_gulp, _options = {}) -> gulp = gulp-help _gulp options = merge defaults, _options # TODO: Document this behaviour wrap = (f) -> f gulp, options # TODO: Document this behaviour create-sequence-task = (k, v) -> gulp.task k, wrap (gulp, plugin, options) -> run-sequence = run-sequence1.use gulp (cb) -> run-sequence.apply null, v.concat cb # TODO: Document this behaviour create-sequence-tasks = (sequences) -> each (-> create-sequence-task it, sequences[it] ), keys sequences gulp.task \clean-directory, wrap clean-directory gulp.task \compile-babel, wrap compile-babel gulp.task \compile-browserify, wrap compile-browserify gulp.task \compile-copy, wrap compile-copy gulp.task \compile-images, wrap compile-images gulp.task \compile-less, wrap compile-less gulp.task \compile-livescript, wrap compile-livescript gulp.task \minify-html, wrap minify-html gulp.task \minify-javascript, wrap minify-javascript gulp.task \run-live-server, wrap run-live-server gulp.task \run-server, wrap run-server gulp.task \run-tests, wrap run-tests gulp.task \watch-compilers, wrap watch-compilers gulp.task \watch-tests, wrap watch-tests gulp.task \watch-browserify, wrap watch-browserify create-sequence-tasks options.sequences module.exports = id-builder