Skip to content

Commit

Permalink
Remove duplicate code and allow filename overwrite for DomFile (denol…
Browse files Browse the repository at this point in the history
  • Loading branch information
crowlKats committed Jul 20, 2020
1 parent 628c10b commit 903d28f
Showing 1 changed file with 19 additions and 43 deletions.
62 changes: 19 additions & 43 deletions cli/js2/22_form_data.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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);

Expand All @@ -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);
Expand All @@ -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)]);
}
}

Expand Down

0 comments on commit 903d28f

Please sign in to comment.