clean up code formatting and fix missing entries

This commit is contained in:
Brunon Blok 2023-04-06 21:03:46 +00:00
parent bf1e708a4c
commit 15b426ebb6
3 changed files with 35 additions and 41 deletions

View file

@ -418,6 +418,7 @@
"JPath expression",
"CSS selector",
"PHP Deserialize",
"PHP Serialize",
"Microsoft Script Decoder",
"Strip HTML tags",
"Diff",

View file

@ -54,32 +54,28 @@ class PHPSerialize extends Operation {
"float": "d",
"boolean": "b"
};
/**
* Booleans
* cast to 0 or 1
*/
if (typeof content === "boolean"){
return `${basicTypes["boolean"]}:${content ? 1 : 0}`;
if (typeof content === "boolean") {
return `${basicTypes.boolean}:${content ? 1 : 0}`;
}
/**
* Numbers
*/
if (typeof content === "number"){
if (isInteger(content)){
return `${basicTypes["integer"]}:${content.toString()}`
}
else {
return `${basicTypes["float"]}:${content.toString()}`
if (typeof content === "number") {
if (isInteger(content)) {
return `${basicTypes.integer}:${content.toString()}`;
} else {
return `${basicTypes.float}:${content.toString()}`;
}
}
/**
* Strings
*/
if (typeof content === "string")
return `${basicTypes["string"]}:${content.length}:"${content}"`;
return `${basicTypes.string}:${content.length}:"${content}"`;
/** This should be unreachable */
throw new OperationError(`Encountered a non-implemented type: ${typeof content}`);
@ -95,34 +91,30 @@ class PHPSerialize extends Operation {
* Null
*/
if (object == null) {
return `N;`
return `N;`;
}
if (typeof object !== "object") {
/**
* Basic types
*/
if (typeof object !== "object"){
return `${serializeBasicTypes(object)};`;
}
} else if (object instanceof Array) {
/**
* Arrays
*/
else if (object instanceof Array) {
const serializedElements = [];
for (let i = 0; i < object.length; i++) {
serializedElements.push(`${serialize(i)}${serialize(object[i])}`);
}
return `a:${object.length}:{${serializedElements.join("")}}`
}
return `a:${object.length}:{${serializedElements.join("")}}`;
} else if (object instanceof Object) {
/**
* Objects
* Note: the output cannot be guaranteed to be in the same order as the input
*/
else if (object instanceof Object) {
const serializedElements = [];
const keys = Object.keys(object);
@ -130,7 +122,7 @@ class PHPSerialize extends Operation {
serializedElements.push(`${serialize(key)}${serialize(object[key])}`);
}
return `a:${keys.length}:{${serializedElements.join("")}}`
return `a:${keys.length}:{${serializedElements.join("")}}`;
}
/** This should be unreachable */

View file

@ -70,6 +70,7 @@ import "./tests/NormaliseUnicode.mjs";
import "./tests/OTP.mjs";
import "./tests/PGP.mjs";
import "./tests/PHP.mjs";
import "./tests/PHPSerialize.mjs";
import "./tests/ParseIPRange.mjs";
import "./tests/ParseQRCode.mjs";
import "./tests/PEMtoHex.mjs";