node-libpng
Version:
Unofficial bindings for node to libpng.
64 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isRect = exports.rect = void 0;
const xy_1 = require("./xy");
function rect(arg1, arg2, arg3, arg4) {
let x, y, width, height;
if (xy_1.isXY(arg1) && xy_1.isXY(arg2)) {
x = arg1.x;
y = arg1.y;
width = arg2.x;
height = arg2.y;
}
else {
x = arg1;
y = arg2;
width = arg3;
height = arg4;
}
const newRect = [x, y, width, height];
Object.defineProperty(newRect, "x", { get() { return this[0]; } });
Object.defineProperty(newRect, "y", { get() { return this[1]; } });
Object.defineProperty(newRect, "width", { get() { return this[2]; } });
Object.defineProperty(newRect, "height", { get() { return this[3]; } });
Object.defineProperty(newRect, "offset", { get() { return xy_1.xy(this[0], this[1]); } });
Object.defineProperty(newRect, "dimensions", { get() { return xy_1.xy(this[2], this[3]); } });
return newRect;
}
exports.rect = rect;
/**
* Checks if the given parameter is a rectangle.
*
* @param toCheck Parameter to check.
*
* @return `true` if the given parameter was a rectangle and `false` otherwise.
*/
function isRect(toCheck) {
if (typeof toCheck !== "object" || !Array.isArray(toCheck)) {
return false;
}
if (toCheck.length !== 4) {
return false;
}
if (typeof toCheck.x !== "number") {
return false;
}
if (typeof toCheck.y !== "number") {
return false;
}
if (typeof toCheck.width !== "number") {
return false;
}
if (typeof toCheck.height !== "number") {
return false;
}
if (!xy_1.isXY(toCheck.offset)) {
return false;
}
if (!xy_1.isXY(toCheck.dimensions)) {
return false;
}
return true;
}
exports.isRect = isRect;
//# sourceMappingURL=rect.js.map