We would like to use module imports and exports as well as ES6 syntax in our source code, but in doing so we need to be careful that this code doesn't end up in production untranspiled.
= Background
This task encompasses the work to enable ES6 syntax via Babel transpilation for functional and test code under src/. Code under src/ and webpack.config.js should be revised as part of this task at minimum to use import and export instead of require and module.exports.
We were very careful in Popups to [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/Popups/+/master/.eslintrc.es5.json | forbid ES6 syntax in the build product ]]. This task encompasses the work to either duplicate the effort in MobileFrontend. As part of this task and assuming we wish to keep the check, pushing the ES5 config from Popups to the Wikimedia ESLint config should be considered and may expand the effort required to complete the task.
= Acceptance criteria
[] The eslintrc.es5.json inside Popups is pushed to a new repo e.g. https://github.com/wikimedia/eslint-config-wikimedia-es5 which explains its purpose
[] The new repo is published to npm
[] The new repo is consumed and run against the built assets in the resources/dist folder
https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/Popups/+/master/Gruntfile.js#21
[] If I add ES6 syntax to the built output e.g. "const x = 1" Jenkins/npm test fails.
[] Update allow module.exports/require function calls to make use of import/export