diff options
-rw-r--r-- | cli/js2/22_form_data.js | 62 |
1 files changed, 19 insertions, 43 deletions
diff --git a/cli/js2/22_form_data.js b/cli/js2/22_form_data.js index ae23c3178..1c2b84311 100644 --- a/cli/js2/22_form_data.js +++ b/cli/js2/22_form_data.js @@ -8,26 +8,27 @@ const dataSymbol = Symbol("data"); + function parseFormDataValue(value, filename) { + if (value instanceof domFile.DomFile) { + return new domFile.DomFile([value], filename || value.name, { + type: value.type, + }); + } else if (value instanceof blob.Blob) { + return new domFile.DomFile([value], filename || "blob", { + type: value.type, + }); + } else { + return String(value); + } + } + class FormDataBase { [dataSymbol] = []; - append( - name, - value, - filename, - ) { + append(name, value, filename) { requiredArguments("FormData.append", arguments.length, 2); name = String(name); - if (value instanceof domFile.DomFile) { - this[dataSymbol].push([name, value]); - } else if (value instanceof blob.Blob) { - const dfile = new domFile.DomFile([value], filename || "blob", { - type: value.type, - }); - this[dataSymbol].push([name, dfile]); - } else { - this[dataSymbol].push([name, String(value)]); - } + this[dataSymbol].push([name, parseFormDataValue(value, filename)]); } delete(name) { @@ -74,11 +75,7 @@ return this[dataSymbol].some((entry) => entry[0] === name); } - set( - name, - value, - filename, - ) { + set(name, value, filename) { requiredArguments("FormData.set", arguments.length, 2); name = String(name); @@ -89,19 +86,7 @@ while (i < this[dataSymbol].length) { if (this[dataSymbol][i][0] === name) { if (!found) { - if (value instanceof domFile.DomFile) { - this[dataSymbol][i][1] = value; - } else if (value instanceof blob.Blob) { - this[dataSymbol][i][1] = new domFile.DomFile( - [value], - filename || "blob", - { - type: value.type, - }, - ); - } else { - this[dataSymbol][i][1] = String(value); - } + this[dataSymbol][i][1] = parseFormDataValue(value, filename); found = true; } else { this[dataSymbol].splice(i, 1); @@ -113,16 +98,7 @@ // Otherwise, append entry to the context object’s entry list. if (!found) { - if (value instanceof domFile.DomFile) { - this[dataSymbol].push([name, value]); - } else if (value instanceof blob.Blob) { - const dfile = new domFile.DomFile([value], filename || "blob", { - type: value.type, - }); - this[dataSymbol].push([name, dfile]); - } else { - this[dataSymbol].push([name, String(value)]); - } + this[dataSymbol].push([name, parseFormDataValue(value, filename)]); } } |