![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
API-first task runner with three methods: task, run and watch.
Heads up .watch
has been removed as of version 0.11.0
. If you need watch functionality, use base-tasks and base-watch.
Install with npm:
$ npm i composer --save
var Composer = require('composer');
Register a new task with it's options and dependencies. To return the task object of an already registered task, pass the name of the task without any additional parameters.
Dependencies may also be specified as a glob pattern. Be aware that the order cannot be guarenteed when using a glob pattern.
Params
name
{String}: Name of the task to registeroptions
{Object}: Options to set dependencies or control flow.options.deps
{Object}: array of dependenciesoptions.flow
{Object}: How this task will be executed with it's dependencies (series
, parallel
, settleSeries
, settleParallel
)deps
{String|Array|Function}: Additional dependencies for this task.fn
{Function}: Final function is the task to register.returns
{Object}: Return the instance for chainingExample
// register task "site" with composer
app.task('site', ['styles'], function() {
return app.src('templates/pages/*.hbs')
.pipe(app.dest('_gh_pages'));
});
// get the "site" task object
var task = app.task('site');
Build a task or array of tasks.
Params
tasks
{String|Array|Function}: List of tasks by name, function, or array of names/functions. (Defaults to [default]
).cb
{Function}: Callback function to be called when all tasks are finished building.Example
app.build('default', function(err, results) {
if (err) return console.error(err);
console.log(results);
});
Compose task or list of tasks into a single function that runs the tasks in series.
Params
tasks
{String|Array|Function}: List of tasks by name, function, or array of names/functions.returns
{Function}: Composed function that may take a callback function.Example
app.task('foo', function(done) {
console.log('this is foo');
done();
});
var fn = app.series('foo', function bar(done) {
console.log('this is bar');
done();
});
fn(function(err) {
if (err) return console.error(err);
console.log('done');
});
//=> this is foo
//=> this is bar
//=> done
Compose task or list of tasks into a single function that runs the tasks in parallel.
Params
tasks
{String|Array|Function}: List of tasks by name, function, or array of names/functions.returns
{Function}: Composed function that may take a callback function.Example
app.task('foo', function(done) {
setTimeout(function() {
console.log('this is foo');
done();
}, 500);
});
var fn = app.parallel('foo', function bar(done) {
console.log('this is bar');
done();
});
fn(function(err) {
if (err) return console.error(err);
console.log('done');
});
//=> this is bar
//=> this is foo
//=> done
composer is an event emitter that may emit the following events:
This event is emitted when a build
is starting.
The event emits 2 arguments, the current instance of composer as the app
and an object containing the build runtime information.
app.on('starting', function(app, build) {});
build
exposes a .date
object that has a .start
property containing the start time as a Date
object.build
exposes a .hr
object that has a .start
property containing the start time as an hrtime
array.This event is emitted when a build
has finished.
The event emits 2 arguments, the current instance of composer as the app
and an object containing the build runtime information.
app.on('finished', function(app, build) {});
build
exposes a .date
object that has .start
and .end
properties containing start and end times of the build as Date
objects.build
exposes a .hr
object that has .start
, .end
, .duration
, and .diff
properties containing timing information calculated using process.hrtime
This event is emitted when an error occurrs during a build
.
The event emits 1 argument as an Error
object containing additional information about the build and the task running when the error occurred.
app.on('error', function(err) {});
Additional properties:
app
: current composer instance running the buildbuild
: current build runtime informationtask
: current task instance running when the error occurredrun
: current task runtime informationThis event is emitted when a task is starting. The event emits 2 arguments, the current instance of the task object and an object containing the task runtime information.
app.on('task:starting', function(task, run) {});
The run
parameter exposes:
.date
{Object}: has a .start
property containing the start time as a Date
object..hr
{Object}: has a .start
property containing the start time as an hrtime
array.This event is emitted when a task has finished.
The event emits 2 arguments, the current instance of the task object and an object containing the task runtime information.
app.on('task:finished', function(task, run) {});
The run
parameter exposes:
.date
{Object}: has a .date
object that has .start
and .end
properties containing start and end times of the task as Date
objects.run
{Object}: has an .hr
object that has .start
, .end
, .duration
, and .diff
properties containing timing information calculated using process.hrtime
This event is emitted when an error occurrs while running a task.
The event emits 1 argument as an Error
object containing additional information about the task running when the error occurred.
app.on('task:error', function(err) {});
Additional properties
task
: current task instance running when the error occurredrun
: current task runtime informationInstall dev dependencies:
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Jon Schlinkert
Copyright © 2016 Jon Schlinkert Released under the MIT license.
This file was generated by verb, v0.1.0, on February 12, 2016.
v0.11.2
FAQs
Run and compose async tasks. Easily define groups of tasks to run in series or parallel.
The npm package composer receives a total of 0 weekly downloads. As such, composer popularity was classified as not popular.
We found that composer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.