%PDF- %PDF-
Direktori : /home/opti/workflow/node_modules/math-interval-parser/lib/ |
Current File : /home/opti/workflow/node_modules/math-interval-parser/lib/index.js |
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var patternParts = { value: '[-+]?(?:Infinity|[[0-9]*\\.?\\d*(?:[eE][-+]?\\d+)?)', leftBrace: '[\\(\\]\\[]', delimeter: ',', rightBrace: '[\\)\\]\\[]', }; var PATTERN = new RegExp("(" + patternParts.leftBrace + ")" + ("(" + patternParts.value + ")?") + ("(" + patternParts.delimeter + ")?") + ("(" + patternParts.value + ")?") + ("(" + patternParts.rightBrace + ")")); function execPattern(str) { var match = PATTERN.exec(str); if (!match) { return null; } var _ = match[0], leftBrace = match[1], fromValue = match[2], delimeter = match[3], toValue = match[4], rightBrace = match[5]; return { leftBrace: leftBrace, fromValue: fromValue, delimeter: delimeter, toValue: toValue, rightBrace: rightBrace, }; } function parse(str) { var match = execPattern(str); if (!match) { return null; } return { from: { value: match.fromValue !== undefined ? +match.fromValue : -Infinity, included: match.leftBrace === '[' }, to: { value: match.toValue !== undefined ? +match.toValue : (match.delimeter ? +Infinity : match.fromValue !== undefined ? +match.fromValue : NaN), included: match.rightBrace === ']' } }; } function check(interval) { if (interval.from.value === interval.to.value) { return interval.from.included && interval.to.included; } return Math.min(interval.from.value, interval.to.value) === interval.from.value; } function entry(str) { var interval = parse(str); if (!interval || !check(interval)) { return null; } return interval; } exports.default = entry;