diff --git a/package-lock.json b/package-lock.json index 46eb39f0e..14ea00b9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,6 @@ "jsonwebtoken": "^8.5.1", "ldapjs": "^2.3.2", "lodash": "^4.17.21", - "lodash.chunk": "^4.2.0", "moment": "^2.29.2", "moment-timezone": "^0.5.34", "morgan": "^1.10.0", @@ -4165,11 +4164,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", @@ -11198,11 +11192,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", diff --git a/package.json b/package.json index e04ec40ec..9f87ecb8d 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,6 @@ "jsonwebtoken": "^8.5.1", "ldapjs": "^2.3.2", "lodash": "^4.17.21", - "lodash.chunk": "^4.2.0", "moment": "^2.29.2", "moment-timezone": "^0.5.34", "morgan": "^1.10.0", diff --git a/src/chunk.js b/src/chunk.js new file mode 100644 index 000000000..08c1ec001 --- /dev/null +++ b/src/chunk.js @@ -0,0 +1,20 @@ +'use strict'; + +exports = module.exports = chunk; + +const assert = require('assert'); + +function chunk(array, size) { + assert(Array.isArray(array)); + assert.strictEqual(typeof size, 'number'); + + const length = array.length; + if (!length) return []; + let index = 0, resIndex = 0, result = Array(Math.ceil(length / size)); + + for (; index < length; index += size) { + result[resIndex++] = array.slice(index, index+size); + } + + return result; +} diff --git a/src/storage/s3.js b/src/storage/s3.js index c934adde0..6f4c58a10 100644 --- a/src/storage/s3.js +++ b/src/storage/s3.js @@ -29,7 +29,7 @@ const assert = require('assert'), async = require('async'), AwsSdk = require('aws-sdk'), BoxError = require('../boxerror.js'), - chunk = require('lodash.chunk'), + chunk = require('../chunk.js'), constants = require('../constants.js'), DataLayout = require('../datalayout.js'), debug = require('debug')('box:storage/s3'), diff --git a/src/test/storage-test.js b/src/test/storage-test.js index 9c9e3c27f..7ce53da98 100644 --- a/src/test/storage-test.js +++ b/src/test/storage-test.js @@ -7,11 +7,13 @@ 'use strict'; const BoxError = require('../boxerror.js'), + chunk = require('../chunk.js'); common = require('./common.js'), execSync = require('child_process').execSync, expect = require('expect.js'), filesystem = require('../storage/filesystem.js'), fs = require('fs'), + gcs = require('../storage/gcs.js'), MockS3 = require('mock-aws-s3'), noop = require('../storage/noop.js'), os = require('os'), @@ -20,9 +22,7 @@ const BoxError = require('../boxerror.js'), recursiveReaddir = require('recursive-readdir'), s3 = require('../storage/s3.js'), safe = require('safetydance'), - settings = require('../settings.js'), - gcs = require('../storage/gcs.js'), - chunk = require('lodash.chunk'); + settings = require('../settings.js'); describe('Storage', function () { const { setup, cleanup } = common;