From a85c7b5598a68390f066f723df9ba9c36d63c315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iiro=20J=C3=A4ppinen?= Date: Thu, 9 Apr 2020 15:29:14 +0300 Subject: [PATCH] refactor: rename chunkFiles gitDir arg to baseDir, since it's used for resolving --- lib/chunkFiles.js | 8 +++++--- lib/runAll.js | 2 +- test/chunkFiles.spec.js | 10 +++++----- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/chunkFiles.js b/lib/chunkFiles.js index f375a40b9..bfc8b7b00 100644 --- a/lib/chunkFiles.js +++ b/lib/chunkFiles.js @@ -27,18 +27,20 @@ function chunkArray(arr, chunkCount) { * Chunk files into sub-arrays based on the length of the resulting argument string * @param {Object} opts * @param {Array} opts.files - * @param {String} opts.gitDir + * @param {String} [opts.baseDir] The optional base directory to resolve relative paths. * @param {number} [opts.maxArgLength] the maximum argument string length * @param {Boolean} [opts.relative] whether files are relative to `gitDir` or should be resolved as absolute * @returns {Array>} */ -module.exports = function chunkFiles({ files, gitDir, maxArgLength = null, relative = false }) { +module.exports = function chunkFiles({ files, baseDir, maxArgLength = null, relative = false }) { if (!maxArgLength) { debug('Skip chunking files because of undefined maxArgLength') return [files] } - const normalizedFiles = files.map(file => normalize(relative ? file : path.resolve(gitDir, file))) + const normalizedFiles = files.map(file => + normalize(relative || !baseDir ? file : path.resolve(baseDir, file)) + ) const fileListLength = normalizedFiles.join(' ').length debug( `Resolved an argument string length of ${fileListLength} characters from ${normalizedFiles.length} files` diff --git a/lib/runAll.js b/lib/runAll.js index ef6ca672d..8d41aaf4b 100644 --- a/lib/runAll.js +++ b/lib/runAll.js @@ -109,7 +109,7 @@ const runAll = async ( return logger.log(`${symbols.info} No staged files found.`) } - const stagedFileChunks = chunkFiles({ files, gitDir, maxArgLength, relative }) + const stagedFileChunks = chunkFiles({ baseDir: gitDir, files, maxArgLength, relative }) const chunkCount = stagedFileChunks.length if (chunkCount > 1) debugLog(`Chunked staged files into ${chunkCount} part`, chunkCount) diff --git a/test/chunkFiles.spec.js b/test/chunkFiles.spec.js index 7686d448b..125c98e80 100644 --- a/test/chunkFiles.spec.js +++ b/test/chunkFiles.spec.js @@ -2,25 +2,25 @@ import chunkFiles from '../lib/chunkFiles' describe('chunkFiles', () => { const files = ['example.js', 'foo.js', 'bar.js', 'foo/bar.js'] - const gitDir = '/opt/git/example.git' + const baseDir = '/opt/git/example.git' it('should default to sane value', () => { - const chunkedFiles = chunkFiles({ files: ['foo.js'], gitDir, relative: true }) + const chunkedFiles = chunkFiles({ baseDir, files: ['foo.js'], relative: true }) expect(chunkedFiles).toEqual([['foo.js']]) }) it('should not chunk short argument string', () => { - const chunkedFiles = chunkFiles({ files, gitDir, maxArgLength: 1000 }) + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 1000 }) expect(chunkedFiles).toEqual([files]) }) it('should chunk too long argument string', () => { - const chunkedFiles = chunkFiles({ files, gitDir, maxArgLength: 20 }) + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20 }) expect(chunkedFiles).toEqual(files.map(file => [file])) }) it('should take into account relative setting', () => { - const chunkedFiles = chunkFiles({ files, gitDir, maxArgLength: 20, relative: true }) + const chunkedFiles = chunkFiles({ baseDir, files, maxArgLength: 20, relative: true }) expect(chunkedFiles).toEqual([ [files[0], files[1]], [files[2], files[3]]