UNPKG

shortcake

Version:

Asynchronous invoke and other goodies for cake.

1 lines 18.3 kB
{"version":3,"file":"shortcake.mjs","sources":["../src/utils.coffee","../src/cp.coffee","../src/cake.coffee","../src/log.coffee","../src/running.coffee","../src/invoke/async.coffee","../src/invoke/generator.coffee","../src/invoke/sync.coffee","../src/invoke/serial.coffee","../src/tasks.coffee","../src/invoke/invoke.coffee","../src/invoke/parallel.coffee","../src/invoke/index.coffee","../src/task.coffee","../src/use.coffee","../src/index.coffee"],"sourcesContent":["export isFunction = (fn) ->\n typeof fn is 'function'\n\nexport isGenerator = (g) ->\n (isFunction g?.next) and (isFunction g.throw)\n\nexport isGeneratorFn = (fn) ->\n return false unless isFunction fn\n fn?.constructor?.name is 'GeneratorFunction'\n\nexport isPromise = (p) ->\n isFunction p?.then\n\nexport isArray = (a) ->\n Array.isArray a\n\nexport isString = (s) ->\n typeof s is 'string'\n","import cp from 'cp'\nimport path from 'path'\nimport fs from 'fs'\n\nimport {isFunction} from './utils'\n\nexport default (src, dst, opts, cb) ->\n if isFunction opts\n [opts, cb] = [{}, opts]\n\n opts ?= {}\n\n p = new Promise (resolve, reject) ->\n fs.stat dst, (err, stats) ->\n if stats.isDirectory\n dst = path.join dst, path.basename src\n\n cp src, dst, (err) ->\n if err?\n reject err\n else\n resolve()\n\n p.callback cb\n p\n","unless global.task?\n require 'coffee-script/lib/coffee-script/cake'\n\n# Save references to original invoke, task\ncakeInvoke = global.invoke\ncakeOption = global.option\ncakeTask = global.task\n\nexport default cake =\n invoke: cakeInvoke\n option: cakeOption\n task: cakeTask\n","import chalk from 'chalk'\nimport {isString} from './utils'\n\nverbose = process.env.VERBOSE ? false\n\npretty = (obj) ->\n JSON.stringify obj, null, 2\n\nlogger = (method, color) ->\n prefix = chalk[color] method\n\n (args...) ->\n return unless verbose\n\n msg = prefix\n\n for arg in args\n if isString arg\n msg += ' ' + arg\n else\n msg += '\\n' + pretty arg\n\n console.log msg\n\nmethods =\n debug: 'blue'\n info: 'white'\n warn: 'yellow'\n error: 'red'\n\n bebop: 'black'\n modified: 'cyan'\n compiled: 'blue'\n\nwrapper = logger 'info', 'white'\nfor k,v of methods\n wrapper[k] = logger k,v\n\nwrapper.verbose = (bool = !verbose) ->\n verbose = bool\n\nexport default wrapper\n","import log from './log'\n\n# Keep track of running tasks\nrunningTasks = {}\n\nrunning = (name) ->\n return runningTasks[name]\n\nrunning.start = (name) ->\n log.info 'running', name\n runningTasks[name] = true\n\nrunning.stop = (name) ->\n log.info 'stopped', name\n runningTasks[name] = false\n\nexport default running\n","import log from '../log'\nimport running from '../running'\n\n# Invoke async task\ninvokeAsync = (name, action, opts, cb) ->\n log.debug 'invokeAsync', name\n\n running.start name\n\n done = ->\n running.stop name\n cb.apply null, arguments\n\n if opts?\n action opts, done\n else\n action done\n\nexport default invokeAsync\n","import log from '../log'\nimport running from '../running'\nimport {isPromise} from '../utils'\n\n\n# Invoke a enerator task continually until consumed\ninvokeGenerator = (name, action, opts, cb) ->\n log.debug 'invokeGenerator', name\n\n running.start name\n\n gen = action opts\n\n last = null\n prev = null\n\n done = (err) ->\n running.stop name\n console.error err.stack if err?\n cb err, (last ? prev)\n\n next = (value) ->\n try\n res = gen.next value\n catch err\n console.error err.stack\n return done err\n\n prev = last\n last = res.value\n\n if isPromise promise = res.value\n promise\n .then (value) ->\n next value\n .catch (err) ->\n done err\n else if not res.done\n next res.value\n else\n done()\n\n next()\n\nexport default invokeGenerator\n","import log from '../log'\nimport running from '../running'\n\nimport {isPromise} from '../utils'\n\n# Invoke sync task\ninvokeSync = (name, action, opts, cb) ->\n log.debug 'invokeSync', name\n\n running.start name\n\n ret = action opts\n\n if isPromise promise = ret\n promise\n .then (value) ->\n running.stop name\n cb null, value\n .catch (err) ->\n running.stop name\n cb err\n else\n running.stop name\n cb null, ret\n\nexport default invokeSync\n","import invoke from './invoke'\nimport log from '../log'\nimport {isFunction} from '../utils'\n\n# Invoke tasks in serial\ninvokeSerial = (tasks, opts, cb) ->\n log.debug 'invokeSerial', tasks, opts\n\n serial = (cb) ->\n next = (err) ->\n return cb err if err?\n\n if tasks.length\n invoke tasks.shift(), opts, next\n else\n cb()\n next()\n\n return (serial cb) if isFunction cb\n\n new Promise (resolve, reject) ->\n serial (err) ->\n reject err if err?\n resolve()\n cb err if isFunction cb\n\nexport default invokeSerial\n","# Global task cache\ntasks = {}\ntasks.has = (key) ->\n tasks[key]?\n\nexport default tasks\n","import cake from '../cake'\nimport invokeAsync from './async'\nimport invokeGenerator from './generator'\nimport invokeSync from './sync'\nimport log from '../log'\nimport serial from './serial'\nimport tasks from '../tasks'\nimport {isFunction, isGeneratorFn} from '../utils'\n\ninvoked = {}\n\n# Invoke delegates to one of the above\ninvoke = (name, opts, cb) ->\n log.debug 'invoke'\n\n # Prevent recursive calls\n return if invoked[name]\n invoked[name] = true\n\n # Calling cake's invoke ensures that options are passed to us correctly as\n # well as ensuring the normal missing task error is shown.\n cake.invoke name\n\n # Grab task action, any deps and parsed options\n {action, deps, options} = tasks[name]\n\n # Extend caller provided parsed options\n opts = Object.assign options, opts\n\n done = (err) ->\n invoked = {}\n (cb err) if isFunction cb\n\n invokeAction = (err) ->\n return done err if err?\n\n # Is a generator task\n if isGeneratorFn action\n return invokeGenerator name, action, opts, done\n\n # Two arguments, action expects callback\n if action.length == 2\n return invokeAsync name, action, opts, done\n\n # Single argument, detected callback\n if /^function \\((callback|cb|done|next)\\)/.test action\n return invokeAsync name, action, null, done\n\n # 0 or 1 argument action, no callback detected\n invokeSync name, action, opts, done\n\n # Process deps first if any\n return serial deps, opts, invokeAction\n\n invokeAction()\n\nexport default invoke\n","import invoke from './invoke'\nimport log from '../log'\nimport {isFunction} from '../utils'\n\n# Invoke tasks in serial\ninvokeParallel = (tasks, opts, cb) ->\n log.debug 'invokeParallel', tasks, opts\n\n parallel = (cb) ->\n done = 0\n for task in tasks\n invoke task, opts, ->\n if ++done == tasks.length\n cb()\n\n return (parallel cb) if isFunction cb\n\n new Promise (resolve, reject) ->\n parallel (err) ->\n reject err if err?\n resolve()\n cb err if isFunction cb\n\nexport default invokeParallel\n","import parallel from './parallel'\nimport serial from './serial'\nimport {isArray, isFunction} from '../utils'\n\n# Wrap invokeSerial, invokeParallel to ensure sane arguments\nwrap = (fn) ->\n (tasks, opts, cb) ->\n # Ensure tasks are an array\n tasks = [tasks] unless isArray tasks\n\n # Called with a callback and no options\n if isFunction opts\n [cb, opts] = [opts, {}]\n\n # Ensure opts exists\n opts ?= {}\n\n fn tasks, opts, cb\n\nwrapper = wrap serial\nwrapper.serial = wrapper # aliased\nwrapper.parallel = wrap parallel\n\nexport default wrapper\n","import cake from './cake'\nimport log from './log'\nimport tasks from './tasks'\n\nimport {isArray, isFunction} from './utils'\n\nexport default (name, description, deps, action) ->\n # No description, just deps\n if isArray description\n action = deps if isFunction deps\n [description, deps] = ['', description]\n\n # If we're passed name, action\n if isFunction description\n [action, description, deps] = [description, '', []]\n\n # No dependencies specified, ex: `task 'name', 'description', ->`\n if isFunction deps\n [action, deps] = [deps, []]\n\n # Missing task function (body), ex: `task 'name', 'description', ['1','2','3']`\n unless isFunction action\n action = ->\n\n # Store reference for ourselves\n tasks[name] =\n name: name\n description: description\n deps: deps\n action: action\n\n log.debug 'added task', tasks[name]\n\n # Make sure original plumbing still works, inject our shim task\n cake.task name, description, (options) ->\n # Capture result of options for our own `invoke`\n tasks[name].options = options\n","import {isFunction, isString} from './utils'\n\nexport default (pkg, opts = {}) ->\n if isString pkg\n pkg = require pkg\n\n if isFunction pkg\n pkg opts\n","import 'postmortem/register'\n\nimport exec from 'executive'\nimport path from 'path'\nimport vigil from 'vigil'\n\nimport cp from './cp'\nimport invoke from './invoke'\nimport running from './running'\nimport task from './task'\nimport tasks from './tasks'\nimport use from './use'\n\n\n# Ensure local node_modules bin is on the front of $PATH\nbinPath = path.join process.cwd(), 'node_modules/', '.bin'\n\nprocess.env.PATH = ([binPath].concat process.env.PATH.split ':').join ':'\n\nglobal.cp = cp\nglobal.exec = exec\nglobal.invoke = invoke\nglobal.running = running\nglobal.task = task\nglobal.tasks = tasks\nglobal.use = use\nglobal.walk = vigil.walk\nglobal.watch = vigil.watch\n\nexport {cp, exec, invoke, running, task, tasks, use}\n"],"names":["wrapper","running","invoke","cake","tasks","invokeGenerator","invokeAsync","invokeSync","cp"],"mappings":"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"}