UNPKG

shortcake

Version:

Asynchronous invoke and other goodies for cake.

38 lines (29 loc) 1.07 kB
import cake from './cake' import log from './log' import tasks from './tasks' import {isArray, isFunction} from './utils' export default (name, description, deps, action) -> # No description, just deps if isArray description action = deps if isFunction deps [description, deps] = ['', description] # If we're passed name, action if isFunction description [action, description, deps] = [description, '', []] # No dependencies specified, ex: `task 'name', 'description', ->` if isFunction deps [action, deps] = [deps, []] # Missing task function (body), ex: `task 'name', 'description', ['1','2','3']` unless isFunction action action = -> # Store reference for ourselves tasks[name] = name: name description: description deps: deps action: action log.debug 'added task', tasks[name] # Make sure original plumbing still works, inject our shim task cake.task name, description, (options) -> # Capture result of options for our own `invoke` tasks[name].options = options