Nonchalant Programming Master

    cron-allowed-range

    0.0.39 • Public • Published

    CircleCI Coverage Status npm version

    cron-allowed-range

    Use cron-like expressions to test if a datetime is in an allowed range.

    Usage

    API

    npm install cron-allowed-range
    const CronAllowedRange = require('cron-allowed-range');
    
    /* Allowed if it is:
     * - At any minute
     * - Between 9 AM - 6 PM
     * - On any day of the month
     * - Between September to June, or on August
     * - Between Monday to Friday
     */
    const cr = new CronAllowedRange('* 9-17 * 9-6,8 1-5', 'America/Toronto');
    
    cr.isDateAllowed(new Date('December 18, 1995 08:59:59 GMT-0500'));
    // false
    
    cr.isDateAllowed(new Date('August 18, 1995 17:00:00 GMT-0400'));
    // true

    CLI

    npm install -g cron-allowed-range
    
    cr -e '* 9-17 * * *' -t 'America/Toronto'
    
    echo $?
    # exit code is 0 if current time is within range, otherwise 1

    Formatting the Cron-Like Expression

    * represents any value
    , separator (e.g. 5,6)
    - used to define (inclusive) ranges (e.g. 5-9)
    / not supported
    
    ┌───────────── minute (0 - 59)
    │ ┌───────────── hour (0 - 23)
    │ │ ┌───────────── day of the month (1 - 31)
    │ │ │ ┌───────────── month (1 - 12)
    │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
    │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
    * * * * *
    

    Diagram from Wikipedia

    Keywords

    Install

    npm i cron-allowed-range

    DownloadsWeekly Downloads

    182

    Version

    0.0.39

    License

    Apache-2.0

    Unpacked Size

    31.5 kB

    Total Files

    12

    Last publish

    Collaborators

    • neverendingqs