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/size.js
/* eslint-disable no-console */
const fs = require('fs');
const sizeToBytes = require('../util/sizeToBytes');

module.exports = function validateSize({ value, args }) {
  const file = value;

  let min; let size;

  const max = sizeToBytes(args[0]);
  if (args.length >= 2) {
    min = sizeToBytes(args[1]);
  }
  // } else {
  //     max = sizeToBytes(args);
  // }

  if (file.size) {
    size = file.size;
  } else if (typeof file === 'string') {
    try {
      size = fs.statSync(file).size;
    } catch (e) {
      /* istanbul ignore next */
      console.error(e);
    }
  } else if (file.path && typeof file.path === 'string') {
    try {
      size = fs.statSync(file.path).size;
    } catch (e) {
      /* istanbul ignore next */
      console.error(e);
    }
  } else if (file instanceof Buffer) {
    size = file.byteLength;
  } else if (file.buffer && file.buffer instanceof Buffer) {
    size = file.buffer.byteLength;
  } else {
    throw new Error('Size rule only accepts Buffer,file path or size property in file object.');
  }

  if (!max) {
    return false;
  }

  if (max && size >= max) {
    return false;
  }

  if (min && size <= min) {
    return false;
  }

  return true;
};