New subcommand: bun run run scripts in package.json really fast

This commit is contained in:
Jarred Sumner
2021-10-26 05:18:21 -07:00
parent e69f8c36d2
commit 0541cff2ad
7 changed files with 761 additions and 7 deletions

View File

@@ -147,6 +147,7 @@ pub const Arguments = struct {
clap.parseParam("-l, --loader <STR>... Parse files with .ext:loader, e.g. --loader .js:jsx. Valid loaders: jsx, js, json, tsx, ts, css") catch unreachable,
clap.parseParam("--origin <STR> Rewrite import paths to start with --origin. Default: \"\"") catch unreachable,
clap.parseParam("--port <STR> Port to serve Bun's dev server on. Default: \"/3000\"") catch unreachable,
clap.parseParam("--silent Don't repeat the command for bun run") catch unreachable,
// clap.parseParam("-o, --outdir <STR> Save output to directory (default: \"out\" if none provided and multiple entry points passed)") catch unreachable,
// clap.parseParam("-r, --resolve <STR> Determine import/require behavior. \"disable\" ignores. \"dev\" bundles node_modules and builds everything else as independent entry points") catch unreachable,
@@ -223,6 +224,8 @@ pub const Arguments = struct {
.disable_hmr = args.flag("--disable-hmr"),
};
ctx.positionals = args.positionals();
ctx.debug.silent = args.flag("--silent");
if (opts.port != null and opts.origin == null) {
opts.origin = try std.fmt.allocPrint(allocator, "http://localhost:{d}/", .{opts.port.?});
}
@@ -522,6 +525,7 @@ pub const Command = struct {
pub const DebugOptions = struct {
dump_environment_variables: bool = false,
fallback_only: bool = false,
silent: bool = false,
};
pub const Context = struct {
@@ -529,6 +533,7 @@ pub const Command = struct {
args: Api.TransformOptions = std.mem.zeroes(Api.TransformOptions),
log: *logger.Log,
allocator: *std.mem.Allocator,
positionals: []const string = &[_]string{},
debug: DebugOptions = DebugOptions{},
@@ -644,8 +649,9 @@ pub const Command = struct {
},
.RunCommand => {
const ctx = try Command.Context.create(allocator, log, .RunCommand);
try RunCommand.exec(ctx);
if (ctx.positionals.len > 0) {
_ = try RunCommand.exec(ctx, false, true);
}
},
.AutoCommand => {
var ctx = Command.Context.create(allocator, log, .AutoCommand) catch |e| {
@@ -667,6 +673,12 @@ pub const Command = struct {
return;
}
if (ctx.positionals.len > 0 and (std.fs.path.extension(ctx.positionals[0]).len == 0)) {
if (try RunCommand.exec(ctx, true, false)) {
return;
}
}
if (FeatureFlags.dev_only) {
try DevCommand.exec(ctx);
} else {