]> git.proxmox.com Git - mirror_novnc.git/blobdiff - utils/use_require_helpers.js
Always include Promise polyfill for legacy browsers
[mirror_novnc.git] / utils / use_require_helpers.js
index 19a43b7749a326ca202df7505afa79731d717335..ec5da0d1924b16de8070544c23c55982074780d5 100644 (file)
@@ -1,20 +1,18 @@
 // writes helpers require for vnc.html (they should output app.js)
-var fs = require('fs');
-var fse = require('fs-extra');
-var path = require('path');
+const fs = require('fs');
+const path = require('path');
 
 // util.promisify requires Node.js 8.x, so we have our own
 function promisify(original) {
-    return function () {
-        let obj = this;
-        let args = Array.prototype.slice.call(arguments);
+    return function promise_wrap() {
+        const args = Array.prototype.slice.call(arguments);
         return new Promise((resolve, reject) => {
-            original.apply(obj, args.concat((err, value) => {
+            original.apply(this, args.concat((err, value) => {
                 if (err) return reject(err);
                 resolve(value);
             }));
         });
-    }
+    };
 }
 
 const writeFile = promisify(fs.writeFile);
@@ -23,56 +21,48 @@ module.exports = {
     'amd': {
         appWriter: (base_out_path, script_base_path, out_path) => {
             // setup for requirejs
-            let ui_path = path.relative(base_out_path,
-                                        path.join(script_base_path, 'app', 'ui'));
-            return writeFile(out_path, `requirejs(["${ui_path}"], function (ui) {});`)
-            .then(() => {
-                console.log(`Please place RequireJS in ${path.join(script_base_path, 'require.js')}`);
-                let require_path = path.relative(base_out_path,
-                                                 path.join(script_base_path, 'require.js'))
-                return [ require_path ];
-            });
+            const ui_path = path.relative(base_out_path,
+                                          path.join(script_base_path, 'app', 'ui'));
+            return writeFile(out_path, `requirejs(["${ui_path}"], (ui) => {});`)
+                .then(() => {
+                    console.log(`Please place RequireJS in ${path.join(script_base_path, 'require.js')}`);
+                    const require_path = path.relative(base_out_path,
+                                                       path.join(script_base_path, 'require.js'));
+                    return [ require_path ];
+                });
         },
-        noCopyOverride: () => {},
     },
     'commonjs': {
-        optionsOverride: (opts) => {   
+        optionsOverride: (opts) => {
             // CommonJS supports properly shifting the default export to work as normal
             opts.plugins.unshift("add-module-exports");
         },
         appWriter: (base_out_path, script_base_path, out_path) => {
-            var browserify = require('browserify');
-            var b = browserify(path.join(script_base_path, 'app/ui.js'), {});
+            const browserify = require('browserify');
+            const b = browserify(path.join(script_base_path, 'app/ui.js'), {});
             return promisify(b.bundle).call(b)
-            .then((buf) => writeFile(out_path, buf))
-            .then(() => []);
+                .then(buf => writeFile(out_path, buf))
+                .then(() => []);
         },
-        noCopyOverride: () => {},
         removeModules: true,
     },
     'systemjs': {
         appWriter: (base_out_path, script_base_path, out_path) => {
-            let ui_path = path.relative(base_out_path,
-                                        path.join(script_base_path, 'app', 'ui.js'));
+            const ui_path = path.relative(base_out_path,
+                                          path.join(script_base_path, 'app', 'ui.js'));
             return writeFile(out_path, `SystemJS.import("${ui_path}");`)
-            .then(() => {
-                console.log(`Please place SystemJS in ${path.join(script_base_path, 'system-production.js')}`);
-                // FIXME: Should probably be in the legacy directory
-                let promise_path = path.relative(base_out_path,
-                                                 path.join(base_out_path, 'vendor', 'promise.js'))
-                let systemjs_path = path.relative(base_out_path,
-                                                  path.join(script_base_path, 'system-production.js'))
-                return [ promise_path, systemjs_path ];
-            });
-        },
-        noCopyOverride: (paths, no_copy_files) => {
-            no_copy_files.delete(path.join(paths.vendor, 'promise.js'));
+                .then(() => {
+                    console.log(`Please place SystemJS in ${path.join(script_base_path, 'system-production.js')}`);
+                    const systemjs_path = path.relative(base_out_path,
+                                                        path.join(script_base_path, 'system-production.js'));
+                    return [ systemjs_path ];
+                });
         },
     },
     'umd': {
-        optionsOverride: (opts) => {   
+        optionsOverride: (opts) => {
             // umd supports properly shifting the default export to work as normal
             opts.plugins.unshift("add-module-exports");
         },
     },
-}
+};