0.4.3 • Published 2 years ago

inquirer-datepicker-prompt v0.4.3

Weekly downloads
4,170
License
MIT
Repository
github
Last release
2 years ago

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;
  }
}