]> git.proxmox.com Git - mirror_novnc.git/blob - utils/use_require_helpers.js
Allow transforming to any format
[mirror_novnc.git] / utils / use_require_helpers.js
1 // writes helpers require for vnc.html (they should output app.js)
2 var fs = require('fs');
3 var fse = require('fs-extra');
4 var path = require('path');
5
6 module.exports = {
7 'amd': {
8 appWriter: (base_out_path, out_path) => {
9 // setup for requirejs
10 fs.writeFile(out_path, 'requirejs(["app/ui"], function (ui) {});', (err) => { if (err) throw err; });
11 console.log(`Please place RequireJS in ${path.join(base_out_path, 'require.js')}`);
12 return `<script src="require.js" data-main="${path.relative(base_out_path, out_path)}"></script>`;
13 },
14 },
15 'commonjs': {
16 optionsOverride: (opts) => {
17 // CommonJS supports properly shifting the default export to work as normal
18 opts.plugins.unshift("add-module-exports");
19 },
20 appWriter: (base_out_path, out_path) => {
21 var browserify = require('browserify');
22 var b = browserify(path.join(base_out_path, 'app/ui.js'), {});
23 b.bundle().pipe(fs.createWriteStream(out_path));
24 return `<script src="${path.relative(base_out_path, out_path)}"></script>`;
25 },
26 },
27 'systemjs': {
28 appWriter: (base_out_path, out_path) => {
29 fs.writeFile(out_path, 'SystemJS.import("./app/ui.js");', (err) => { if (err) throw err; });
30 console.log(`Please place SystemJS in ${path.join(base_out_path, 'system-production.js')}`);
31 return `<script src="system-production.js"></script>\n<script src="${path.relative(base_out_path, out_path)}"></script>`;
32 },
33 },
34 'umd': {
35 optionsOverride: (opts) => {
36 // umd supports properly shifting the default export to work as normal
37 opts.plugins.unshift("add-module-exports");
38 },
39 },
40 }