HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //var/www/api.javaapp.co.uk/node_modules/node-input-validator/lib/rules/dimensions.js
const sizeOf = require('image-size');
const namedArgs = require('../util/namedArgs');

module.exports = function dimensions({ value, args }) {
  const rules = namedArgs(args);

  let inputFile;

  if (typeof value === 'string' || value instanceof Buffer) {
    inputFile = value;
  } else if (value.path && typeof value.path === 'string') {
    inputFile = value.path;
  } else if (value.buffer && value.buffer instanceof Buffer) {
    inputFile = value.buffer;
  } else {
    throw new Error('Dimensions rule only accepts Buffer,file path or size property in file object.');
  }

  const imgDimensions = sizeOf(inputFile);

  if (rules.minWidth && Number(rules.minWidth) > imgDimensions.width) {
    return false;
  }
  if (rules.maxWidth && Number(rules.maxWidth) < imgDimensions.width) {
    return false;
  }

  // throw Number(rules.minHeight) < imgDimensions.height;
  if (rules.minHeight && Number(rules.minHeight) > imgDimensions.height) {
    return false;
  }

  if (rules.maxHeight && Number(rules.maxHeight) < imgDimensions.height) {
    return false;
  }

  if (rules.width && Number(rules.width) !== imgDimensions.width) {
    return false;
  }
  if (rules.height && Number(rules.height) !== imgDimensions.height) {
    return false;
  }

  return true;
};