syphonx-core
Version:
SyphonX is a template-driven solution for extracting data from HTML in a highly efficient way. It combines the power of jQuery, Regular Expressions, and Javascript into a declarative template-driven format that extracts and reshapes HTML data into JSON.
35 lines • 1.39 kB
JavaScript
import { parseBoolean, parseNumber } from "./parse.js";
export function coerce(value, type) {
if (type === "number")
return parseNumber(value);
else if (type === "boolean")
return parseBoolean(value);
else
return value;
}
export function coerceSelectValue(value, type, repeated) {
if (repeated) {
return value instanceof Array ? value.map(v => coerceSelectValue(v, type, false)) : [coerceSelectValue(value, type, false)];
}
else if (type === "string") {
return typeof value === "string" ? value : typeof value === "number" || typeof value === "boolean" ? value.toString() : null;
}
else if (type === "number") {
return typeof value === "number" ? value : typeof value === "string" ? parseNumber(value) : null;
}
else if (type === "boolean") {
return typeof value === "boolean" ? value : typeof value === "string" ? value.trim().length > 0 : typeof value === "number" && !isNaN(value) ? value !== 0 : null;
}
else {
return value;
}
}
export function isCoercibleTo(value, type) {
if (type === "number" && typeof value === "string" && parseNumber(value) !== undefined)
return true;
else if (type === "boolean" && typeof value === "string" && parseBoolean(value) !== undefined)
return true;
else
return false;
}
//# sourceMappingURL=coerce.js.map