about summary refs log tree commit diff
path: root/pkgs/build-support/node
diff options
context:
space:
mode:
authorYureka <yuka@yuka.dev>2021-10-12 01:56:16 +0200
committerYuka <yuka@yuka.dev>2021-10-20 11:39:16 +0200
commit84e02be598d10f59a8320ee60a3d2efc31339ce2 (patch)
treea870465a1e43418967aeaa4404a6c5b79f738628 /pkgs/build-support/node
parentcf6f772676b4f3cc7bcd04eb75dadcea85c2cb01 (diff)
fetchYarnDeps, mkYarnModules: verify the FOD hash is up-to-date
Diffstat (limited to 'pkgs/build-support/node')
-rwxr-xr-xpkgs/build-support/node/fetch-yarn-deps/index.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/pkgs/build-support/node/fetch-yarn-deps/index.js b/pkgs/build-support/node/fetch-yarn-deps/index.js
index 0952235ee0682..a9c5ab29cce56 100755
--- a/pkgs/build-support/node/fetch-yarn-deps/index.js
+++ b/pkgs/build-support/node/fetch-yarn-deps/index.js
@@ -92,7 +92,8 @@ const performParallel = tasks => {
 	return Promise.all(workers)
 }
 
-const prefetchYarnDeps = async (lockData, verbose) => {
+const prefetchYarnDeps = async (lockContents, verbose) => {
+	const lockData = lockfile.parse(lockContents)
 	const tasks = Object.values(
 		Object.entries(lockData.object)
 		.map(([key, value]) => {
@@ -106,6 +107,7 @@ const prefetchYarnDeps = async (lockData, verbose) => {
 		.map(pkg => () => downloadPkg(pkg, verbose))
 
 	await performParallel(tasks)
+	await fs.promises.writeFile('yarn.lock', lockContents)
 	if (verbose) console.log('Done')
 }
 
@@ -140,19 +142,18 @@ const main = async () => {
 	let lockContents
 	try {
 		lockContents = await fs.promises.readFile(lockFile || 'yarn.lock', 'utf-8')
-	} catch(e) {
+	} catch {
 		showUsage()
 	}
-	const lockData = lockfile.parse(lockContents)
 
 	if (isBuilder) {
-		await prefetchYarnDeps(lockData, verbose)
+		await prefetchYarnDeps(lockContents, verbose)
 	} else {
 		const { stdout: tmpDir } = await exec('mktemp', [ '-d' ])
 
 		try {
 			process.chdir(tmpDir.trim())
-			await prefetchYarnDeps(lockData, verbose)
+			await prefetchYarnDeps(lockContents, verbose)
 			const { stdout: hash } = await exec('nix-hash', [ '--type', 'sha256', '--base32', tmpDir.trim() ])
 			console.log(hash)
 		} finally {