From 6c249f8e219d4239d8de778c1ba4052d025a5d69 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 4 Jun 2021 12:30:09 +0200 Subject: [PATCH] Clean-up `gulpfile.js` by removing most "-pre" tasks (issue 10362) Most of the `gulp` tasks with a "-pre" suffix, especially those related to the main build-targets, are no longer needed and can simply be inlined in their corresponding tasks. This is likely a left-over from older Gulp-versions, but currently it only adds unnecessary indirection. Furthermore, a number of the `gulp` tasks which are only used *internally* are converted to standard functions instead. This prevents them from being exposed "globally" and e.g. listed by `gulp default`. --- gulpfile.js | 316 ++++++++++++++++++++++++---------------------------- 1 file changed, 148 insertions(+), 168 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index fe1e09789..a2f75a750 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -597,14 +597,16 @@ function makeRef(done, bot) { gulp.task("default", function (done) { console.log("Available tasks:"); const tasks = Object.keys(gulp.registry().tasks()); - tasks.sort(); - tasks.forEach(function (taskName) { + for (const taskName of tasks.sort()) { + if (taskName.endsWith("-pre")) { + continue; + } console.log(" " + taskName); - }); + } done(); }); -gulp.task("buildnumber", function (done) { +function createBuildNumber(done) { console.log(); console.log("### Getting extension build number"); @@ -648,7 +650,7 @@ gulp.task("buildnumber", function (done) { }); } ); -}); +} function buildDefaultPreferences(defines, dir) { console.log(); @@ -827,7 +829,7 @@ function buildGeneric(defines, dir) { gulp.task( "generic", gulp.series( - "buildnumber", + createBuildNumber, "locale", function scriptingGeneric() { const defines = builder.merge(DEFINES, { GENERIC: true }); @@ -851,7 +853,7 @@ gulp.task( gulp.task( "generic-legacy", gulp.series( - "buildnumber", + createBuildNumber, "locale", function scriptingGenericLegacy() { const defines = builder.merge(DEFINES, { @@ -896,7 +898,7 @@ function buildComponents(defines, dir) { gulp.task( "components", - gulp.series("buildnumber", function createComponents() { + gulp.series(createBuildNumber, function createComponents() { console.log(); console.log("### Creating generic components"); const defines = builder.merge(DEFINES, { COMPONENTS: true, GENERIC: true }); @@ -907,7 +909,7 @@ gulp.task( gulp.task( "components-legacy", - gulp.series("buildnumber", function createComponentsLegacy() { + gulp.series(createBuildNumber, function createComponentsLegacy() { console.log(); console.log("### Creating generic (legacy) components"); const defines = builder.merge(DEFINES, { @@ -922,7 +924,7 @@ gulp.task( gulp.task( "image_decoders", - gulp.series("buildnumber", function createImageDecoders() { + gulp.series(createBuildNumber, function createImageDecoders() { console.log(); console.log("### Creating image decoders"); const defines = builder.merge(DEFINES, { @@ -938,7 +940,7 @@ gulp.task( gulp.task( "image_decoders-legacy", - gulp.series("buildnumber", function createImageDecodersLegacy() { + gulp.series(createBuildNumber, function createImageDecodersLegacy() { console.log(); console.log("### Creating (legacy) image decoders"); const defines = builder.merge(DEFINES, { @@ -991,58 +993,6 @@ function buildMinified(defines, dir) { ]); } -gulp.task( - "minified-pre", - gulp.series( - "buildnumber", - "locale", - function scriptingMinified() { - const defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true }); - return merge([ - buildDefaultPreferences(defines, "minified/"), - createTemporaryScriptingBundle(defines), - ]); - }, - function createMinified() { - console.log(); - console.log("### Creating minified viewer"); - const defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true }); - - return buildMinified(defines, MINIFIED_DIR); - } - ) -); - -gulp.task( - "minified-legacy-pre", - gulp.series( - "buildnumber", - "locale", - function scriptingMinifiedLegacy() { - const defines = builder.merge(DEFINES, { - MINIFIED: true, - GENERIC: true, - SKIP_BABEL: false, - }); - return merge([ - buildDefaultPreferences(defines, "minified-legacy/"), - createTemporaryScriptingBundle(defines), - ]); - }, - function createMinifiedLegacy() { - console.log(); - console.log("### Creating minified (legacy) viewer"); - const defines = builder.merge(DEFINES, { - MINIFIED: true, - GENERIC: true, - SKIP_BABEL: false, - }); - - return buildMinified(defines, MINIFIED_LEGACY_DIR); - } - ) -); - async function parseMinified(dir) { const pdfFile = fs.readFileSync(dir + "/build/pdf.js").toString(); const pdfWorkerFile = fs @@ -1116,18 +1066,62 @@ async function parseMinified(dir) { gulp.task( "minified", - gulp.series("minified-pre", async function minifiedPost(done) { - await parseMinified(MINIFIED_DIR); - done(); - }) + gulp.series( + createBuildNumber, + "locale", + function scriptingMinified() { + const defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true }); + return merge([ + buildDefaultPreferences(defines, "minified/"), + createTemporaryScriptingBundle(defines), + ]); + }, + function createMinified() { + console.log(); + console.log("### Creating minified viewer"); + const defines = builder.merge(DEFINES, { MINIFIED: true, GENERIC: true }); + + return buildMinified(defines, MINIFIED_DIR); + }, + async function compressMinified(done) { + await parseMinified(MINIFIED_DIR); + done(); + } + ) ); gulp.task( "minified-legacy", - gulp.series("minified-legacy-pre", async function minifiedLegacyPost(done) { - await parseMinified(MINIFIED_LEGACY_DIR); - done(); - }) + gulp.series( + createBuildNumber, + "locale", + function scriptingMinifiedLegacy() { + const defines = builder.merge(DEFINES, { + MINIFIED: true, + GENERIC: true, + SKIP_BABEL: false, + }); + return merge([ + buildDefaultPreferences(defines, "minified-legacy/"), + createTemporaryScriptingBundle(defines), + ]); + }, + function createMinifiedLegacy() { + console.log(); + console.log("### Creating minified (legacy) viewer"); + const defines = builder.merge(DEFINES, { + MINIFIED: true, + GENERIC: true, + SKIP_BABEL: false, + }); + + return buildMinified(defines, MINIFIED_LEGACY_DIR); + }, + async function compressMinifiedLegacy(done) { + await parseMinified(MINIFIED_LEGACY_DIR); + done(); + } + ) ); function preprocessDefaultPreferences(content) { @@ -1163,9 +1157,9 @@ function preprocessDefaultPreferences(content) { } gulp.task( - "mozcentral-pre", + "mozcentral", gulp.series( - "buildnumber", + createBuildNumber, function scriptingMozcentral() { const defines = builder.merge(DEFINES, { MOZCENTRAL: true }); return buildDefaultPreferences(defines, "mozcentral/"); @@ -1253,12 +1247,10 @@ gulp.task( ) ); -gulp.task("mozcentral", gulp.series("mozcentral-pre")); - gulp.task( - "chromium-pre", + "chromium", gulp.series( - "buildnumber", + createBuildNumber, "locale", function scriptingChromium() { const defines = builder.merge(DEFINES, { @@ -1343,8 +1335,6 @@ gulp.task( ) ); -gulp.task("chromium", gulp.series("chromium-pre")); - gulp.task("jsdoc", function (done) { console.log(); console.log("### Generating documentation (JSDoc)"); @@ -1474,7 +1464,7 @@ function buildLib(defines, dir) { gulp.task( "lib", gulp.series( - "buildnumber", + createBuildNumber, function scriptingLib() { const defines = builder.merge(DEFINES, { GENERIC: true, LIB: true }); return merge([ @@ -1496,7 +1486,7 @@ gulp.task( gulp.task( "lib-legacy", gulp.series( - "buildnumber", + createBuildNumber, function scriptingLibLegacy() { const defines = builder.merge(DEFINES, { GENERIC: true, @@ -1556,18 +1546,18 @@ gulp.task( }) ); -gulp.task("testing-pre", function (done) { +function setTestEnv(done) { process.env.TESTING = "true"; // TODO: Re-write the relevant unit-tests, which are using `new Date(...)`, // to not required the following time-zone hack since it doesn't work // when the unit-tests are run directly in the browser. process.env.TZ = "UTC"; done(); -}); +} gulp.task( "test", - gulp.series("testing-pre", "generic", "components", function runTest() { + gulp.series(setTestEnv, "generic", "components", function runTest() { return streamqueue( { objectMode: true }, createTestSource("unit"), @@ -1579,7 +1569,7 @@ gulp.task( gulp.task( "bottest", - gulp.series("testing-pre", "generic", "components", function runBotTest() { + gulp.series(setTestEnv, "generic", "components", function runBotTest() { return streamqueue( { objectMode: true }, createTestSource("unit", true), @@ -1592,53 +1582,43 @@ gulp.task( gulp.task( "browsertest", - gulp.series( - "testing-pre", - "generic", - "components", - function runBrowserTest() { - return createTestSource("browser"); - } - ) + gulp.series(setTestEnv, "generic", "components", function runBrowserTest() { + return createTestSource("browser"); + }) ); gulp.task( "unittest", - gulp.series("testing-pre", "generic", function runUnitTest() { + gulp.series(setTestEnv, "generic", function runUnitTest() { return createTestSource("unit"); }) ); gulp.task( "integrationtest", - gulp.series("testing-pre", "generic", function runIntegrationTest() { + gulp.series(setTestEnv, "generic", function runIntegrationTest() { return createTestSource("integration"); }) ); gulp.task( "fonttest", - gulp.series("testing-pre", function runFontTest() { + gulp.series(setTestEnv, function runFontTest() { return createTestSource("font"); }) ); gulp.task( "makeref", - gulp.series( - "testing-pre", - "generic", - "components", - function runMakeref(done) { - makeRef(done); - } - ) + gulp.series(setTestEnv, "generic", "components", function runMakeref(done) { + makeRef(done); + }) ); gulp.task( "botmakeref", gulp.series( - "testing-pre", + setTestEnv, "generic", "components", function runBotMakeref(done) { @@ -1647,39 +1627,40 @@ gulp.task( ) ); -gulp.task( - "typestest-pre", - gulp.series("testing-pre", "generic", "types", function createTypesTest() { - const [packageJsonSrc] = packageBowerJson(); - return merge([ - packageJsonSrc.pipe(gulp.dest(TYPESTEST_DIR)), - gulp - .src([ - GENERIC_DIR + "build/pdf.js", - GENERIC_DIR + "build/pdf.worker.js", - SRC_DIR + "pdf.worker.entry.js", - ]) - .pipe(gulp.dest(TYPESTEST_DIR + "build/")), - gulp - .src(TYPES_DIR + "**/*", { base: TYPES_DIR }) - .pipe(gulp.dest(TYPESTEST_DIR + "types/")), - ]); - }) -); - gulp.task( "typestest", - gulp.series("typestest-pre", function runTypesTest(done) { - exec('"node_modules/.bin/tsc" -p test/types', function (err, stdout) { - if (err) { - console.log(`Couldn't compile TypeScript test: ${stdout}`); - } - done(err); - }); - }) + gulp.series( + setTestEnv, + "generic", + "types", + function createTypesTest() { + const [packageJsonSrc] = packageBowerJson(); + return merge([ + packageJsonSrc.pipe(gulp.dest(TYPESTEST_DIR)), + gulp + .src([ + GENERIC_DIR + "build/pdf.js", + GENERIC_DIR + "build/pdf.worker.js", + SRC_DIR + "pdf.worker.entry.js", + ]) + .pipe(gulp.dest(TYPESTEST_DIR + "build/")), + gulp + .src(TYPES_DIR + "**/*", { base: TYPES_DIR }) + .pipe(gulp.dest(TYPESTEST_DIR + "types/")), + ]); + }, + function runTypesTest(done) { + exec('"node_modules/.bin/tsc" -p test/types', function (err, stdout) { + if (err) { + console.log(`Couldn't compile TypeScript test: ${stdout}`); + } + done(err); + }); + } + ) ); -gulp.task("baseline", function (done) { +function createBaseline(done) { console.log(); console.log("### Creating baseline environment"); @@ -1716,11 +1697,11 @@ gulp.task("baseline", function (done) { } ); }); -}); +} gulp.task( "unittestcli", - gulp.series("testing-pre", "lib-legacy", function runUnitTestCli(done) { + gulp.series(setTestEnv, "lib-legacy", function runUnitTestCli(done) { const options = [ "node_modules/jasmine/bin/jasmine", "JASMINE_CONFIG_PATH=test/unit/clitests.json", @@ -1833,30 +1814,31 @@ gulp.task( ) ); -gulp.task("watch-dev-sandbox", function () { - gulp.watch( - [ - "src/pdf.{sandbox,sandbox.external,scripting}.js", - "src/scripting_api/*.js", - "src/shared/scripting_utils.js", - "external/quickjs/*.js", - ], - { ignoreInitial: false }, - gulp.series("dev-sandbox") - ); -}); - gulp.task( "server", - gulp.parallel("watch-dev-sandbox", function createServer() { - console.log(); - console.log("### Starting local server"); + gulp.parallel( + function watchDevSandbox() { + gulp.watch( + [ + "src/pdf.{sandbox,sandbox.external,scripting}.js", + "src/scripting_api/*.js", + "src/shared/scripting_utils.js", + "external/quickjs/*.js", + ], + { ignoreInitial: false }, + gulp.series("dev-sandbox") + ); + }, + function createServer() { + console.log(); + console.log("### Starting local server"); - const WebServer = require("./test/webserver.js").WebServer; - const server = new WebServer(); - server.port = 8888; - server.start(); - }) + const WebServer = require("./test/webserver.js").WebServer; + const server = new WebServer(); + server.port = 8888; + server.start(); + } + ) ); gulp.task("clean", function (done) { @@ -1889,7 +1871,7 @@ gulp.task("importl10n", function (done) { locales.downloadL10n(L10N_DIR, done); }); -gulp.task("gh-pages-prepare", function () { +function ghPagesPrepare() { console.log(); console.log("### Creating web site"); @@ -1910,7 +1892,7 @@ gulp.task("gh-pages-prepare", function () { .src(JSDOC_BUILD_DIR + "**/*", { base: JSDOC_BUILD_DIR }) .pipe(gulp.dest(GH_PAGES_DIR + "api/draft/")), ]); -}); +} gulp.task("wintersmith", function (done) { const wintersmith = require("wintersmith"); @@ -1952,7 +1934,7 @@ gulp.task("wintersmith", function (done) { }); }); -gulp.task("gh-pages-git", function (done) { +function ghPagesGit(done) { const VERSION = getVersionJSON().version; const reason = process.env.PDFJS_UPDATE_REASON; @@ -1977,7 +1959,7 @@ gulp.task("gh-pages-git", function (done) { console.log(); console.log("Website built in " + GH_PAGES_DIR); done(); -}); +} gulp.task( "web", @@ -1985,9 +1967,9 @@ gulp.task( "generic", "generic-legacy", "jsdoc", - "gh-pages-prepare", + ghPagesPrepare, "wintersmith", - "gh-pages-git" + ghPagesGit ) ); @@ -2168,8 +2150,8 @@ gulp.task( ); gulp.task( - "dist-repo-git", - gulp.series("dist-pre", function createDistRepoGit(done) { + "dist", + gulp.series("dist-pre", function createDist(done) { const VERSION = getVersionJSON().version; console.log(); @@ -2208,11 +2190,9 @@ gulp.task( }) ); -gulp.task("dist", gulp.series("dist-repo-git")); - gulp.task( "mozcentralbaseline", - gulp.series("baseline", function createMozcentralBaseline(done) { + gulp.series(createBaseline, function createMozcentralBaseline(done) { console.log(); console.log("### Creating mozcentral baseline environment");