• File: field_stringify.js
  • Full Path: /var/www/nodejs/Notifications_Imali_API/node_modules/cron-parser/lib/field_stringify.js
  • Date Modified: 10/26/1985 3:15 PM
  • File size: 1.01 KB
  • MIME-type: text/plain
  • Charset: utf-8
'use strict';

var compactField = require('./field_compactor');

function stringifyField(arr, min, max) {
  var ranges = compactField(arr);
  if (ranges.length === 1) {
    var singleRange = ranges[0];
    var step = singleRange.step;
    if (step === 1 && singleRange.start === min && singleRange.end === max) {
      return '*';
    }
    if (step !== 1 && singleRange.start === min && singleRange.end === max - step + 1) {
      return '*/' + step;
    }
  }
  var resultArr = [];
  for (var i = 0, l = ranges.length; i < l; ++i) {
    var range = ranges[i];
    if (range.count === 1) {
      resultArr.push(range.start);
    } else {
      var step = range.step;
      if (step === 1) {
        resultArr.push(range.start + '-' + range.end);
      } else {
        if (range.end === max - step + 1) {
          resultArr.push(range.start + '/' + step);
        } else {
          resultArr.push(range.start + '-' + range.end + '/' + step);
        }
      }
    }
  }
  return resultArr.join(',');
}

module.exports = stringifyField;