From e6e39bd64fd803ed52eced136cadce08f2b187aa Mon Sep 17 00:00:00 2001 From: Christopher Allen Date: Thu, 18 Nov 2021 17:26:06 +0000 Subject: [PATCH] chore(build): Add "all" modules for blocks & generators These modules (Blockly.blocks.all and Blockly..all) will be the entry points for the corresponding chunks. They also make it easier to pull in all the modules in each package (e.g. for playground and tests). It is necessary to set the Closure Compiler dependency_mode to SORT_ONLY as otherwise it tries to compile the "all" modules before their dependencies, which fails. The only impact on the _compressed.js files is the addition of a short string to the very end of each file, e.g.: var module$exports$Blockly$JavaScript$all={}; --- blocks/all.js | 23 +++++++++++ generators/dart/all.js | 25 ++++++++++++ generators/javascript/all.js | 25 ++++++++++++ generators/lua/all.js | 25 ++++++++++++ generators/php/all.js | 25 ++++++++++++ generators/python/all.js | 25 ++++++++++++ scripts/gulpfiles/build_tasks.js | 4 +- tests/deps.js | 6 +++ tests/generators/index.html | 65 +++----------------------------- tests/playground.html | 65 +++----------------------------- 10 files changed, 168 insertions(+), 120 deletions(-) create mode 100644 blocks/all.js create mode 100644 generators/dart/all.js create mode 100644 generators/javascript/all.js create mode 100644 generators/lua/all.js create mode 100644 generators/php/all.js create mode 100644 generators/python/all.js diff --git a/blocks/all.js b/blocks/all.js new file mode 100644 index 000000000..17000f8c9 --- /dev/null +++ b/blocks/all.js @@ -0,0 +1,23 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview All the blocks. (Entry point for blocks_compressed.js.) + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.blocks.all'); + +goog.require('Blockly.blocks.colour'); +goog.require('Blockly.blocks.lists'); +goog.require('Blockly.blocks.logic'); +goog.require('Blockly.blocks.loops'); +goog.require('Blockly.blocks.math'); +goog.require('Blockly.blocks.procedures'); +goog.require('Blockly.blocks.texts'); +goog.require('Blockly.blocks.variables'); +goog.require('Blockly.blocks.variablesDynamic'); diff --git a/generators/dart/all.js b/generators/dart/all.js new file mode 100644 index 000000000..f250f7c27 --- /dev/null +++ b/generators/dart/all.js @@ -0,0 +1,25 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Complete helper functions for generating Dart for + * blocks. This is the entrypoint for dart_compressed.js. + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.Dart.all'); + +goog.require('Blockly.Dart.colour'); +goog.require('Blockly.Dart.lists'); +goog.require('Blockly.Dart.logic'); +goog.require('Blockly.Dart.loops'); +goog.require('Blockly.Dart.math'); +goog.require('Blockly.Dart.procedures'); +goog.require('Blockly.Dart.texts'); +goog.require('Blockly.Dart.variables'); +goog.require('Blockly.Dart.variablesDynamic'); + diff --git a/generators/javascript/all.js b/generators/javascript/all.js new file mode 100644 index 000000000..05eca0040 --- /dev/null +++ b/generators/javascript/all.js @@ -0,0 +1,25 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Complete helper functions for generating JavaScript for + * blocks. This is the entrypoint for javascript_compressed.js. + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.JavaScript.all'); + +goog.require('Blockly.JavaScript.colour'); +goog.require('Blockly.JavaScript.lists'); +goog.require('Blockly.JavaScript.logic'); +goog.require('Blockly.JavaScript.loops'); +goog.require('Blockly.JavaScript.math'); +goog.require('Blockly.JavaScript.procedures'); +goog.require('Blockly.JavaScript.texts'); +goog.require('Blockly.JavaScript.variables'); +goog.require('Blockly.JavaScript.variablesDynamic'); + diff --git a/generators/lua/all.js b/generators/lua/all.js new file mode 100644 index 000000000..af4662de5 --- /dev/null +++ b/generators/lua/all.js @@ -0,0 +1,25 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Complete helper functions for generating Lua for + * blocks. This is the entrypoint for lua_compressed.js. + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.Lua.all'); + +goog.require('Blockly.Lua.colour'); +goog.require('Blockly.Lua.lists'); +goog.require('Blockly.Lua.logic'); +goog.require('Blockly.Lua.loops'); +goog.require('Blockly.Lua.math'); +goog.require('Blockly.Lua.procedures'); +goog.require('Blockly.Lua.texts'); +goog.require('Blockly.Lua.variables'); +goog.require('Blockly.Lua.variablesDynamic'); + diff --git a/generators/php/all.js b/generators/php/all.js new file mode 100644 index 000000000..7d2c7658a --- /dev/null +++ b/generators/php/all.js @@ -0,0 +1,25 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Complete helper functions for generating PHP for + * blocks. This is the entrypoint for php_compressed.js. + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.PHP.all'); + +goog.require('Blockly.PHP.colour'); +goog.require('Blockly.PHP.lists'); +goog.require('Blockly.PHP.logic'); +goog.require('Blockly.PHP.loops'); +goog.require('Blockly.PHP.math'); +goog.require('Blockly.PHP.procedures'); +goog.require('Blockly.PHP.texts'); +goog.require('Blockly.PHP.variables'); +goog.require('Blockly.PHP.variablesDynamic'); + diff --git a/generators/python/all.js b/generators/python/all.js new file mode 100644 index 000000000..0c3bfbb47 --- /dev/null +++ b/generators/python/all.js @@ -0,0 +1,25 @@ +/** + * @license + * Copyright 2021 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @fileoverview Complete helper functions for generating Python for + * blocks. This is the entrypoint for python_compressed.js. + * @suppress {extraRequire} + */ +'use strict'; + +goog.module('Blockly.Python.all'); + +goog.require('Blockly.Python.colour'); +goog.require('Blockly.Python.lists'); +goog.require('Blockly.Python.logic'); +goog.require('Blockly.Python.loops'); +goog.require('Blockly.Python.math'); +goog.require('Blockly.Python.procedures'); +goog.require('Blockly.Python.texts'); +goog.require('Blockly.Python.variables'); +goog.require('Blockly.Python.variablesDynamic'); + diff --git a/scripts/gulpfiles/build_tasks.js b/scripts/gulpfiles/build_tasks.js index 21fc6be51..0bda8da2d 100644 --- a/scripts/gulpfiles/build_tasks.js +++ b/scripts/gulpfiles/build_tasks.js @@ -231,7 +231,7 @@ function buildBlocks() { .pipe(stripApacheLicense()) .pipe(gulp.sourcemaps.init()) .pipe(compile({ - dependency_mode: 'NONE', + dependency_mode: 'SORT_ONLY', externs: ['./externs/goog-externs.js', './externs/block-externs.js'], js_output_file: 'blocks_compressed.js', output_wrapper: outputWrapperUMD('Blockly.Blocks', [{ @@ -257,7 +257,7 @@ function buildGenerator(language, namespace) { .pipe(stripApacheLicense()) .pipe(gulp.sourcemaps.init()) .pipe(compile({ - dependency_mode: 'NONE', + dependency_mode: 'SORT_ONLY', externs: ['./externs/goog-externs.js', './externs/generator-externs.js'], js_output_file: `${language}_compressed.js`, output_wrapper: outputWrapperUMD(`Blockly.${namespace}`, [{ diff --git a/tests/deps.js b/tests/deps.js index 6dad4f6f3..3714c6514 100644 --- a/tests/deps.js +++ b/tests/deps.js @@ -1,3 +1,4 @@ +goog.addDependency('../../blocks/all.js', ['Blockly.blocks.all'], ['Blockly.blocks.colour', 'Blockly.blocks.lists', 'Blockly.blocks.logic', 'Blockly.blocks.loops', 'Blockly.blocks.math', 'Blockly.blocks.procedures', 'Blockly.blocks.texts', 'Blockly.blocks.variables', 'Blockly.blocks.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../blocks/colour.js', ['Blockly.Constants.Colour', 'Blockly.blocks.colour'], ['Blockly', 'Blockly.FieldColour', 'Blockly.FieldLabel'], {'lang': 'es5'}); goog.addDependency('../../blocks/lists.js', ['Blockly.Constants.Lists', 'Blockly.blocks.lists'], ['Blockly', 'Blockly.FieldDropdown', 'Blockly.FieldLabel', 'Blockly.Mutator'], {'lang': 'es6'}); goog.addDependency('../../blocks/logic.js', ['Blockly.Constants.Logic', 'Blockly.blocks.logic'], ['Blockly', 'Blockly.FieldDropdown', 'Blockly.FieldLabel', 'Blockly.Mutator'], {'lang': 'es6'}); @@ -265,6 +266,7 @@ goog.addDependency('../../core/workspace_svg.js', ['Blockly.WorkspaceSvg'], ['Bl goog.addDependency('../../core/xml.js', ['Blockly.Xml'], ['Blockly.Events.utils', 'Blockly.inputTypes', 'Blockly.utils.Size', 'Blockly.utils.dom', 'Blockly.utils.xml'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../core/zoom_controls.js', ['Blockly.ZoomControls'], ['Blockly.ComponentManager', 'Blockly.Css', 'Blockly.Events.Click', 'Blockly.Events.utils', 'Blockly.IPositionable', 'Blockly.Touch', 'Blockly.browserEvents', 'Blockly.internalConstants', 'Blockly.uiPosition', 'Blockly.utils.Rect', 'Blockly.utils.Size', 'Blockly.utils.Svg', 'Blockly.utils.dom'], {'lang': 'es6', 'module': 'goog'}); goog.addDependency('../../generators/dart.js', ['Blockly.Dart'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'}); +goog.addDependency('../../generators/dart/all.js', ['Blockly.Dart.all'], ['Blockly.Dart.colour', 'Blockly.Dart.lists', 'Blockly.Dart.logic', 'Blockly.Dart.loops', 'Blockly.Dart.math', 'Blockly.Dart.procedures', 'Blockly.Dart.texts', 'Blockly.Dart.variables', 'Blockly.Dart.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/dart/colour.js', ['Blockly.Dart.colour'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/lists.js', ['Blockly.Dart.lists'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/logic.js', ['Blockly.Dart.logic'], ['Blockly.Dart'], {'lang': 'es6'}); @@ -275,6 +277,7 @@ goog.addDependency('../../generators/dart/text.js', ['Blockly.Dart.texts'], ['Bl goog.addDependency('../../generators/dart/variables.js', ['Blockly.Dart.variables'], ['Blockly.Dart'], {'lang': 'es6'}); goog.addDependency('../../generators/dart/variables_dynamic.js', ['Blockly.Dart.variablesDynamic'], ['Blockly.Dart', 'Blockly.Dart.variables']); goog.addDependency('../../generators/javascript.js', ['Blockly.JavaScript'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.global', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); +goog.addDependency('../../generators/javascript/all.js', ['Blockly.JavaScript.all'], ['Blockly.JavaScript.colour', 'Blockly.JavaScript.lists', 'Blockly.JavaScript.logic', 'Blockly.JavaScript.loops', 'Blockly.JavaScript.math', 'Blockly.JavaScript.procedures', 'Blockly.JavaScript.texts', 'Blockly.JavaScript.variables', 'Blockly.JavaScript.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/javascript/colour.js', ['Blockly.JavaScript.colour'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/lists.js', ['Blockly.JavaScript.lists'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/logic.js', ['Blockly.JavaScript.logic'], ['Blockly.JavaScript'], {'lang': 'es6'}); @@ -285,6 +288,7 @@ goog.addDependency('../../generators/javascript/text.js', ['Blockly.JavaScript.t goog.addDependency('../../generators/javascript/variables.js', ['Blockly.JavaScript.variables'], ['Blockly.JavaScript'], {'lang': 'es6'}); goog.addDependency('../../generators/javascript/variables_dynamic.js', ['Blockly.JavaScript.variablesDynamic'], ['Blockly.JavaScript', 'Blockly.JavaScript.variables']); goog.addDependency('../../generators/lua.js', ['Blockly.Lua'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); +goog.addDependency('../../generators/lua/all.js', ['Blockly.Lua.all'], ['Blockly.Lua.colour', 'Blockly.Lua.lists', 'Blockly.Lua.logic', 'Blockly.Lua.loops', 'Blockly.Lua.math', 'Blockly.Lua.procedures', 'Blockly.Lua.texts', 'Blockly.Lua.variables', 'Blockly.Lua.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/lua/colour.js', ['Blockly.Lua.colour'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/lists.js', ['Blockly.Lua.lists'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/logic.js', ['Blockly.Lua.logic'], ['Blockly.Lua'], {'lang': 'es6'}); @@ -295,6 +299,7 @@ goog.addDependency('../../generators/lua/text.js', ['Blockly.Lua.texts'], ['Bloc goog.addDependency('../../generators/lua/variables.js', ['Blockly.Lua.variables'], ['Blockly.Lua'], {'lang': 'es6'}); goog.addDependency('../../generators/lua/variables_dynamic.js', ['Blockly.Lua.variablesDynamic'], ['Blockly.Lua', 'Blockly.Lua.variables']); goog.addDependency('../../generators/php.js', ['Blockly.PHP'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.object', 'Blockly.utils.string'], {'lang': 'es6'}); +goog.addDependency('../../generators/php/all.js', ['Blockly.PHP.all'], ['Blockly.PHP.colour', 'Blockly.PHP.lists', 'Blockly.PHP.logic', 'Blockly.PHP.loops', 'Blockly.PHP.math', 'Blockly.PHP.procedures', 'Blockly.PHP.texts', 'Blockly.PHP.variables', 'Blockly.PHP.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/php/colour.js', ['Blockly.PHP.colour'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/lists.js', ['Blockly.PHP.lists'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/logic.js', ['Blockly.PHP.logic'], ['Blockly.PHP'], {'lang': 'es6'}); @@ -305,6 +310,7 @@ goog.addDependency('../../generators/php/text.js', ['Blockly.PHP.texts'], ['Bloc goog.addDependency('../../generators/php/variables.js', ['Blockly.PHP.variables'], ['Blockly.PHP'], {'lang': 'es6'}); goog.addDependency('../../generators/php/variables_dynamic.js', ['Blockly.PHP.variablesDynamic'], ['Blockly.PHP', 'Blockly.PHP.variables']); goog.addDependency('../../generators/python.js', ['Blockly.Python'], ['Blockly.Generator', 'Blockly.inputTypes', 'Blockly.utils.string'], {'lang': 'es6'}); +goog.addDependency('../../generators/python/all.js', ['Blockly.Python.all'], ['Blockly.Python.colour', 'Blockly.Python.lists', 'Blockly.Python.logic', 'Blockly.Python.loops', 'Blockly.Python.math', 'Blockly.Python.procedures', 'Blockly.Python.texts', 'Blockly.Python.variables', 'Blockly.Python.variablesDynamic'], {'module': 'goog'}); goog.addDependency('../../generators/python/colour.js', ['Blockly.Python.colour'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/lists.js', ['Blockly.Python.lists'], ['Blockly.Python'], {'lang': 'es6'}); goog.addDependency('../../generators/python/logic.js', ['Blockly.Python.logic'], ['Blockly.Python'], {'lang': 'es6'}); diff --git a/tests/generators/index.html b/tests/generators/index.html index 6574e9d64..b258ad18d 100644 --- a/tests/generators/index.html +++ b/tests/generators/index.html @@ -8,65 +8,12 @@ diff --git a/tests/playground.html b/tests/playground.html index ff3a9e448..8e422f1e4 100644 --- a/tests/playground.html +++ b/tests/playground.html @@ -11,66 +11,13 @@