diff --git a/kasmweb/utils/use_require.js b/kasmweb/utils/use_require.js index bdbbedb..ebe1084 100755 --- a/kasmweb/utils/use_require.js +++ b/kasmweb/utils/use_require.js @@ -30,10 +30,13 @@ const no_copy_files = new Set([ // skip these -- they don't belong in the processed application path.join(paths.vendor, 'sinon.js'), path.join(paths.vendor, 'browser-es-module-loader'), - path.join(paths.vendor, 'promise.js'), path.join(paths.app, 'images', 'icons', 'Makefile'), ]); +const only_legacy_scripts = new Set([ + path.join(paths.vendor, 'promise.js'), +]); + const no_transform_files = new Set([ // don't transform this -- we want it imported as-is to properly catch loading errors path.join(paths.app, 'error-handler.js'), @@ -174,6 +177,7 @@ function make_lib_files(import_format, source_maps, with_app_dir, only_legacy) { const helper = helpers[import_format]; const outFiles = []; + const legacyFiles = []; const handleDir = (js_only, vendor_rewrite, in_path_base, filename) => Promise.resolve() .then(() => { @@ -196,6 +200,15 @@ function make_lib_files(import_format, source_maps, with_app_dir, only_legacy) { }); } + if (only_legacy_scripts.has(filename)) { + legacyFiles.push(legacy_path); + return ensureDir(path.dirname(legacy_path)) + .then(() => { + console.log(`Writing ${legacy_path}`); + return copy(filename, legacy_path); + }); + } + return Promise.resolve() .then(() => { if (only_legacy) { @@ -243,10 +256,6 @@ function make_lib_files(import_format, source_maps, with_app_dir, only_legacy) { }); }); - if (with_app_dir && helper && helper.noCopyOverride) { - helper.noCopyOverride(paths, no_copy_files); - } - Promise.resolve() .then(() => { const handler = handleDir.bind(null, true, false, in_path || paths.main); @@ -275,8 +284,16 @@ function make_lib_files(import_format, source_maps, with_app_dir, only_legacy) { console.log(`Writing ${out_app_path}`); return helper.appWriter(out_path_base, legacy_path_base, out_app_path) .then((extra_scripts) => { - const rel_app_path = path.relative(out_path_base, out_app_path); - const legacy_scripts = extra_scripts.concat([rel_app_path]); + let legacy_scripts = extra_scripts; + + legacyFiles.forEach((file) => { + let rel_file_path = path.relative(out_path_base, file); + legacy_scripts.push(rel_file_path); + }); + + let rel_app_path = path.relative(out_path_base, out_app_path); + legacy_scripts.push(rel_app_path); + transform_html(legacy_scripts, only_legacy); }) .then(() => { diff --git a/kasmweb/utils/use_require_helpers.js b/kasmweb/utils/use_require_helpers.js index a4f99c7..ec5da0d 100644 --- a/kasmweb/utils/use_require_helpers.js +++ b/kasmweb/utils/use_require_helpers.js @@ -31,7 +31,6 @@ module.exports = { return [ require_path ]; }); }, - noCopyOverride: () => {}, }, 'commonjs': { optionsOverride: (opts) => { @@ -45,7 +44,6 @@ module.exports = { .then(buf => writeFile(out_path, buf)) .then(() => []); }, - noCopyOverride: () => {}, removeModules: true, }, 'systemjs': { @@ -55,17 +53,11 @@ module.exports = { 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 - const promise_path = path.relative(base_out_path, - path.join(base_out_path, 'vendor', 'promise.js')); const systemjs_path = path.relative(base_out_path, path.join(script_base_path, 'system-production.js')); - return [ promise_path, systemjs_path ]; + return [ systemjs_path ]; }); }, - noCopyOverride: (paths, no_copy_files) => { - no_copy_files.delete(path.join(paths.vendor, 'promise.js')); - }, }, 'umd': { optionsOverride: (opts) => {