Sha256: 28f59ff8b83cf780adaa901f198229135b2c79c7cab96b0022ccf8d841a67ffc
Contents?: true
Size: 1.43 KB
Versions: 58
Compression:
Stored size: 1.43 KB
Contents
import { copyConfig } from '../moment/constructor'; import { configFromStringAndFormat } from './from-string-and-format'; import getParsingFlags from './parsing-flags'; import { isValid } from './valid'; import extend from '../utils/extend'; // date from string and array of format strings export function configFromStringAndArray(config) { var tempConfig, bestMoment, scoreToBeat, i, currentScore; if (config._f.length === 0) { getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } for (i = 0; i < config._f.length; i++) { currentScore = 0; tempConfig = copyConfig({}, config); if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } tempConfig._f = config._f[i]; configFromStringAndFormat(tempConfig); if (!isValid(tempConfig)) { continue; } // if there is any input that was not parsed add a penalty for that format currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; getParsingFlags(tempConfig).score = currentScore; if (scoreToBeat == null || currentScore < scoreToBeat) { scoreToBeat = currentScore; bestMoment = tempConfig; } } extend(config, bestMoment || tempConfig); }
Version data entries
58 entries across 57 versions & 12 rubygems