@selfage/bundler_cli
Version:
CLI for bundling and running bundled frontend or backend TypeScript files.
28 lines • 5.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.bundleWebServer = bundleWebServer;
const path = require("path");
const bundler_1 = require("./bundler");
const file_extension_stripper_1 = require("./file_extension_stripper");
const files_copier_1 = require("./files_copier");
const web_app_bundler_1 = require("./web_app_bundler");
async function bundleWebServer(serverSourceFile, serverOutputFile, webAppEntriesConfigFile = web_app_bundler_1.DEFAULT_ENTRIES_CONFIG_FILE, fromDir = ".", toDir = fromDir, options = {}) {
let webAppBaseDir = path.posix.dirname(webAppEntriesConfigFile);
let baseDirFromServer = path.posix.relative(path.posix.dirname(serverOutputFile), webAppBaseDir);
options.inlineJs = options.inlineJs ?? new Array();
options.inlineJs.push(`let path = require("path");
globalThis.WEB_APP_BASE_DIR = path.join(__dirname, "${baseDirFromServer}");`);
let [serverAssetFiles, webAppFiles] = await Promise.all([
(0, bundler_1.bundleForNodeReturnAssetFiles)(serverSourceFile, serverOutputFile, options),
(0, web_app_bundler_1.bundleWebAppsAndReturnBundledResources)(webAppEntriesConfigFile, webAppBaseDir, options),
]);
if (path.posix.normalize(fromDir) === path.posix.normalize(toDir)) {
return;
}
await (0, files_copier_1.copyFiles)([
(0, file_extension_stripper_1.stripFileExtension)(serverOutputFile) + ".js",
...serverAssetFiles,
...webAppFiles,
], fromDir, toDir);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX3NlcnZlcl9idW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2ViX3NlcnZlcl9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0EsMENBc0NDO0FBL0NELDZCQUE4QjtBQUM5Qix1Q0FBK0U7QUFDL0UsdUVBQStEO0FBQy9ELGlEQUEyQztBQUMzQyx1REFHMkI7QUFFcEIsS0FBSyxVQUFVLGVBQWUsQ0FDbkMsZ0JBQXdCLEVBQ3hCLGdCQUF3QixFQUN4Qix1QkFBdUIsR0FBRyw2Q0FBMkIsRUFDckQsT0FBTyxHQUFHLEdBQUcsRUFDYixLQUFLLEdBQUcsT0FBTyxFQUNmLFVBQStCLEVBQUU7SUFFakMsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRSxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNwQyxhQUFhLENBQ2QsQ0FBQztJQUNGLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLEtBQUssRUFBVSxDQUFDO0lBQzNELE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO3NEQUM4QixpQkFBaUIsS0FBSyxDQUFDLENBQUM7SUFFNUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxJQUFBLHVDQUE2QixFQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztRQUMxRSxJQUFBLHdEQUFzQyxFQUNwQyx1QkFBdUIsRUFDdkIsYUFBYSxFQUNiLE9BQU8sQ0FDUjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxPQUFPO0lBQ1QsQ0FBQztJQUNELE1BQU0sSUFBQSx3QkFBUyxFQUNiO1FBQ0UsSUFBQSw0Q0FBa0IsRUFBQyxnQkFBZ0IsQ0FBQyxHQUFHLEtBQUs7UUFDNUMsR0FBRyxnQkFBZ0I7UUFDbkIsR0FBRyxXQUFXO0tBQ2YsRUFDRCxPQUFPLEVBQ1AsS0FBSyxDQUNOLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmltcG9ydCB7IENvbW1vbkJ1bmRsZU9wdGlvbnMsIGJ1bmRsZUZvck5vZGVSZXR1cm5Bc3NldEZpbGVzIH0gZnJvbSBcIi4vYnVuZGxlclwiO1xuaW1wb3J0IHsgc3RyaXBGaWxlRXh0ZW5zaW9uIH0gZnJvbSBcIi4vZmlsZV9leHRlbnNpb25fc3RyaXBwZXJcIjtcbmltcG9ydCB7IGNvcHlGaWxlcyB9IGZyb20gXCIuL2ZpbGVzX2NvcGllclwiO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9FTlRSSUVTX0NPTkZJR19GSUxFLFxuICBidW5kbGVXZWJBcHBzQW5kUmV0dXJuQnVuZGxlZFJlc291cmNlcyxcbn0gZnJvbSBcIi4vd2ViX2FwcF9idW5kbGVyXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidW5kbGVXZWJTZXJ2ZXIoXG4gIHNlcnZlclNvdXJjZUZpbGU6IHN0cmluZyxcbiAgc2VydmVyT3V0cHV0RmlsZTogc3RyaW5nLFxuICB3ZWJBcHBFbnRyaWVzQ29uZmlnRmlsZSA9IERFRkFVTFRfRU5UUklFU19DT05GSUdfRklMRSxcbiAgZnJvbURpciA9IFwiLlwiLFxuICB0b0RpciA9IGZyb21EaXIsXG4gIG9wdGlvbnM6IENvbW1vbkJ1bmRsZU9wdGlvbnMgPSB7fSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBsZXQgd2ViQXBwQmFzZURpciA9IHBhdGgucG9zaXguZGlybmFtZSh3ZWJBcHBFbnRyaWVzQ29uZmlnRmlsZSk7XG4gIGxldCBiYXNlRGlyRnJvbVNlcnZlciA9IHBhdGgucG9zaXgucmVsYXRpdmUoXG4gICAgcGF0aC5wb3NpeC5kaXJuYW1lKHNlcnZlck91dHB1dEZpbGUpLFxuICAgIHdlYkFwcEJhc2VEaXIsXG4gICk7XG4gIG9wdGlvbnMuaW5saW5lSnMgPSBvcHRpb25zLmlubGluZUpzID8/IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gIG9wdGlvbnMuaW5saW5lSnMucHVzaChgbGV0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcbmdsb2JhbFRoaXMuV0VCX0FQUF9CQVNFX0RJUiA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiJHtiYXNlRGlyRnJvbVNlcnZlcn1cIik7YCk7XG5cbiAgbGV0IFtzZXJ2ZXJBc3NldEZpbGVzLCB3ZWJBcHBGaWxlc10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgYnVuZGxlRm9yTm9kZVJldHVybkFzc2V0RmlsZXMoc2VydmVyU291cmNlRmlsZSwgc2VydmVyT3V0cHV0RmlsZSwgb3B0aW9ucyksXG4gICAgYnVuZGxlV2ViQXBwc0FuZFJldHVybkJ1bmRsZWRSZXNvdXJjZXMoXG4gICAgICB3ZWJBcHBFbnRyaWVzQ29uZmlnRmlsZSxcbiAgICAgIHdlYkFwcEJhc2VEaXIsXG4gICAgICBvcHRpb25zLFxuICAgICksXG4gIF0pO1xuXG4gIGlmIChwYXRoLnBvc2l4Lm5vcm1hbGl6ZShmcm9tRGlyKSA9PT0gcGF0aC5wb3NpeC5ub3JtYWxpemUodG9EaXIpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGF3YWl0IGNvcHlGaWxlcyhcbiAgICBbXG4gICAgICBzdHJpcEZpbGVFeHRlbnNpb24oc2VydmVyT3V0cHV0RmlsZSkgKyBcIi5qc1wiLFxuICAgICAgLi4uc2VydmVyQXNzZXRGaWxlcyxcbiAgICAgIC4uLndlYkFwcEZpbGVzLFxuICAgIF0sXG4gICAgZnJvbURpcixcbiAgICB0b0RpcixcbiAgKTtcbn1cbiJdfQ==