diff options
author | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:46:06 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2021-08-23 16:48:30 -0300 |
commit | 38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch) | |
tree | 453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/locale/_lib | |
parent | f26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff) | |
download | node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2 node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip |
Diffstat (limited to 'date-fns/src/locale/_lib')
-rw-r--r-- | date-fns/src/locale/_lib/buildFormatLongFn/index.js | 8 | ||||
-rw-r--r-- | date-fns/src/locale/_lib/buildLocalizeFn/index.js | 23 | ||||
-rw-r--r-- | date-fns/src/locale/_lib/buildMatchFn/index.js | 56 | ||||
-rw-r--r-- | date-fns/src/locale/_lib/buildMatchPatternFn/index.js | 24 |
4 files changed, 111 insertions, 0 deletions
diff --git a/date-fns/src/locale/_lib/buildFormatLongFn/index.js b/date-fns/src/locale/_lib/buildFormatLongFn/index.js new file mode 100644 index 0000000..44da3fc --- /dev/null +++ b/date-fns/src/locale/_lib/buildFormatLongFn/index.js @@ -0,0 +1,8 @@ +export default function buildFormatLongFn (args) { + return function (dirtyOptions) { + var options = dirtyOptions || {} + var width = options.width ? String(options.width) : args.defaultWidth + var format = args.formats[width] || args.formats[args.defaultWidth] + return format + } +} diff --git a/date-fns/src/locale/_lib/buildLocalizeFn/index.js b/date-fns/src/locale/_lib/buildLocalizeFn/index.js new file mode 100644 index 0000000..360d8a7 --- /dev/null +++ b/date-fns/src/locale/_lib/buildLocalizeFn/index.js @@ -0,0 +1,23 @@ +export default function buildLocalizeFn(args) { + return function(dirtyIndex, dirtyOptions) { + var options = dirtyOptions || {} + + var context = options.context ? String(options.context) : 'standalone' + + var valuesArray + if (context === 'formatting' && args.formattingValues) { + const defaultWidth = args.defaultFormattingWidth || args.defaultWidth + const width = options.width ? String(options.width) : defaultWidth + valuesArray = + args.formattingValues[width] || args.formattingValues[defaultWidth] + } else { + const defaultWidth = args.defaultWidth + const width = options.width ? String(options.width) : args.defaultWidth + valuesArray = args.values[width] || args.values[defaultWidth] + } + var index = args.argumentCallback + ? args.argumentCallback(dirtyIndex) + : dirtyIndex + return valuesArray[index] + } +} diff --git a/date-fns/src/locale/_lib/buildMatchFn/index.js b/date-fns/src/locale/_lib/buildMatchFn/index.js new file mode 100644 index 0000000..a5bd529 --- /dev/null +++ b/date-fns/src/locale/_lib/buildMatchFn/index.js @@ -0,0 +1,56 @@ +export default function buildMatchFn(args) { + return function(dirtyString, dirtyOptions) { + var string = String(dirtyString) + var options = dirtyOptions || {} + var width = options.width + + var matchPattern = + (width && args.matchPatterns[width]) || + args.matchPatterns[args.defaultMatchWidth] + var matchResult = string.match(matchPattern) + + if (!matchResult) { + return null + } + var matchedString = matchResult[0] + + var parsePatterns = + (width && args.parsePatterns[width]) || + args.parsePatterns[args.defaultParseWidth] + + var value + if (Object.prototype.toString.call(parsePatterns) === '[object Array]') { + value = findIndex(parsePatterns, function(pattern) { + return pattern.test(matchedString) + }) + } else { + value = findKey(parsePatterns, function(pattern) { + return pattern.test(matchedString) + }) + } + + value = args.valueCallback ? args.valueCallback(value) : value + value = options.valueCallback ? options.valueCallback(value) : value + + return { + value: value, + rest: string.slice(matchedString.length) + } + } +} + +function findKey(object, predicate) { + for (var key in object) { + if (object.hasOwnProperty(key) && predicate(object[key])) { + return key + } + } +} + +function findIndex(array, predicate) { + for (var key = 0; key < array.length; key++) { + if (predicate(array[key])) { + return key + } + } +} diff --git a/date-fns/src/locale/_lib/buildMatchPatternFn/index.js b/date-fns/src/locale/_lib/buildMatchPatternFn/index.js new file mode 100644 index 0000000..faaabed --- /dev/null +++ b/date-fns/src/locale/_lib/buildMatchPatternFn/index.js @@ -0,0 +1,24 @@ +export default function buildMatchPatternFn (args) { + return function (dirtyString, dirtyOptions) { + var string = String(dirtyString) + var options = dirtyOptions || {} + + var matchResult = string.match(args.matchPattern) + if (!matchResult) { + return null + } + var matchedString = matchResult[0] + + var parseResult = string.match(args.parsePattern) + if (!parseResult) { + return null + } + var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0] + value = options.valueCallback ? options.valueCallback(value) : value + + return { + value: value, + rest: string.slice(matchedString.length) + } + } +} |