diff --git a/src/bun.js/bindings/BunProcess.cpp b/src/bun.js/bindings/BunProcess.cpp index 874c6cbadf..b1f7f74bad 100644 --- a/src/bun.js/bindings/BunProcess.cpp +++ b/src/bun.js/bindings/BunProcess.cpp @@ -1411,6 +1411,8 @@ Process::~Process() { } +extern "C" bool Bun__NODE_NO_WARNINGS(); + JSC_DEFINE_HOST_FUNCTION(jsFunction_emitWarning, (JSC::JSGlobalObject * lexicalGlobalObject, CallFrame* callFrame)) { auto* globalObject = defaultGlobalObject(lexicalGlobalObject); @@ -1425,11 +1427,11 @@ JSC_DEFINE_HOST_FUNCTION(jsFunction_emitWarning, (JSC::JSGlobalObject * lexicalG args.append(value); process->wrapped().emit(ident, args); return JSValue::encode(jsUndefined()); + } else if (!Bun__NODE_NO_WARNINGS()) { + auto jsArgs = JSValue::encode(value); + Bun__ConsoleObject__messageWithTypeAndLevel(reinterpret_cast(globalObject->consoleClient().get())->m_client, static_cast(MessageType::Log), static_cast(MessageLevel::Warning), globalObject, &jsArgs, 1); + RETURN_IF_EXCEPTION(scope, {}); } - - auto jsArgs = JSValue::encode(value); - Bun__ConsoleObject__messageWithTypeAndLevel(reinterpret_cast(globalObject->consoleClient().get())->m_client, static_cast(MessageType::Log), static_cast(MessageLevel::Warning), globalObject, &jsArgs, 1); - RETURN_IF_EXCEPTION(scope, {}); return JSValue::encode(jsUndefined()); } diff --git a/src/bun.js/node/node_process.zig b/src/bun.js/node/node_process.zig index 849778a302..e46dec8270 100644 --- a/src/bun.js/node/node_process.zig +++ b/src/bun.js/node/node_process.zig @@ -312,6 +312,10 @@ comptime { } } +pub export fn Bun__NODE_NO_WARNINGS() callconv(.C) bool { + return bun.getRuntimeFeatureFlag(.NODE_NO_WARNINGS); +} + pub export const Bun__version: [*:0]const u8 = "v" ++ bun.Global.package_json_version; pub export const Bun__version_with_sha: [*:0]const u8 = "v" ++ bun.Global.package_json_version_with_sha; pub export const Bun__versions_boringssl: [*:0]const u8 = bun.Global.versions.boringssl; diff --git a/src/feature_flags.zig b/src/feature_flags.zig index c69577d00e..8521372fcd 100644 --- a/src/feature_flags.zig +++ b/src/feature_flags.zig @@ -36,6 +36,7 @@ pub const RuntimeFeatureFlag = enum { BUN_INTERNAL_BUNX_INSTALL, BUN_NO_CODESIGN_MACHO_BINARY, BUN_TRACE, + NODE_NO_WARNINGS, }; /// Enable breaking changes for the next major release of Bun diff --git a/test/harness.ts b/test/harness.ts index 5512086ef7..5bc164a73e 100644 --- a/test/harness.ts +++ b/test/harness.ts @@ -1555,6 +1555,10 @@ export class VerdaccioRegistry { silent, // Prefer using a release build of Bun since it's faster execPath: isCI ? bunExe() : Bun.which("bun") || bunExe(), + env: { + ...(bunEnv as any), + NODE_NO_WARNINGS: "1", + }, }); this.process.stderr?.on("data", data => {