Package Exports
- heroku-cli-util
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (heroku-cli-util) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
heroku-cli-util
Set of helpful CLI utilities
Installation
npm install heroku-cli-util --saveAction
let h = require('heroku-cli-util');
let promise = heroku.apps(appname).info();
let app = yield h.action('getting apps', promise);
console.log(`app name: ${app.name}`);
// getting apps... done
// app name: appnamePrompt
Callback style
var h = require('heroku-cli-util');
h.prompt('email', {}, function (_, email) {
console.log(`your email is: ${email}`);
});Promise style
var h = require('heroku-cli-util');
h.prompt('email', {}).then(function (email) {
console.log(`your email is: ${email}`);
});Generator style (must be wrapped in h.command() or co block)
var h = require('heroku-cli-util');
var email = yield h.prompt('email', {});
console.log(`your email is: ${email}`);Options
mask: true: mask input field after submitting.
hide: true: mask characters while entering.
Confirm App
Supports the same async styles as prompt(). Errors if not confirmed.
Basic
var h = require('heroku-cli-util');
yield h.confirmApp('appname', context.flags.confirm);
// ! WARNING: Destructive Action
// ! This command will affect the app appname
// ! To proceed, type appname or re-run this command with --confirm appname
> appnameCustom message
var h = require('heroku-cli-util');
yield h.confirmApp('appname', context.flags.confirm, 'foo');
// ! foo
// ! To proceed, type appname or re-run this command with --confirm appname
> appnameErrors
var h = require('heroku-cli-util');
h.error("App not found");
// ! App not foundWarnings
var h = require('heroku-cli-util');
h.warn("App not found");
// ! App not foundTables/Columns
var h = require('heroku-cli-util');
h.columnify({
'Dynos': 1,
'Region': 'us',
'Stack': 'cedar-14'
});
// Dynos 1
// Region us
// Stack cedar-14Dates
var h = require('heroku-cli-util');
var d = new Date();
console.log(h.formatDate(d));
// 2001-01-01T08:00:00.000ZCommand
Used for initializing a plugin command.
It will set the cwd to the user's current location,
give you an auth'ed instance of heroku-client,
and cleanly handle API exceptions.
It uses co so you can yield promises.
let h = require('heroku-cli-util');
module.exports.commands = [
{
topic: 'apps',
command: 'info',
needsAuth: true,
needsApp: true,
run: h.command(function* (context, heroku) {
let app = yield heroku.apps(context.app).info();
console.dir(app);
})
}
];With options:
let h = require('heroku-cli-util');
module.exports.commands = [
{
topic: 'apps',
command: 'info',
needsAuth: true,
needsApp: true,
run: h.command({preauth: true},
function* (context, heroku) {
let app = yield heroku.apps(context.app).info();
console.dir(app);
})
}
];If the command has a two_factor API error, it will ask the user for a 2fa code and retry.
If you set preauth: true it will preauth against the current app instead of just setting the header on an app. (This is necessary if you need to do more than 1 API call that will require 2fa)
Tests
npm install
npm testLicense
ISC