From 4d2201a427cbe6eb452e7b1389bb7f873abda81e Mon Sep 17 00:00:00 2001 From: Christopher Allen Date: Fri, 19 May 2023 23:09:37 +0100 Subject: [PATCH] chore(generators): Migrate generators to ES Modules (#7103) * feat(j2ts): Add support for migrating renaming imports Convert const {foo: bar} = require(/*...*/); into import {foo as bar} from /*...*/; ^^^^^^^^^^ Also fix a bug that caused relative paths to ESM in the same directory to be missing a leading "./". * fix(build): Fix trivial error exports for generators The UMD wrapper was inadvertently exporting the contents of (e.g.) the Blockly.JavaScript closure module rather than the intended export of Blockly.JavaScript.all module - which went unnoticed because the latter just reexported the former - but we are about to convert the former to ESM. * chore(generators): Migrate language generators to ESM Migrate the main language generators in generators/*.js to ESM. This was done by running js2ts on the files, renaming them back to .js, and commenting out "import type" statements, which are legal TS but not needed in JS (at least if you are not actually letting Closure Compiler do type checking, which we are not.) * chore(generators): Migrate block generators to ESM Migrate generators/*/*.js (except all.js) to ESM. This was done by running js2ts on the files, renaming them back to .js, and removing now-spurious @suppress {extraRequire} directives. * chores(generators): Migrate generator chunk entrypoints to ESM This was done by running js2ts on the files, renaming them back to .js, and manually fixing the export statements. An additional change to the chunk exports configuration in build_tasks.js was necessary in order for the UMD wrapper to find the new module object, which is given a different name than the old exports object. --- generators/dart.js | 21 +++++++++--------- generators/dart/all.js | 25 +++++++++++----------- generators/dart/colour.js | 6 +++--- generators/dart/lists.js | 8 +++---- generators/dart/logic.js | 6 +++--- generators/dart/loops.js | 10 ++++----- generators/dart/math.js | 8 +++---- generators/dart/procedures.js | 8 +++---- generators/dart/text.js | 8 +++---- generators/dart/variables.js | 8 +++---- generators/dart/variables_dynamic.js | 9 ++++---- generators/javascript.js | 21 +++++++++--------- generators/javascript/all.js | 25 +++++++++++----------- generators/javascript/colour.js | 6 +++--- generators/javascript/lists.js | 8 +++---- generators/javascript/logic.js | 6 +++--- generators/javascript/loops.js | 10 ++++----- generators/javascript/math.js | 8 +++---- generators/javascript/procedures.js | 8 +++---- generators/javascript/text.js | 8 +++---- generators/javascript/variables.js | 8 +++---- generators/javascript/variables_dynamic.js | 9 ++++---- generators/lua.js | 19 ++++++++-------- generators/lua/all.js | 25 +++++++++++----------- generators/lua/colour.js | 6 +++--- generators/lua/lists.js | 8 +++---- generators/lua/logic.js | 6 +++--- generators/lua/loops.js | 10 ++++----- generators/lua/math.js | 8 +++---- generators/lua/procedures.js | 8 +++---- generators/lua/text.js | 8 +++---- generators/lua/variables.js | 8 +++---- generators/lua/variables_dynamic.js | 9 ++++---- generators/php.js | 19 ++++++++-------- generators/php/all.js | 25 +++++++++++----------- generators/php/colour.js | 6 +++--- generators/php/lists.js | 10 ++++----- generators/php/logic.js | 6 +++--- generators/php/loops.js | 10 ++++----- generators/php/math.js | 8 +++---- generators/php/procedures.js | 10 ++++----- generators/php/text.js | 8 +++---- generators/php/variables.js | 8 +++---- generators/php/variables_dynamic.js | 9 ++++---- generators/python.js | 21 +++++++++--------- generators/python/all.js | 25 +++++++++++----------- generators/python/colour.js | 6 +++--- generators/python/lists.js | 10 ++++----- generators/python/logic.js | 6 +++--- generators/python/loops.js | 10 ++++----- generators/python/math.js | 8 +++---- generators/python/procedures.js | 10 ++++----- generators/python/text.js | 10 ++++----- generators/python/variables.js | 8 +++---- generators/python/variables_dynamic.js | 9 ++++---- scripts/gulpfiles/build_tasks.js | 10 ++++----- scripts/migration/js2ts | 7 +++++- 57 files changed, 299 insertions(+), 309 deletions(-) diff --git a/generators/dart.js b/generators/dart.js index 964d9ae80..bff1476e6 100644 --- a/generators/dart.js +++ b/generators/dart.js @@ -8,17 +8,17 @@ * @fileoverview Helper functions for generating Dart for blocks. * @suppress {checkTypes|globalThis} */ -'use strict'; -goog.module('Blockly.Dart'); +import * as goog from '../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart'); -const Variables = goog.require('Blockly.Variables'); -const stringUtils = goog.require('Blockly.utils.string'); -const {Block} = goog.requireType('Blockly.Block'); -const {CodeGenerator} = goog.require('Blockly.CodeGenerator'); -const {Names, NameType} = goog.require('Blockly.Names'); -const {Workspace} = goog.requireType('Blockly.Workspace'); -const {inputTypes} = goog.require('Blockly.inputTypes'); +import * as Variables from '../core/variables.js'; +import * as stringUtils from '../core/utils/string.js'; +// import type {Block} from '../core/block.js'; +import {CodeGenerator} from '../core/generator.js'; +import {Names, NameType} from '../core/names.js'; +// import type {Workspace} from '../core/workspace.js'; +import {inputTypes} from '../core/inputs/input_types.js'; /** @@ -299,5 +299,4 @@ Dart.getAdjusted = function(block, atId, opt_delta, opt_negate, } return at; }; - -exports.dartGenerator = Dart; +export {Dart as dartGenerator}; diff --git a/generators/dart/all.js b/generators/dart/all.js index ffd726a26..6902d882b 100644 --- a/generators/dart/all.js +++ b/generators/dart/all.js @@ -9,19 +9,18 @@ * blocks. This is the entrypoint for dart_compressed.js. * @suppress {extraRequire} */ -'use strict'; -goog.module('Blockly.Dart.all'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.all'); -const moduleExports = goog.require('Blockly.Dart'); -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'); +import './colour.js'; +import './lists.js'; +import './logic.js'; +import './loops.js'; +import './math.js'; +import './procedures.js'; +import './text.js'; +import './variables.js'; +import './variables_dynamic.js'; -exports = moduleExports; +export * from '../dart.js'; diff --git a/generators/dart/colour.js b/generators/dart/colour.js index 324fe65c4..b3bbc732a 100644 --- a/generators/dart/colour.js +++ b/generators/dart/colour.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Dart for colour blocks. */ -'use strict'; -goog.module('Blockly.Dart.colour'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.colour'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {dartGenerator as Dart} from '../dart.js'; Dart.addReservedWords('Math'); diff --git a/generators/dart/lists.js b/generators/dart/lists.js index 28fc9bd89..97b3c1f18 100644 --- a/generators/dart/lists.js +++ b/generators/dart/lists.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Dart for list blocks. */ -'use strict'; -goog.module('Blockly.Dart.lists'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.lists'); -const {NameType} = goog.require('Blockly.Names'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {NameType} from '../../core/names.js'; +import {dartGenerator as Dart} from '../dart.js'; Dart.addReservedWords('Math'); diff --git a/generators/dart/logic.js b/generators/dart/logic.js index 4fa117987..02c6ad7d6 100644 --- a/generators/dart/logic.js +++ b/generators/dart/logic.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Dart for logic blocks. */ -'use strict'; -goog.module('Blockly.Dart.logic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.logic'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {dartGenerator as Dart} from '../dart.js'; Dart['controls_if'] = function(block) { diff --git a/generators/dart/loops.js b/generators/dart/loops.js index ce66c2d33..fec90cda2 100644 --- a/generators/dart/loops.js +++ b/generators/dart/loops.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Dart for loop blocks. */ -'use strict'; -goog.module('Blockly.Dart.loops'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.loops'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); +import {dartGenerator as Dart} from '../dart.js'; +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; Dart['controls_repeat_ext'] = function(block) { diff --git a/generators/dart/math.js b/generators/dart/math.js index 81580c213..76c9001c0 100644 --- a/generators/dart/math.js +++ b/generators/dart/math.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Dart for math blocks. */ -'use strict'; -goog.module('Blockly.Dart.math'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.math'); -const {NameType} = goog.require('Blockly.Names'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {NameType} from '../../core/names.js'; +import {dartGenerator as Dart} from '../dart.js'; Dart.addReservedWords('Math'); diff --git a/generators/dart/procedures.js b/generators/dart/procedures.js index bf877277e..c9d9f2958 100644 --- a/generators/dart/procedures.js +++ b/generators/dart/procedures.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Dart for procedure blocks. */ -'use strict'; -goog.module('Blockly.Dart.procedures'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.procedures'); -const {NameType} = goog.require('Blockly.Names'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {NameType} from '../../core/names.js'; +import {dartGenerator as Dart} from '../dart.js'; Dart['procedures_defreturn'] = function(block) { diff --git a/generators/dart/text.js b/generators/dart/text.js index b611f0d8b..74966daf8 100644 --- a/generators/dart/text.js +++ b/generators/dart/text.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Dart for text blocks. */ -'use strict'; -goog.module('Blockly.Dart.texts'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.texts'); -const {NameType} = goog.require('Blockly.Names'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {NameType} from '../../core/names.js'; +import {dartGenerator as Dart} from '../dart.js'; Dart.addReservedWords('Html,Math'); diff --git a/generators/dart/variables.js b/generators/dart/variables.js index 33e314764..462ba0d4f 100644 --- a/generators/dart/variables.js +++ b/generators/dart/variables.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Dart for variable blocks. */ -'use strict'; -goog.module('Blockly.Dart.variables'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.variables'); -const {NameType} = goog.require('Blockly.Names'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); +import {NameType} from '../../core/names.js'; +import {dartGenerator as Dart} from '../dart.js'; Dart['variables_get'] = function(block) { diff --git a/generators/dart/variables_dynamic.js b/generators/dart/variables_dynamic.js index 50bfdb620..9fe63c476 100644 --- a/generators/dart/variables_dynamic.js +++ b/generators/dart/variables_dynamic.js @@ -7,13 +7,12 @@ /** * @fileoverview Generating Dart for dynamic variable blocks. */ -'use strict'; -goog.module('Blockly.Dart.variablesDynamic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Dart.variablesDynamic'); -const {dartGenerator: Dart} = goog.require('Blockly.Dart'); -/** @suppress {extraRequire} */ -goog.require('Blockly.Dart.variables'); +import {dartGenerator as Dart} from '../dart.js'; +import './variables.js'; // Dart is dynamically typed. diff --git a/generators/javascript.js b/generators/javascript.js index c3e6aa90e..ce259657f 100644 --- a/generators/javascript.js +++ b/generators/javascript.js @@ -8,17 +8,17 @@ * @fileoverview Helper functions for generating JavaScript for blocks. * @suppress {checkTypes|globalThis} */ -'use strict'; -goog.module('Blockly.JavaScript'); +import * as goog from '../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript'); -const Variables = goog.require('Blockly.Variables'); -const stringUtils = goog.require('Blockly.utils.string'); -const {Block} = goog.requireType('Blockly.Block'); -const {CodeGenerator} = goog.require('Blockly.CodeGenerator'); -const {inputTypes} = goog.require('Blockly.inputTypes'); -const {Names, NameType} = goog.require('Blockly.Names'); -const {Workspace} = goog.requireType('Blockly.Workspace'); +import * as Variables from '../core/variables.js'; +import * as stringUtils from '../core/utils/string.js'; +// import type {Block} from '../core/block.js'; +import {CodeGenerator} from '../core/generator.js'; +import {inputTypes} from '../core/inputs/input_types.js'; +import {Names, NameType} from '../core/names.js'; +// import type {Workspace} from '../core/workspace.js'; /** @@ -317,5 +317,4 @@ JavaScript.getAdjusted = function( } return at; }; - -exports.javascriptGenerator = JavaScript; +export {JavaScript as javascriptGenerator}; diff --git a/generators/javascript/all.js b/generators/javascript/all.js index 1ffbd3de8..430a8d86f 100644 --- a/generators/javascript/all.js +++ b/generators/javascript/all.js @@ -9,19 +9,18 @@ * blocks. This is the entrypoint for javascript_compressed.js. * @suppress {extraRequire} */ -'use strict'; -goog.module('Blockly.JavaScript.all'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.all'); -const moduleExports = goog.require('Blockly.JavaScript'); -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'); +import './colour.js'; +import './lists.js'; +import './logic.js'; +import './loops.js'; +import './math.js'; +import './procedures.js'; +import './text.js'; +import './variables.js'; +import './variables_dynamic.js'; -exports = moduleExports; +export * from '../javascript.js'; diff --git a/generators/javascript/colour.js b/generators/javascript/colour.js index 944a4bb1a..e4c0c5598 100644 --- a/generators/javascript/colour.js +++ b/generators/javascript/colour.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating JavaScript for colour blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.colour'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.colour'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['colour_picker'] = function(block) { diff --git a/generators/javascript/lists.js b/generators/javascript/lists.js index c2845d439..2dbdb62b8 100644 --- a/generators/javascript/lists.js +++ b/generators/javascript/lists.js @@ -8,12 +8,12 @@ * @fileoverview Generating JavaScript for list blocks. * @suppress {missingRequire} */ -'use strict'; -goog.module('Blockly.JavaScript.lists'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.lists'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['lists_create_empty'] = function(block) { diff --git a/generators/javascript/logic.js b/generators/javascript/logic.js index 0933b0d7c..fa944dee2 100644 --- a/generators/javascript/logic.js +++ b/generators/javascript/logic.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating JavaScript for logic blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.logic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.logic'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['controls_if'] = function(block) { diff --git a/generators/javascript/loops.js b/generators/javascript/loops.js index dd710cbeb..76ef6ec7e 100644 --- a/generators/javascript/loops.js +++ b/generators/javascript/loops.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating JavaScript for loop blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.loops'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.loops'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['controls_repeat_ext'] = function(block) { diff --git a/generators/javascript/math.js b/generators/javascript/math.js index ba4a1a129..0007bf14c 100644 --- a/generators/javascript/math.js +++ b/generators/javascript/math.js @@ -8,12 +8,12 @@ * @fileoverview Generating JavaScript for math blocks. * @suppress {missingRequire} */ -'use strict'; -goog.module('Blockly.JavaScript.math'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.math'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['math_number'] = function(block) { diff --git a/generators/javascript/procedures.js b/generators/javascript/procedures.js index e47e490f4..2e9fa91a0 100644 --- a/generators/javascript/procedures.js +++ b/generators/javascript/procedures.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating JavaScript for procedure blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.procedures'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.procedures'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['procedures_defreturn'] = function(block) { diff --git a/generators/javascript/text.js b/generators/javascript/text.js index 270c51368..9e2cb43e1 100644 --- a/generators/javascript/text.js +++ b/generators/javascript/text.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating JavaScript for text blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.texts'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.texts'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; /** diff --git a/generators/javascript/variables.js b/generators/javascript/variables.js index 8ade01244..14e9b004b 100644 --- a/generators/javascript/variables.js +++ b/generators/javascript/variables.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating JavaScript for variable blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.variables'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.variables'); -const {NameType} = goog.require('Blockly.Names'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); +import {NameType} from '../../core/names.js'; +import {javascriptGenerator as JavaScript} from '../javascript.js'; JavaScript['variables_get'] = function(block) { diff --git a/generators/javascript/variables_dynamic.js b/generators/javascript/variables_dynamic.js index c84dfe58d..07c29cd26 100644 --- a/generators/javascript/variables_dynamic.js +++ b/generators/javascript/variables_dynamic.js @@ -7,13 +7,12 @@ /** * @fileoverview Generating JavaScript for dynamic variable blocks. */ -'use strict'; -goog.module('Blockly.JavaScript.variablesDynamic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.JavaScript.variablesDynamic'); -const {javascriptGenerator: JavaScript} = goog.require('Blockly.JavaScript'); -/** @suppress {extraRequire} */ -goog.require('Blockly.JavaScript.variables'); +import {javascriptGenerator as JavaScript} from '../javascript.js'; +import './variables.js'; // JavaScript is dynamically typed. diff --git a/generators/lua.js b/generators/lua.js index 2409c3355..bee88de91 100644 --- a/generators/lua.js +++ b/generators/lua.js @@ -9,16 +9,16 @@ * Based on Ellen Spertus's blocky-lua project. * @suppress {checkTypes|globalThis} */ -'use strict'; -goog.module('Blockly.Lua'); +import * as goog from '../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua'); -const stringUtils = goog.require('Blockly.utils.string'); -const {Block} = goog.requireType('Blockly.Block'); -const {CodeGenerator} = goog.require('Blockly.CodeGenerator'); -const {inputTypes} = goog.require('Blockly.inputTypes'); -const {Names} = goog.require('Blockly.Names'); -const {Workspace} = goog.requireType('Blockly.Workspace'); +import * as stringUtils from '../core/utils/string.js'; +// import type {Block} from '../core/block.js'; +import {CodeGenerator} from '../core/generator.js'; +import {inputTypes} from '../core/inputs/input_types.js'; +import {Names} from '../core/names.js'; +// import type {Workspace} from '../core/workspace.js'; /** @@ -201,5 +201,4 @@ Lua.scrub_ = function(block, code, opt_thisOnly) { const nextCode = opt_thisOnly ? '' : this.blockToCode(nextBlock); return commentCode + code + nextCode; }; - -exports.luaGenerator = Lua; +export {Lua as luaGenerator}; diff --git a/generators/lua/all.js b/generators/lua/all.js index 7f3bc7581..0607d5c3e 100644 --- a/generators/lua/all.js +++ b/generators/lua/all.js @@ -9,19 +9,18 @@ * blocks. This is the entrypoint for lua_compressed.js. * @suppress {extraRequire} */ -'use strict'; -goog.module('Blockly.Lua.all'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.all'); -const moduleExports = goog.require('Blockly.Lua'); -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'); +import './colour.js'; +import './lists.js'; +import './logic.js'; +import './loops.js'; +import './math.js'; +import './procedures.js'; +import './text.js'; +import './variables.js'; +import './variables_dynamic.js'; -exports = moduleExports; +export * from '../lua.js'; diff --git a/generators/lua/colour.js b/generators/lua/colour.js index be3825ae5..52ad3bd98 100644 --- a/generators/lua/colour.js +++ b/generators/lua/colour.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Lua for colour blocks. */ -'use strict'; -goog.module('Blockly.Lua.colour'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.colour'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {luaGenerator as Lua} from '../lua.js'; Lua['colour_picker'] = function(block) { diff --git a/generators/lua/lists.js b/generators/lua/lists.js index b67f9033c..dd6e66ef5 100644 --- a/generators/lua/lists.js +++ b/generators/lua/lists.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Lua for list blocks. */ -'use strict'; -goog.module('Blockly.Lua.lists'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.lists'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; Lua['lists_create_empty'] = function(block) { diff --git a/generators/lua/logic.js b/generators/lua/logic.js index 53adbeb2b..e0503052d 100644 --- a/generators/lua/logic.js +++ b/generators/lua/logic.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Lua for logic blocks. */ -'use strict'; -goog.module('Blockly.Lua.logic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.logic'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {luaGenerator as Lua} from '../lua.js'; Lua['controls_if'] = function(block) { diff --git a/generators/lua/loops.js b/generators/lua/loops.js index 525f1a7d3..7fb8536be 100644 --- a/generators/lua/loops.js +++ b/generators/lua/loops.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Lua for loop blocks. */ -'use strict'; -goog.module('Blockly.Lua.loops'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.loops'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; /** diff --git a/generators/lua/math.js b/generators/lua/math.js index e14243ed3..b613e9767 100644 --- a/generators/lua/math.js +++ b/generators/lua/math.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Lua for math blocks. */ -'use strict'; -goog.module('Blockly.Lua.math'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.math'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; Lua['math_number'] = function(block) { diff --git a/generators/lua/procedures.js b/generators/lua/procedures.js index a204855a7..231c583cd 100644 --- a/generators/lua/procedures.js +++ b/generators/lua/procedures.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Lua for procedure blocks. */ -'use strict'; -goog.module('Blockly.Lua.procedures'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.procedures'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; Lua['procedures_defreturn'] = function(block) { diff --git a/generators/lua/text.js b/generators/lua/text.js index 9dcc08b3b..5e3b05720 100644 --- a/generators/lua/text.js +++ b/generators/lua/text.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Lua for text blocks. */ -'use strict'; -goog.module('Blockly.Lua.texts'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.texts'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; Lua['text'] = function(block) { diff --git a/generators/lua/variables.js b/generators/lua/variables.js index 8fa590945..56283cbcc 100644 --- a/generators/lua/variables.js +++ b/generators/lua/variables.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Lua for variable blocks. */ -'use strict'; -goog.module('Blockly.Lua.variables'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.variables'); -const {NameType} = goog.require('Blockly.Names'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); +import {NameType} from '../../core/names.js'; +import {luaGenerator as Lua} from '../lua.js'; Lua['variables_get'] = function(block) { diff --git a/generators/lua/variables_dynamic.js b/generators/lua/variables_dynamic.js index 78a92a354..075fadd82 100644 --- a/generators/lua/variables_dynamic.js +++ b/generators/lua/variables_dynamic.js @@ -7,13 +7,12 @@ /** * @fileoverview Generating Lua for dynamic variable blocks. */ -'use strict'; -goog.module('Blockly.Lua.variablesDynamic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Lua.variablesDynamic'); -const {luaGenerator: Lua} = goog.require('Blockly.Lua'); -/** @suppress {extraRequire} */ -goog.require('Blockly.Lua.variables'); +import {luaGenerator as Lua} from '../lua.js'; +import './variables.js'; // Lua is dynamically typed. diff --git a/generators/php.js b/generators/php.js index 043a3c6a7..479a53e77 100644 --- a/generators/php.js +++ b/generators/php.js @@ -8,16 +8,16 @@ * @fileoverview Helper functions for generating PHP for blocks. * @suppress {checkTypes|globalThis} */ -'use strict'; -goog.module('Blockly.PHP'); +import * as goog from '../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP'); -const stringUtils = goog.require('Blockly.utils.string'); -const {Block} = goog.requireType('Blockly.Block'); -const {CodeGenerator} = goog.require('Blockly.CodeGenerator'); -const {inputTypes} = goog.require('Blockly.inputTypes'); -const {Names} = goog.require('Blockly.Names'); -const {Workspace} = goog.requireType('Blockly.Workspace'); +import * as stringUtils from '../core/utils/string.js'; +// import type {Block} from '../core/block.js'; +import {CodeGenerator} from '../core/generator.js'; +import {inputTypes} from '../core/inputs/input_types.js'; +import {Names} from '../core/names.js'; +// import type {Workspace} from '../core/workspace.js'; /** @@ -298,5 +298,4 @@ PHP.getAdjusted = function(block, atId, opt_delta, opt_negate, opt_order) { } return at; }; - -exports.phpGenerator = PHP; +export {PHP as phpGenerator}; diff --git a/generators/php/all.js b/generators/php/all.js index 4f707814b..2fd3b505a 100644 --- a/generators/php/all.js +++ b/generators/php/all.js @@ -9,19 +9,18 @@ * blocks. This is the entrypoint for php_compressed.js. * @suppress {extraRequire} */ -'use strict'; -goog.module('Blockly.PHP.all'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.all'); -const moduleExports = goog.require('Blockly.PHP'); -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'); +import './colour.js'; +import './lists.js'; +import './logic.js'; +import './loops.js'; +import './math.js'; +import './procedures.js'; +import './text.js'; +import './variables.js'; +import './variables_dynamic.js'; -exports = moduleExports; +export * from '../php.js'; diff --git a/generators/php/colour.js b/generators/php/colour.js index 09ac78bbb..53a076ee5 100644 --- a/generators/php/colour.js +++ b/generators/php/colour.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating PHP for colour blocks. */ -'use strict'; -goog.module('Blockly.PHP.colour'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.colour'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import {phpGenerator as PHP} from '../php.js'; PHP['colour_picker'] = function(block) { diff --git a/generators/php/lists.js b/generators/php/lists.js index 95da17e69..e33ba63b7 100644 --- a/generators/php/lists.js +++ b/generators/php/lists.js @@ -18,13 +18,13 @@ * PHP (because only variables can be passed by reference). * ex: end(true ? list1 : list2) */ -'use strict'; -goog.module('Blockly.PHP.lists'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.lists'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['lists_create_empty'] = function(block) { // Create an empty list. diff --git a/generators/php/logic.js b/generators/php/logic.js index 40bd33459..fe4a2f566 100644 --- a/generators/php/logic.js +++ b/generators/php/logic.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating PHP for logic blocks. */ -'use strict'; -goog.module('Blockly.PHP.logic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.logic'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import {phpGenerator as PHP} from '../php.js'; PHP['controls_if'] = function(block) { diff --git a/generators/php/loops.js b/generators/php/loops.js index b90e0f04e..fd8e1c219 100644 --- a/generators/php/loops.js +++ b/generators/php/loops.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating PHP for loop blocks. */ -'use strict'; -goog.module('Blockly.PHP.loops'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.loops'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['controls_repeat_ext'] = function(block) { diff --git a/generators/php/math.js b/generators/php/math.js index 972f4286f..8efcb5318 100644 --- a/generators/php/math.js +++ b/generators/php/math.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating PHP for math blocks. */ -'use strict'; -goog.module('Blockly.PHP.math'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.math'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['math_number'] = function(block) { diff --git a/generators/php/procedures.js b/generators/php/procedures.js index fc8e45dd9..7c77f90c3 100644 --- a/generators/php/procedures.js +++ b/generators/php/procedures.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating PHP for procedure blocks. */ -'use strict'; -goog.module('Blockly.PHP.procedures'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.procedures'); -const Variables = goog.require('Blockly.Variables'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import * as Variables from '../../core/variables.js'; +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['procedures_defreturn'] = function(block) { diff --git a/generators/php/text.js b/generators/php/text.js index 4b0998863..84254a30a 100644 --- a/generators/php/text.js +++ b/generators/php/text.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating PHP for text blocks. */ -'use strict'; -goog.module('Blockly.PHP.texts'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.texts'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['text'] = function(block) { diff --git a/generators/php/variables.js b/generators/php/variables.js index b919f266b..fb35d8c9c 100644 --- a/generators/php/variables.js +++ b/generators/php/variables.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating PHP for variable blocks. */ -'use strict'; -goog.module('Blockly.PHP.variables'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.variables'); -const {NameType} = goog.require('Blockly.Names'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); +import {NameType} from '../../core/names.js'; +import {phpGenerator as PHP} from '../php.js'; PHP['variables_get'] = function(block) { diff --git a/generators/php/variables_dynamic.js b/generators/php/variables_dynamic.js index f4d71f481..8116c69b2 100644 --- a/generators/php/variables_dynamic.js +++ b/generators/php/variables_dynamic.js @@ -7,13 +7,12 @@ /** * @fileoverview Generating PHP for dynamic variable blocks. */ -'use strict'; -goog.module('Blockly.PHP.variablesDynamic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.PHP.variablesDynamic'); -const {phpGenerator: PHP} = goog.require('Blockly.PHP'); -/** @suppress {extraRequire} */ -goog.require('Blockly.PHP.variables'); +import {phpGenerator as PHP} from '../php.js'; +import './variables.js'; // PHP is dynamically typed. diff --git a/generators/python.js b/generators/python.js index 09d92d19d..527ade8f1 100644 --- a/generators/python.js +++ b/generators/python.js @@ -8,17 +8,17 @@ * @fileoverview Helper functions for generating Python for blocks. * @suppress {checkTypes|globalThis} */ -'use strict'; -goog.module('Blockly.Python'); +import * as goog from '../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python'); -const stringUtils = goog.require('Blockly.utils.string'); -const Variables = goog.require('Blockly.Variables'); -const {Block} = goog.requireType('Blockly.Block'); -const {CodeGenerator} = goog.require('Blockly.CodeGenerator'); -const {inputTypes} = goog.require('Blockly.inputTypes'); -const {Names, NameType} = goog.require('Blockly.Names'); -const {Workspace} = goog.requireType('Blockly.Workspace'); +import * as stringUtils from '../core/utils/string.js'; +import * as Variables from '../core/variables.js'; +// import type {Block} from '../core/block.js'; +import {CodeGenerator} from '../core/generator.js'; +import {inputTypes} from '../core/inputs/input_types.js'; +import {Names, NameType} from '../core/names.js'; +// import type {Workspace} from '../core/workspace.js'; /** @@ -329,5 +329,4 @@ Python.getAdjustedInt = function(block, atId, opt_delta, opt_negate) { } return at; }; - -exports.pythonGenerator = Python; +export {Python as pythonGenerator}; diff --git a/generators/python/all.js b/generators/python/all.js index b6727dc46..10c97e029 100644 --- a/generators/python/all.js +++ b/generators/python/all.js @@ -9,19 +9,18 @@ * blocks. This is the entrypoint for python_compressed.js. * @suppress {extraRequire} */ -'use strict'; -goog.module('Blockly.Python.all'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.all'); -const moduleExports = goog.require('Blockly.Python'); -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'); +import './colour.js'; +import './lists.js'; +import './logic.js'; +import './loops.js'; +import './math.js'; +import './procedures.js'; +import './text.js'; +import './variables.js'; +import './variables_dynamic.js'; -exports = moduleExports; +export * from '../python.js'; diff --git a/generators/python/colour.js b/generators/python/colour.js index 1cbc33747..7912cc7e2 100644 --- a/generators/python/colour.js +++ b/generators/python/colour.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Python for colour blocks. */ -'use strict'; -goog.module('Blockly.Python.colour'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.colour'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import {pythonGenerator as Python} from '../python.js'; Python['colour_picker'] = function(block) { diff --git a/generators/python/lists.js b/generators/python/lists.js index e09127cfa..74a78e838 100644 --- a/generators/python/lists.js +++ b/generators/python/lists.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Python for list blocks. */ -'use strict'; -goog.module('Blockly.Python.lists'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.lists'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; Python['lists_create_empty'] = function(block) { diff --git a/generators/python/logic.js b/generators/python/logic.js index ca6ab2d02..8aa8476b8 100644 --- a/generators/python/logic.js +++ b/generators/python/logic.js @@ -7,11 +7,11 @@ /** * @fileoverview Generating Python for logic blocks. */ -'use strict'; -goog.module('Blockly.Python.logic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.logic'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import {pythonGenerator as Python} from '../python.js'; Python['controls_if'] = function(block) { diff --git a/generators/python/loops.js b/generators/python/loops.js index 99e1f6bbf..c554914b2 100644 --- a/generators/python/loops.js +++ b/generators/python/loops.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Python for loop blocks. */ -'use strict'; -goog.module('Blockly.Python.loops'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.loops'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; Python['controls_repeat_ext'] = function(block) { diff --git a/generators/python/math.js b/generators/python/math.js index 077f1acdd..8c1d0b8dd 100644 --- a/generators/python/math.js +++ b/generators/python/math.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Python for math blocks. */ -'use strict'; -goog.module('Blockly.Python.math'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.math'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; // If any new block imports any library, add that library name here. diff --git a/generators/python/procedures.js b/generators/python/procedures.js index d3737566f..cd4a9d7ec 100644 --- a/generators/python/procedures.js +++ b/generators/python/procedures.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Python for procedure blocks. */ -'use strict'; -goog.module('Blockly.Python.procedures'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.procedures'); -const Variables = goog.require('Blockly.Variables'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import * as Variables from '../../core/variables.js'; +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; Python['procedures_defreturn'] = function(block) { diff --git a/generators/python/text.js b/generators/python/text.js index 3a378091c..e6ec889cd 100644 --- a/generators/python/text.js +++ b/generators/python/text.js @@ -7,13 +7,13 @@ /** * @fileoverview Generating Python for text blocks. */ -'use strict'; -goog.module('Blockly.Python.texts'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.texts'); -const stringUtils = goog.require('Blockly.utils.string'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import * as stringUtils from '../../core/utils/string.js'; +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; Python['text'] = function(block) { diff --git a/generators/python/variables.js b/generators/python/variables.js index 7abce6b42..58f0a3e1a 100644 --- a/generators/python/variables.js +++ b/generators/python/variables.js @@ -7,12 +7,12 @@ /** * @fileoverview Generating Python for variable blocks. */ -'use strict'; -goog.module('Blockly.Python.variables'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.variables'); -const {NameType} = goog.require('Blockly.Names'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); +import {NameType} from '../../core/names.js'; +import {pythonGenerator as Python} from '../python.js'; Python['variables_get'] = function(block) { diff --git a/generators/python/variables_dynamic.js b/generators/python/variables_dynamic.js index b2632eece..cfa6785e4 100644 --- a/generators/python/variables_dynamic.js +++ b/generators/python/variables_dynamic.js @@ -7,13 +7,12 @@ /** * @fileoverview Generating Python for dynamic variable blocks. */ -'use strict'; -goog.module('Blockly.Python.variablesDynamic'); +import * as goog from '../../closure/goog/goog.js'; +goog.declareModuleId('Blockly.Python.variablesDynamic'); -const {pythonGenerator: Python} = goog.require('Blockly.Python'); -/** @suppress {extraRequire} */ -goog.require('Blockly.Python.variables'); +import {pythonGenerator as Python} from '../python.js'; +import './variables.js'; // Python is dynamically typed. diff --git a/scripts/gulpfiles/build_tasks.js b/scripts/gulpfiles/build_tasks.js index db86818bb..64a402a1c 100644 --- a/scripts/gulpfiles/build_tasks.js +++ b/scripts/gulpfiles/build_tasks.js @@ -108,35 +108,35 @@ const chunks = [ { name: 'javascript', entry: path.join(TSC_OUTPUT_DIR, 'generators', 'javascript', 'all.js'), - exports: 'module$exports$Blockly$JavaScript', + exports: 'module$build$src$generators$javascript$all', reexport: 'Blockly.JavaScript', reexportOnly: 'javascriptGenerator', }, { name: 'python', entry: path.join(TSC_OUTPUT_DIR, 'generators', 'python', 'all.js'), - exports: 'module$exports$Blockly$Python', + exports: 'module$build$src$generators$python$all', reexport: 'Blockly.Python', reexportOnly: 'pythonGenerator', }, { name: 'php', entry: path.join(TSC_OUTPUT_DIR, 'generators', 'php', 'all.js'), - exports: 'module$exports$Blockly$PHP', + exports: 'module$build$src$generators$php$all', reexport: 'Blockly.PHP', reexportOnly: 'phpGenerator', }, { name: 'lua', entry: path.join(TSC_OUTPUT_DIR, 'generators', 'lua', 'all.js'), - exports: 'module$exports$Blockly$Lua', + exports: 'module$build$src$generators$lua$all', reexport: 'Blockly.Lua', reexportOnly: 'luaGenerator', }, { name: 'dart', entry: path.join(TSC_OUTPUT_DIR, 'generators', 'dart', 'all.js'), - exports: 'module$exports$Blockly$Dart', + exports: 'module$build$src$generators$dart$all', reexport: 'Blockly.Dart', reexportOnly: 'dartGenerator', } diff --git a/scripts/migration/js2ts b/scripts/migration/js2ts index 324a75086..4ddfd18ba 100755 --- a/scripts/migration/js2ts +++ b/scripts/migration/js2ts @@ -64,6 +64,9 @@ require(path.resolve(__dirname, '../../build/deps.mocha.js')); const requireRE = /(?:const\s+(?:([$\w]+)|(\{[^}]*\}))\s+=\s+)?goog.require(Type)?\('([^']+)'\);/mg; +/** RegExp matching key: value pairs in destructuring assignments. */ +const keyValueRE = /([$\w]+)\s*:\s*([$\w]+)\s*(?=,|})/g; + for (const filename of filenames) { let contents = null; try { @@ -102,11 +105,13 @@ for (const filename of filenames) { moduleId}') as no ES module path known.`); return orig; } - const relativePath = + let relativePath = path.relative(path.dirname(path.resolve(filename)), importPath); + if (relativePath[0] !== '.') relativePath = './' + relativePath; if (name) { return `import${type} * as ${name} from '${relativePath}';`; } else if (names) { + names = names.replace(keyValueRE, '$1 as $2'); return `import${type} ${names} from '${relativePath}';`; } else { // Side-effect only require. return `import${type} '${relativePath}';`;