pon

5.2.18 • Public • Published

pon

Build Status Build Status npm Version JS Standard

Super simple task runner to call named functions from CLI

Table of Contents

Installation

$ npm install pon --save

Usage

Create runner with tasks and pass task names to run

'use strict'
 
const pon = require('pon')
 
const css = require('pon-task-css')
const browser = require('pon-task-browser')
 
async function tryExample () {
  const run = pon({
    'ui:css': css('ui/stylesheets', 'public'),
    'ui:browser': browser('shim/entrypoints', 'public')
  })
 
  // Execute task by names
  await run('ui:css', 'ui:browser')
}
 
tryExample()
 

Advanced Usage

Defining task in various ways

  • Task is just an async function
  • Task can be a string which is the name of another task
  • Tasks can be nested
  • Task can be array of function (or string)
'use strict'
 
const pon = require('pon')
 
async function tryNested () {
  const run = pon({
    // Just pass a async function to define custom task
    async yell () { /* ... */ },
    // Arrayed functions runs sequentially
    swing: [ async function up () { /* ... */ }, async function down () { /* ... */ } ],
    fitness: {
      async walk () { /* ... */ },
      async run () { /* ... */ },
      // Default call
      default: [ 'fitness/walk', 'fitness/run' ]
    },
    // Call another tasks
    yellAndRun: [ 'yell', 'fitness/run' ]
  })
 
  await run('yell', 'swing') // Runs tasks sequentially
  await run('fitness/*') // By pattern
  await run('fitness') // Same as call `await run('fitness.default')
  await run('yellAndRun') // Call another tasks
}
 
tryNested()
 

CLI Usage

Install pon-cli as global module.

$ npm install pon-cli -g

Create Ponfile.js at your project root and define tasks there.

'use strict'
 
const pon = require('pon')
 
module.exports = pon({
  'myapp:do-something': async function doSomething () {
    /* ... */
  }
})
 

Then, call task from command line

pon "myapp:*"
 

Develop Own Plugin

Use pon-scaffold to generate your own plugin.

Install scaffold CLI

npm i pon-scaffold -g

Task Plugin

Pass the task name to generate

pon-scaffold task "pon-task-my-own"

Then, edit lib/define.js under the generated project.

License

This software is released under the Apache-2.0 License.

Links

Readme

Keywords

Package Sidebar

Install

npm i pon

Weekly Downloads

5

Version

5.2.18

License

Apache-2.0

Unpacked Size

40.9 kB

Total Files

46

Last publish

Collaborators

  • okunishinishi
  • realglobe