aboutsummaryrefslogtreecommitdiff
path: root/src/cli/bun_command.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/bun_command.zig')
-rw-r--r--src/cli/bun_command.zig242
1 files changed, 0 insertions, 242 deletions
diff --git a/src/cli/bun_command.zig b/src/cli/bun_command.zig
deleted file mode 100644
index 0a8894905..000000000
--- a/src/cli/bun_command.zig
+++ /dev/null
@@ -1,242 +0,0 @@
-const std = @import("std");
-const Command = @import("../cli.zig").Command;
-const bun = @import("bun");
-const string = bun.string;
-const Output = bun.Output;
-const Global = bun.Global;
-const Environment = bun.Environment;
-const strings = bun.strings;
-const MutableString = bun.MutableString;
-const stringZ = bun.stringZ;
-const default_allocator = bun.default_allocator;
-const C = bun.C;
-
-const lex = bun.js_lexer;
-const logger = @import("bun").logger;
-
-const options = @import("../options.zig");
-const js_parser = bun.js_parser;
-const json_parser = bun.JSON;
-const js_printer = bun.js_printer;
-const js_ast = bun.JSAst;
-const linker = @import("../linker.zig");
-
-const sync = @import("../sync.zig");
-const Api = @import("../api/schema.zig").Api;
-const resolve_path = @import("../resolver/resolve_path.zig");
-const configureTransformOptionsForBun = @import("../bun.js/config.zig").configureTransformOptionsForBun;
-const bundler = bun.bundler;
-const NodeModuleBundle = @import("../node_module_bundle.zig").NodeModuleBundle;
-const GenerateNodeModuleBundle = @import("../bundler/generate_node_modules_bundle.zig");
-const DotEnv = @import("../env_loader.zig");
-
-const fs = @import("../fs.zig");
-const Router = @import("../router.zig");
-
-var estimated_input_lines_of_code_: usize = undefined;
-const ServerBundleGeneratorThread = struct {
- inline fn _generate(
- logs: *logger.Log,
- env_loader_: *DotEnv.Loader,
- allocator_: std.mem.Allocator,
- ctx: Command.Context,
- _filepath: [*:0]const u8,
- server_conf: Api.LoadedFramework,
- route_conf_: ?Api.LoadedRouteConfig,
- router: ?Router,
- ) anyerror!void {
- var server_bundler = try bundler.Bundler.init(
- allocator_,
- logs,
- try configureTransformOptionsForBun(allocator_, ctx.args),
- null,
- env_loader_,
- );
- server_bundler.configureLinker();
- server_bundler.options.jsx.supports_fast_refresh = false;
-
- server_bundler.router = router;
- server_bundler.configureDefines() catch |err| {
- Output.prettyErrorln("<r><red>{s}<r> loading --define or .env values for node_modules.server.bun\n", .{@errorName(err)});
- return err;
- };
-
- if (ctx.debug.macros) |macros| {
- server_bundler.options.macro_remap = macros;
- }
-
- var estimated_input_lines_of_code: usize = 0;
- _ = try GenerateNodeModuleBundle.generate(
- &server_bundler,
- allocator_,
- server_conf,
- route_conf_,
- _filepath,
- &estimated_input_lines_of_code,
- ctx.debug.package_bundle_map,
- );
- std.mem.doNotOptimizeAway(&server_bundler);
- }
- pub fn generate(
- logs: *logger.Log,
- env_loader_: *DotEnv.Loader,
- ctx: Command.Context,
- _filepath: [*:0]const u8,
- server_conf: Api.LoadedFramework,
- route_conf_: ?Api.LoadedRouteConfig,
- router: ?Router,
- ) void {
- defer Output.flush();
-
- _generate(logs, env_loader_, default_allocator, ctx, _filepath, server_conf, route_conf_, router) catch return;
- }
-};
-
-pub const BunCommand = struct {
- pub fn exec(
- ctx: Command.Context,
- ) !void {
- Global.configureAllocator(.{ .long_running = true });
- var allocator = ctx.allocator;
- var log = ctx.log;
- estimated_input_lines_of_code_ = 0;
-
- var this_bundler = try bundler.Bundler.init(allocator, log, ctx.args, null, null);
- this_bundler.configureLinker();
- var filepath: [*:0]const u8 = "node_modules.bun";
- var server_bundle_filepath: [*:0]const u8 = "node_modules.server.bun";
-
- // This step is optional
- // If it fails for any reason, ignore it and continue bundling
- // This is partially a workaround for the 'error.MissingRoutesDir' error
- this_bundler.configureRouter(true) catch {
- this_bundler.options.routes.routes_enabled = false;
- this_bundler.options.framework = null;
- if (this_bundler.router) |*router| {
- router.config.routes_enabled = false;
- router.config.single_page_app_routing = false;
- router.config.static_dir_enabled = false;
- this_bundler.router = null;
- }
- this_bundler.options.node_modules_bundle = null;
- this_bundler.options.node_modules_bundle_pretty_path = "";
- this_bundler.options.node_modules_bundle_url = "";
- };
-
- if (ctx.debug.macros) |macros| {
- this_bundler.options.macro_remap = macros;
- }
-
- var loaded_route_config: ?Api.LoadedRouteConfig = brk: {
- if (this_bundler.options.routes.routes_enabled) {
- break :brk this_bundler.options.routes.toAPI();
- }
- break :brk null;
- };
- var loaded_framework: ?Api.LoadedFramework = brk: {
- if (this_bundler.options.framework) |*conf| {
- break :brk try conf.toAPI(allocator, this_bundler.fs.top_level_dir);
- }
- break :brk null;
- };
- var env_loader = this_bundler.env;
-
- if (ctx.debug.dump_environment_variables) {
- this_bundler.dumpEnvironmentVariables();
- return;
- }
-
- if (ctx.debug.dump_limits) {
- fs.FileSystem.printLimits();
- Global.exit(0);
- return;
- }
-
- var generated_server = false;
- if (this_bundler.options.framework) |*framework| {
- if (framework.toAPI(allocator, this_bundler.fs.top_level_dir) catch null) |_server_conf| {
- ServerBundleGeneratorThread.generate(
- log,
- env_loader,
- ctx,
- server_bundle_filepath,
- _server_conf,
- loaded_route_config,
- this_bundler.router,
- );
- generated_server = true;
-
- if (log.msgs.items.len > 0) {
- try log.printForLogLevel(Output.errorWriter());
- log.* = logger.Log.init(allocator);
- Output.flush();
- }
- }
- }
-
- {
-
- // Always generate the client-only bundle
- // we can revisit this decision if people ask
- var node_modules_ = try GenerateNodeModuleBundle.generate(
- &this_bundler,
- allocator,
- loaded_framework,
- loaded_route_config,
- filepath,
- &estimated_input_lines_of_code_,
- ctx.debug.package_bundle_map,
- );
-
- const estimated_input_lines_of_code = estimated_input_lines_of_code_;
-
- if (node_modules_) |node_modules| {
- if (log.errors > 0) {
- try log.printForLogLevel(Output.errorWriter());
- } else {
- var elapsed = @divTrunc(@truncate(i64, std.time.nanoTimestamp() - ctx.start_time), @as(i64, std.time.ns_per_ms));
- const print_summary = !(ctx.args.no_summary orelse false);
- if (print_summary) {
- var bundle = NodeModuleBundle.init(node_modules, allocator);
- bundle.printSummary();
- }
- const indent = comptime " ";
-
- switch (estimated_input_lines_of_code) {
- 0...99999 => {
- if (generated_server) {
- Output.prettyln(indent ++ "<d>{d:<5} LOC parsed x2", .{estimated_input_lines_of_code});
- } else {
- Output.prettyln(indent ++ "<d>{d:<5} LOC parsed", .{estimated_input_lines_of_code});
- }
- },
- else => {
- const formatted_loc: f32 = @floatCast(f32, @intToFloat(f64, estimated_input_lines_of_code) / 1000);
- if (generated_server) {
- Output.prettyln(indent ++ "<d>{d:<5.2}k LOC parsed x2", .{formatted_loc});
- } else {
- Output.prettyln(indent ++ "<d>{d:<5.2}k LOC parsed", .{
- formatted_loc,
- });
- }
- },
- }
-
- Output.prettyln(indent ++ "<d>{d:6}ms elapsed", .{@intCast(u32, elapsed)});
-
- if (generated_server) {
- Output.prettyln(indent ++ "<r>Saved to ./{s}, ./{s}", .{ filepath, server_bundle_filepath });
- } else {
- Output.prettyln(indent ++ "<r>Saved to ./{s}", .{filepath});
- }
-
- Output.flush();
-
- try log.printForLogLevel(Output.errorWriter());
- }
- } else {
- try log.printForLogLevel(Output.errorWriter());
- }
- }
- }
-};