aboutsummaryrefslogtreecommitdiffstats
path: root/build/tasks/amd.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/tasks/amd.js')
-rw-r--r--build/tasks/amd.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/build/tasks/amd.js b/build/tasks/amd.js
new file mode 100644
index 000000000..617773ff2
--- /dev/null
+++ b/build/tasks/amd.js
@@ -0,0 +1,43 @@
+/**
+ * Compiles sources from ES Modules in `src/` to AMD in `amd/`.
+ */
+
+"use strict";
+
+module.exports = function( grunt ) {
+ const path = require( "path" );
+ const rimraf = require( "rimraf" );
+ const rollup = require( "rollup" );
+ const srcFolder = path.resolve( __dirname, "..", "..", "src" );
+ const amdFolder = path.resolve( srcFolder, "..", "amd" );
+ const inputFileName = "jquery.js";
+
+ const inputRollupOptions = {
+ input: path.resolve( srcFolder, inputFileName ),
+ preserveModules: true
+ };
+
+ const outputRollupOptions = {
+ format: "amd",
+ dir: "amd"
+ };
+
+ grunt.registerTask(
+ "amd",
+ "Convert ES modules from `src/` to AMD modules in `amd/`",
+ async function() {
+ const done = this.async();
+
+ try {
+ grunt.verbose.writeln( "Removing the 'amd' directory..." );
+ rimraf( amdFolder, async function() {
+ const bundle = await rollup.rollup( inputRollupOptions );
+ await bundle.write( outputRollupOptions );
+ grunt.log.ok( "Sources from 'src' converted to AMD in 'amd'." );
+ done();
+ } );
+ } catch ( err ) {
+ done( err );
+ }
+ } );
+};