inquirer-datepicker-prompt

Datepicker prompt for inquirer.js

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
inquirer-datepicker-prompt
2600.4.32 years ago7 years agoMinified + gzip package size for inquirer-datepicker-prompt in KB

Readme

inquirer-datepicker-prompt
Datepicker plugin for Inquirer.js
Datetime prompt

Getting started

install plugin
npm i inquirer-datepicker-prompt

register prompt
inquirer.registerPrompt('datetime', require('inquirer-datepicker-prompt'))

Options

message
Inherited from inquirer, message to be displayed while retrieving response.
format
An array of format specifiers for printing the date to the console. Uses a subset of the dateformat mask options.
For example:
// 1/1/17 5:00 PM
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',
  format: ['m', '/', 'd', '/', 'yy', ' ', 'h', ':', 'MM', ' ', 'TT']
}

// 01/01/2017 05:00 PM
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',
  format: ['mm', '/', 'dd', '/', 'yyyy', ' ', 'hh', ':', 'MM', ' ', 'TT']
}

Supported options:
  • d/dd/ddd/dddd
  • m/mm/mmm/mmmm
  • yy/yyyy
  • h/hh/H/HH
  • M/MM
  • s/ss
  • t/tt/T/TT

initial
Initial value for datepicker, must be a Date object. If not specified current date and time will be used. Example:
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',
  initial: new Date('2017-01-01 12:30'),
}

{date,time}.{min,max}
These specify a range of valid dates/time for entry. Users will be prohibited from entering a value higher.
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',

  // Enter only 1/1 to 3/1
  date: {
    min: "1/1/2017",
    max: "3/1/2017"
  },

  // Enter only 9:00AM to 5:00PM
  time: {
    min: "9:00AM",
    max: "5:00PM"
  }
}

time.{seconds, minutes, hours}.interval
These specify the allowed interval (modulo). For instance:
// Minutes can only be entered in intervals of 15 minutes
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',
  time: {
    minutes: {
      interval: 15
    }
  }
}

filter
Specify a callback to alter the returned value:
{
  type: 'datetime',
  name: 'dt',
  message: 'When would you like a table?',
  time: {
    minutes: {
      interval: 15
    }
  },
  filter: (dt) => {
    return dt;
  }
}