diff --git a/package.json b/package.json index af476de757..49e6affe2a 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,6 @@ "grant": "4.7.0", "helmet": "^4.6.0", "ipaddr.js": "^2.0.1", - "isobject": "3.0.1", "jsonwebtoken": "8.5.1", "lodash.merge": "^4.6.2", "mime-types": "2.1.25", diff --git a/src/server/Uploader.js b/src/server/Uploader.js index 8ddc8fc4d4..7bba45d1f0 100644 --- a/src/server/Uploader.js +++ b/src/server/Uploader.js @@ -1,7 +1,6 @@ // eslint-disable-next-line max-classes-per-file const tus = require('tus-js-client') const { randomUUID } = require('node:crypto') -const isObject = require('isobject') const validator = require('validator') const request = require('request') const { pipeline: pipelineCb } = require('node:stream') @@ -78,17 +77,17 @@ function validateOptions (options) { } // validate fieldname - if (options.fieldname && typeof options.fieldname !== 'string') { + if (options.fieldname != null && typeof options.fieldname !== 'string') { throw new ValidationError('fieldname must be a string') } // validate metadata - if (options.metadata != null) { - if (!isObject(options.metadata)) throw new ValidationError('metadata must be an object') + if (options.metadata != null && typeof options.metadata !== 'object') { + throw new ValidationError('metadata must be an object') } // validate headers - if (options.headers && !isObject(options.headers)) { + if (options.headers != null && typeof options.headers !== 'object') { throw new ValidationError('headers must be an object') } diff --git a/src/server/header-blacklist.js b/src/server/header-blacklist.js index 08e0e4b817..5e188bad40 100644 --- a/src/server/header-blacklist.js +++ b/src/server/header-blacklist.js @@ -1,4 +1,3 @@ -const isObject = require('isobject') const logger = require('./logger') /** @@ -50,7 +49,7 @@ const isForbiddenHeader = (header) => { } module.exports = (headers) => { - if (!isObject(headers)) { + if (headers == null || typeof headers !== 'object' || Array.isArray(headers)) { return {} }