| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- '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;
|