summaryrefslogtreecommitdiff
path: root/date-fns/src/locale/_lib/buildMatchPatternFn/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'date-fns/src/locale/_lib/buildMatchPatternFn/index.js')
-rw-r--r--date-fns/src/locale/_lib/buildMatchPatternFn/index.js24
1 files changed, 24 insertions, 0 deletions
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)
+ }
+ }
+}