From 79a19b412c67c0ee84750fc4062906851cc3a548 Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Sun, 10 Mar 2024 12:19:15 -0400 Subject: [PATCH] Build: migrate more uses of fs.promises; use node: protocol Ref gh-5441 --- build/release.js | 2 +- build/release/authors.js | 6 +-- build/release/cdn.js | 70 +++++++++++++++++----------- build/release/dist.js | 2 +- build/tasks/compare_size.mjs | 8 ++-- build/tasks/lib/isCleanWorkingDir.js | 4 +- build/tasks/minify.js | 10 ++-- build/tasks/node_smoke_tests.js | 8 ++-- build/tasks/npmcopy.js | 10 ++-- build/tasks/promises_aplus_tests.js | 6 +-- build/tasks/qunit-fixture.js | 6 +-- test/runner/createTestServer.js | 2 +- 12 files changed, 76 insertions(+), 58 deletions(-) diff --git a/build/release.js b/build/release.js index b778ca244..f7d30f4db 100644 --- a/build/release.js +++ b/build/release.js @@ -1,6 +1,6 @@ "use strict"; -var fs = require( "fs" ); +const fs = require( "node:fs" ); module.exports = function( Release ) { diff --git a/build/release/authors.js b/build/release/authors.js index dc9707c6b..3a0f3bd32 100644 --- a/build/release/authors.js +++ b/build/release/authors.js @@ -1,6 +1,6 @@ "use strict"; -const fs = require( "node:fs" ); +const fs = require( "node:fs/promises" ); const util = require( "node:util" ); const exec = util.promisify( require( "node:child_process" ).exec ); const rnewline = /\r?\n/; @@ -40,7 +40,7 @@ function cloneSizzle() { } async function getLastAuthor() { - const authorsTxt = await fs.promises.readFile( "AUTHORS.txt", "utf8" ); + const authorsTxt = await fs.readFile( "AUTHORS.txt", "utf8" ); return authorsTxt.trim().split( rnewline ).pop(); } @@ -93,7 +93,7 @@ async function updateAuthors() { const authors = await getAuthors(); const authorsTxt = "Authors ordered by first contribution.\n\n" + authors.join( "\n" ) + "\n"; - await fs.promises.writeFile( "AUTHORS.txt", authorsTxt ); + await fs.writeFile( "AUTHORS.txt", authorsTxt ); console.log( "AUTHORS.txt updated" ); } diff --git a/build/release/cdn.js b/build/release/cdn.js index 0cbea4a7a..8576ade42 100644 --- a/build/release/cdn.js +++ b/build/release/cdn.js @@ -1,13 +1,10 @@ "use strict"; -var - fs = require( "fs" ), +var fs = require( "node:fs" ), shell = require( "shelljs" ), - path = require( "path" ), - os = require( "os" ), - + path = require( "node:path" ), + os = require( "node:os" ), cdnFolder = "dist/cdn", - releaseFiles = { "jquery-VER.js": "dist/jquery.js", "jquery-VER.min.js": "dist/jquery.min.js", @@ -16,15 +13,21 @@ var "jquery-VER.slim.min.js": "dist/jquery.slim.min.js", "jquery-VER.slim.min.map": "dist/jquery.slim.min.map" }, - googleFilesCDN = [ - "jquery.js", "jquery.min.js", "jquery.min.map", - "jquery.slim.js", "jquery.slim.min.js", "jquery.slim.min.map" + "jquery.js", + "jquery.min.js", + "jquery.min.map", + "jquery.slim.js", + "jquery.slim.min.js", + "jquery.slim.min.map" ], - msFilesCDN = [ - "jquery-VER.js", "jquery-VER.min.js", "jquery-VER.min.map", - "jquery-VER.slim.js", "jquery-VER.slim.min.js", "jquery-VER.slim.min.map" + "jquery-VER.js", + "jquery-VER.min.js", + "jquery-VER.min.map", + "jquery-VER.slim.js", + "jquery-VER.slim.min.js", + "jquery-VER.slim.min.map" ]; /** @@ -44,11 +47,16 @@ function makeReleaseCopies( Release ) { // Map files need to reference the new uncompressed name; // assume that all files reside in the same directory. // "file":"jquery.min.js" ... "sources":["jquery.js"] - text = fs.readFileSync( builtFile, "utf8" ) - .replace( /"file":"([^"]+)"/, - "\"file\":\"" + unpathedFile.replace( /\.min\.map/, ".min.js\"" ) ) - .replace( /"sources":\["([^"]+)"\]/, - "\"sources\":[\"" + unpathedFile.replace( /\.min\.map/, ".js" ) + "\"]" ); + text = fs + .readFileSync( builtFile, "utf8" ) + .replace( + /"file":"([^"]+)"/, + `"file":"${ unpathedFile.replace( /\.min\.map/, ".min.js" ) }"` + ) + .replace( + /"sources":\["([^"]+)"\]/, + `"sources":["${ unpathedFile.replace( /\.min\.map/, ".js" ) }"]` + ); fs.writeFileSync( releaseFile, text ); } else if ( builtFile !== releaseFile ) { shell.cp( "-f", builtFile, releaseFile ); @@ -57,19 +65,22 @@ function makeReleaseCopies( Release ) { } function makeArchives( Release, callback ) { - Release.chdir( Release.dir.repo ); function makeArchive( cdn, files, callback ) { if ( Release.preRelease ) { - console.log( "Skipping archive creation for " + cdn + "; this is a beta release." ); + console.log( + `Skipping archive creation for ${ cdn }; this is a beta release.` + ); callback(); return; } console.log( "Creating production archive for " + cdn ); - var i, sum, result, + var i, + sum, + result, archiver = require( "archiver" )( "zip" ), md5file = cdnFolder + "/" + cdn + "-md5.txt", output = fs.createWriteStream( @@ -87,28 +98,35 @@ function makeArchives( Release, callback ) { archiver.pipe( output ); files = files.map( function( item ) { - return "dist" + ( rver.test( item ) ? "/cdn" : "" ) + "/" + - item.replace( rver, Release.newVersion ); + return ( + "dist" + + ( rver.test( item ) ? "/cdn" : "" ) + + "/" + + item.replace( rver, Release.newVersion ) + ); } ); if ( os.platform() === "win32" ) { sum = []; for ( i = 0; i < files.length; i++ ) { result = Release.exec( - "certutil -hashfile " + files[ i ] + " MD5", "Error retrieving md5sum" + "certutil -hashfile " + files[ i ] + " MD5", + "Error retrieving md5sum" ); sum.push( rmd5.exec( result )[ 0 ] + " " + files[ i ] ); } sum = sum.join( "\n" ); } else { - sum = Release.exec( "md5 -r " + files.join( " " ), "Error retrieving md5sum" ); + sum = Release.exec( + "md5 -r " + files.join( " " ), + "Error retrieving md5sum" + ); } fs.writeFileSync( md5file, sum ); files.push( md5file ); files.forEach( function( file ) { - archiver.append( fs.createReadStream( file ), - { name: path.basename( file ) } ); + archiver.append( fs.createReadStream( file ), { name: path.basename( file ) } ); } ); archiver.finalize(); diff --git a/build/release/dist.js b/build/release/dist.js index c06c6c656..7b0afae85 100644 --- a/build/release/dist.js +++ b/build/release/dist.js @@ -2,7 +2,7 @@ module.exports = function( Release, files, complete ) { - const fs = require( "fs" ).promises; + const fs = require( "node:fs/promises" ); const shell = require( "shelljs" ); const inquirer = require( "inquirer" ); const pkg = require( `${ Release.dir.repo }/package.json` ); diff --git a/build/tasks/compare_size.mjs b/build/tasks/compare_size.mjs index c8e55bb42..ea239fb27 100644 --- a/build/tasks/compare_size.mjs +++ b/build/tasks/compare_size.mjs @@ -1,5 +1,5 @@ import chalk from "chalk"; -import fs from "node:fs"; +import fs from "node:fs/promises"; import { promisify } from "node:util"; import zlib from "node:zlib"; import { exec as nodeExec } from "node:child_process"; @@ -34,7 +34,7 @@ function getBranchHeader( branch, commit ) { async function getCache( loc ) { let cache; try { - const contents = await fs.promises.readFile( loc, "utf8" ); + const contents = await fs.readFile( loc, "utf8" ); cache = JSON.parse( contents ); } catch ( err ) { return {}; @@ -60,7 +60,7 @@ function cacheResults( results ) { } function saveCache( loc, cache ) { - return fs.promises.writeFile( loc, JSON.stringify( cache ) ); + return fs.writeFile( loc, JSON.stringify( cache ) ); } function compareSizes( existing, current, padLength ) { @@ -104,7 +104,7 @@ export async function compareSize( { cache = ".sizecache.json", files } = {} ) { const results = await Promise.all( files.map( async function( filename ) { - let contents = await fs.promises.readFile( filename, "utf8" ); + let contents = await fs.readFile( filename, "utf8" ); // Remove the short SHA and .dirty from comparisons. // The short SHA so commits can be compared against each other diff --git a/build/tasks/lib/isCleanWorkingDir.js b/build/tasks/lib/isCleanWorkingDir.js index 16c87fd9d..3ad8f89bc 100644 --- a/build/tasks/lib/isCleanWorkingDir.js +++ b/build/tasks/lib/isCleanWorkingDir.js @@ -1,7 +1,7 @@ "use strict"; -const util = require( "util" ); -const exec = util.promisify( require( "child_process" ).exec ); +const util = require( "node:util" ); +const exec = util.promisify( require( "node:child_process" ).exec ); module.exports = async function isCleanWorkingDir() { const { stdout } = await exec( "git status --untracked-files=no --porcelain" ); diff --git a/build/tasks/minify.js b/build/tasks/minify.js index 0819246a5..bfb059b7b 100644 --- a/build/tasks/minify.js +++ b/build/tasks/minify.js @@ -1,8 +1,8 @@ "use strict"; const UglifyJS = require( "uglify-js" ); -const fs = require( "fs" ); -const path = require( "path" ); +const fs = require( "node:fs/promises" ); +const path = require( "node:path" ); const processForDist = require( "./dist" ); const getTimestamp = require( "./lib/getTimestamp" ); @@ -10,7 +10,7 @@ const rjs = /\.js$/; module.exports = async function minify( { dir, filename } ) { const filepath = path.join( dir, filename ); - const contents = await fs.promises.readFile( filepath, "utf8" ); + const contents = await fs.readFile( filepath, "utf8" ); const version = /jQuery JavaScript Library ([^\n]+)/.exec( contents )[ 1 ]; const banner = `/*! jQuery ${ version }` + " | (c) OpenJS Foundation and other contributors" + @@ -63,11 +63,11 @@ module.exports = async function minify( { dir, filename } ) { } ); await Promise.all( [ - fs.promises.writeFile( + fs.writeFile( path.join( dir, minFilename ), code ), - fs.promises.writeFile( + fs.writeFile( path.join( dir, mapFilename ), map ) diff --git a/build/tasks/node_smoke_tests.js b/build/tasks/node_smoke_tests.js index 01d69eb25..043a227b5 100644 --- a/build/tasks/node_smoke_tests.js +++ b/build/tasks/node_smoke_tests.js @@ -1,8 +1,8 @@ "use strict"; -const fs = require( "fs" ); -const util = require( "util" ); -const exec = util.promisify( require( "child_process" ).exec ); +const fs = require( "node:fs/promises" ); +const util = require( "node:util" ); +const exec = util.promisify( require( "node:child_process" ).exec ); const verifyNodeVersion = require( "./lib/verifyNodeVersion" ); if ( !verifyNodeVersion() ) { @@ -17,7 +17,7 @@ if ( !verifyNodeVersion() ) { async function runTests( { module } ) { const dir = "./test/node_smoke_tests"; - const files = await fs.promises.readdir( dir, { withFileTypes: true } ); + const files = await fs.readdir( dir, { withFileTypes: true } ); const testFiles = files.filter( ( testFilePath ) => testFilePath.isFile() ); if ( !testFiles.length ) { diff --git a/build/tasks/npmcopy.js b/build/tasks/npmcopy.js index 750f26d8a..93c0658b9 100644 --- a/build/tasks/npmcopy.js +++ b/build/tasks/npmcopy.js @@ -1,7 +1,7 @@ "use strict"; -const fs = require( "fs" ); -const path = require( "path" ); +const fs = require( "node:fs/promises" ); +const path = require( "node:path" ); const projectDir = path.resolve( __dirname, "..", ".." ); @@ -26,15 +26,15 @@ const files = { }; async function npmcopy() { - await fs.promises.mkdir( path.resolve( projectDir, "external" ), { + await fs.mkdir( path.resolve( projectDir, "external" ), { recursive: true } ); for ( const [ dest, source ] of Object.entries( files ) ) { const from = path.resolve( projectDir, "node_modules", source ); const to = path.resolve( projectDir, "external", dest ); const toDir = path.dirname( to ); - await fs.promises.mkdir( toDir, { recursive: true } ); - await fs.promises.copyFile( from, to ); + await fs.mkdir( toDir, { recursive: true } ); + await fs.copyFile( from, to ); console.log( `${ source } → ${ dest }` ); } } diff --git a/build/tasks/promises_aplus_tests.js b/build/tasks/promises_aplus_tests.js index 931db1b44..f8deaa6a0 100644 --- a/build/tasks/promises_aplus_tests.js +++ b/build/tasks/promises_aplus_tests.js @@ -1,9 +1,9 @@ "use strict"; -const { spawn } = require( "child_process" ); +const { spawn } = require( "node:child_process" ); const verifyNodeVersion = require( "./lib/verifyNodeVersion" ); -const path = require( "path" ); -const os = require( "os" ); +const path = require( "node:path" ); +const os = require( "node:os" ); if ( !verifyNodeVersion() ) { return; diff --git a/build/tasks/qunit-fixture.js b/build/tasks/qunit-fixture.js index 3059bb929..dbb789b60 100644 --- a/build/tasks/qunit-fixture.js +++ b/build/tasks/qunit-fixture.js @@ -1,10 +1,10 @@ "use strict"; -const fs = require( "fs" ); +const fs = require( "node:fs/promises" ); async function generateFixture() { - const fixture = await fs.promises.readFile( "./test/data/qunit-fixture.html", "utf8" ); - await fs.promises.writeFile( + const fixture = await fs.readFile( "./test/data/qunit-fixture.html", "utf8" ); + await fs.writeFile( "./test/data/qunit-fixture.js", "// Generated by build/tasks/qunit-fixture.js\n" + "QUnit.config.fixture = " + diff --git a/test/runner/createTestServer.js b/test/runner/createTestServer.js index cd82844d5..36af38779 100644 --- a/test/runner/createTestServer.js +++ b/test/runner/createTestServer.js @@ -1,7 +1,7 @@ import bodyParser from "body-parser"; import express from "express"; import bodyParserErrorHandler from "express-body-parser-error-handler"; -import { readFile } from "fs/promises"; +import { readFile } from "node:fs/promises"; import mockServer from "../middleware-mockserver.js"; export async function createTestServer( report ) { -- 2.39.5