Skip to content
  • Benjamin Franzke's avatar
    [TASK] Convert all static RequireJS calls to native ES6 modules · 1ea56b32
    Benjamin Franzke authored and Georg Ringer's avatar Georg Ringer committed
    All static RequireJS calls (static string argument) are migrated to
    native ES6 modules.
    
    Excluded is CodeMirrorElement which still needs RequireJS to be
    available for loading CodeMirror and it's modules. CodeMirror
    migration to ES6 will be a separate step by upgrading from v5 to v6.
    
    Manual modifications in Form/Element/AbstractFormElement.php to keep
    JavaScriptModule flags for registerCustomEvaluation call-conversions.
    Also JavaScriptRenderer.php to is patched always include
    the EXT:core importmap whenever the JavaScriptItemHandler is used
    (required for the dependency to "JavaScriptItemProcessor.js").
    
    All other changes have been performed with the following commands:
    
      git grep -l "loadRequireJsModule('TYPO3/CMS" | \
        grep -v /Documentation/Changelog | \
        grep -v ActionMenuViewHelper.php | \
        xargs sed -i '/CodeMirrorElement/!'"s/->loadRequireJsModule('\\(TYPO3\/CMS\/[^']*\\)')/->loadJavaScriptModule('\\1.js')/g"
    
      git grep -l "JavaScriptModuleInstruction::forRequireJS('TYPO3/CMS" | \
        grep -v /Documentation/Changelog | \
        grep -v JavaScriptRendererTest.php | \
        xargs sed -i '/CodeMirrorElement/!'"s/JavaScriptModuleInstruction::forRequireJS('\\(TYPO3\/CMS\/[^']*\\)'/JavaScriptModuleInstruction::create('\\1.js'/g"
    
      git grep -l "JavaScriptModuleInstruction::forRequireJS($" | \
        grep -v /Documentation/Changelog | \
        grep -v Form/Element/AbstractFormElement.php | \
        xargs sed -i -e '/CodeMirrorElement/!s/::forRequireJS/::create/' -e "s/^\([ ]*\)'\\(TYPO3\/CMS\/[^']*\\)'/\\1'\\2.js'/g"
    
      sed -i "s/'\\(TYPO3\/CMS\/[^']*\\)'/'\\1.js'/g" typo3/sysext/backend/Tests/Functional/Form/MfaInfoElementTest.php
    
      # Same migration as already started in #96607
      git grep -l includeRequireJsModules= | \
        grep -v /Documentation/Changelog/ | \
        grep -v PageRendererViewHelper.php | \
        xargs sed -i \
          -e 's/includeRequireJsModules=/includeJavaScriptModules=/' \
          -e "s/\\([0-9]: *'TYPO3\\/CMS\\/.*\\)'/\\1.js'/g"
    
    Resolves: #96570
    Related: #96323
    Related: #96607
    Releases: main
    Change-Id: Idc81d6b4d58168f0bfafc3e9e4ad46fa1e5f27e7
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73027
    
    
    Tested-by: default avatarcore-ci <typo3@b13.com>
    Tested-by: default avatarBenni Mack <benni@typo3.org>
    Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
    Reviewed-by: default avatarBenni Mack <benni@typo3.org>
    Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
    1ea56b32