decode-formdata
Advanced tools
Comparing version
@@ -30,3 +30,3 @@ /** | ||
*/ | ||
declare function getFieldDate(value: string): Date | null; | ||
declare function getFieldDate(value: string): Date | null | undefined; | ||
@@ -42,3 +42,3 @@ /** | ||
*/ | ||
declare function getFieldValue(info: FormDataInfo | undefined, templateName: string, value: FormDataEntryValue): number | boolean | Date | FormDataEntryValue | null; | ||
declare function getFieldValue(info: FormDataInfo | undefined, templateName: string, value: FormDataEntryValue): number | boolean | Date | FormDataEntryValue | null | undefined; | ||
@@ -45,0 +45,0 @@ /** |
// src/regex.ts | ||
var DIGIT_REGEX = /^\d+$/u; | ||
var NUMBER_REGEX = /^-?\d*(\.\d+)?$/u; | ||
var ISO_DATE_REGEX = /^\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\d|0[1-9]|3[01])$/u; | ||
@@ -11,5 +12,8 @@ var ISO_DATE_TIME_REGEX = /^\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\d|0[1-9]|3[01])T(?:0\d|1\d|2[0-3]):[0-5]\d$/u; | ||
function getFieldDate(value) { | ||
if (!value) { | ||
if (!value || value === "null") { | ||
return null; | ||
} | ||
if (value === "undefined") { | ||
return void 0; | ||
} | ||
if (ISO_DATE_REGEX.test(value)) { | ||
@@ -39,6 +43,31 @@ return /* @__PURE__ */ new Date(`${value}T00:00:00.000Z`); | ||
// src/utils/getFieldBoolean/getFieldBoolean.ts | ||
function getFieldBoolean(value) { | ||
if (!value || value === "null") { | ||
return null; | ||
} | ||
if (value === "undefined") { | ||
return void 0; | ||
} | ||
return !(value === "false" || value === "off" || value === "0"); | ||
} | ||
// src/utils/getFieldNumber/getFieldNumber.ts | ||
function getFieldNumber(value) { | ||
if (!value || value === "null") { | ||
return null; | ||
} | ||
if (value === "undefined") { | ||
return void 0; | ||
} | ||
if (NUMBER_REGEX.test(value)) { | ||
return Number(value); | ||
} | ||
return getFieldDate(value).getTime(); | ||
} | ||
// src/utils/getFieldValue/getFieldValue.ts | ||
function getFieldValue(info, templateName, value) { | ||
if (info?.booleans?.includes(templateName)) { | ||
return value !== "false" && value !== "0"; | ||
return getFieldBoolean(value); | ||
} | ||
@@ -50,3 +79,3 @@ if (typeof value === "string") { | ||
if (info?.numbers?.includes(templateName)) { | ||
return /^-?\d*(\.\d+)?$/.test(value) ? parseFloat(value) : getFieldDate(value).getTime(); | ||
return getFieldNumber(value); | ||
} | ||
@@ -53,0 +82,0 @@ } |
{ | ||
"name": "decode-formdata", | ||
"description": "Decodes complex FormData into a JavaScript object", | ||
"version": "0.5.0", | ||
"version": "0.6.0", | ||
"license": "MIT", | ||
@@ -6,0 +6,0 @@ "author": "Fabian Hiller", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
24043
-13.71%7
-12.5%451
-18.3%