Skip to content
This repository has been archived by the owner on May 22, 2024. It is now read-only.

Commit

Permalink
fix: make checksum deterministic
Browse files Browse the repository at this point in the history
  • Loading branch information
eduardoboucas committed Oct 26, 2021
1 parent ba8232f commit e451ffe
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 39 deletions.
5 changes: 4 additions & 1 deletion src/runtimes/node/bundlers/nft/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,16 @@ const bundle: BundleFunction = async ({
const filteredIncludedPaths = filterExcludedPaths([...dependencyPaths, ...includedFilePaths], excludedPaths)
const dirnames = filteredIncludedPaths.map((filePath) => normalize(dirname(filePath))).sort()

// Sorting the array to make the checksum deterministic.
const srcFiles = [...filteredIncludedPaths, ...transpilation.keys()].sort()

return {
aliases: transpilation,
basePath: getBasePath(dirnames),
cleanupFunction,
inputs: dependencyPaths,
mainFile,
srcFiles: [...filteredIncludedPaths, ...transpilation.keys()],
srcFiles,
}
}

Expand Down
75 changes: 37 additions & 38 deletions tests/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -781,46 +781,45 @@ testMany(
basePath: fixtureDir,
})
const bundler = options.config['*'].nodeBundler
const functions = await listFunctionsFiles(fixtureDir, opts)
const sortedFunctions = sortOn(functions, 'mainFile')
t.deepEqual(
sortedFunctions,
[
{ name: 'five', mainFile: 'five/index.ts', runtime: 'js', extension: '.ts', srcFile: 'five/index.ts' },

bundler === 'nft' && {
name: 'five',
mainFile: 'five/index.ts',
runtime: 'js',
extension: '.ts',
srcFile: 'five/util.ts',
},
const files = await listFunctionsFiles(fixtureDir, opts)
const sortedFiles = sortOn(files, ['mainFile', 'srcFile'])
const expectedFiles = [
{ name: 'five', mainFile: 'five/index.ts', runtime: 'js', extension: '.ts', srcFile: 'five/index.ts' },

bundler === 'nft' && {
name: 'five',
mainFile: 'five/index.ts',
runtime: 'js',
extension: '.ts',
srcFile: 'five/util.ts',
},

{
name: 'four',
mainFile: 'four.js/four.js.js',
runtime: 'js',
extension: '.js',
srcFile: 'four.js/four.js.js',
},
{ name: 'one', mainFile: 'one/index.js', runtime: 'js', extension: '.js', srcFile: 'one/index.js' },
{ name: 'test', mainFile: 'test', runtime: 'go', extension: '', srcFile: 'test' },
{ name: 'test', mainFile: 'test.js', runtime: 'js', extension: '.js', srcFile: 'test.js' },
{ name: 'test', mainFile: 'test.zip', runtime: 'js', extension: '.zip', srcFile: 'test.zip' },

(bundler === undefined || bundler === 'nft') && {
name: 'two',
mainFile: 'two/two.js',
runtime: 'js',
extension: '.json',
srcFile: 'two/three.json',
},
{
name: 'four',
mainFile: 'four.js/four.js.js',
runtime: 'js',
extension: '.js',
srcFile: 'four.js/four.js.js',
},
{ name: 'one', mainFile: 'one/index.js', runtime: 'js', extension: '.js', srcFile: 'one/index.js' },
{ name: 'test', mainFile: 'test', runtime: 'go', extension: '', srcFile: 'test' },
{ name: 'test', mainFile: 'test.js', runtime: 'js', extension: '.js', srcFile: 'test.js' },
{ name: 'test', mainFile: 'test.zip', runtime: 'js', extension: '.zip', srcFile: 'test.zip' },

(bundler === undefined || bundler === 'nft') && {
name: 'two',
mainFile: 'two/two.js',
runtime: 'js',
extension: '.json',
srcFile: 'two/three.json',
},

{ name: 'two', mainFile: 'two/two.js', runtime: 'js', extension: '.js', srcFile: 'two/two.js' },
]
.filter(Boolean)
.map(normalizeFiles.bind(null, fixtureDir)),
)
{ name: 'two', mainFile: 'two/two.js', runtime: 'js', extension: '.js', srcFile: 'two/two.js' },
]
.filter(Boolean)
.map(normalizeFiles.bind(null, fixtureDir))

t.deepEqual(sortedFiles, sortOn(expectedFiles, ['mainFile', 'srcFile']))
},
)

Expand Down

0 comments on commit e451ffe

Please sign in to comment.