From f45622f316e495b07548378e70c82a929da982de Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Mon, 25 Nov 2024 17:21:07 +0000 Subject: [PATCH 1/4] Logger fallback to console.error if process._rawDebug is missing Allows the extension to run in Deno. --- source/logger.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/source/logger.c b/source/logger.c index 5d6ed9ec6..0727e100f 100644 --- a/source/logger.c +++ b/source/logger.c @@ -258,6 +258,21 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { napi_value node_rawdebug = NULL; AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_process, "_rawDebug", &node_rawdebug)); + napi_valuetype rawdebug_type; + AWS_NAPI_ENSURE(env, napi_typeof(env, node_rawdebug, &rawdebug_type)); + + /* process._rawDebug is specific to NodeJS and may not exist in + other environments like Deno, fall back to console.error */ + if (rawdebug_type == napi_undefined) { + napi_value node_console = NULL; + AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_global, "console", &node_console)); + + napi_value node_error = NULL; + AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_console, "error", &node_error)); + + node_rawdebug = node_error; + } + napi_value resource_name = NULL; AWS_NAPI_ENSURE(env, napi_create_string_utf8(env, "aws_logger", 10, &resource_name)); From 07234d279fe0173ce4b5008993f632531dd2a5d8 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Khan Date: Mon, 16 Dec 2024 09:09:48 -0800 Subject: [PATCH 2/4] lint --- source/logger.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/logger.c b/source/logger.c index 0727e100f..a9e6a4a48 100644 --- a/source/logger.c +++ b/source/logger.c @@ -264,13 +264,13 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { /* process._rawDebug is specific to NodeJS and may not exist in other environments like Deno, fall back to console.error */ if (rawdebug_type == napi_undefined) { - napi_value node_console = NULL; - AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_global, "console", &node_console)); + napi_value node_console = NULL; + AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_global, "console", &node_console)); - napi_value node_error = NULL; - AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_console, "error", &node_error)); + napi_value node_error = NULL; + AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_console, "error", &node_error)); - node_rawdebug = node_error; + node_rawdebug = node_error; } napi_value resource_name = NULL; From ba26ae06b4319b71910bf4bc558fdaf943dab0b9 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Khan Date: Mon, 16 Dec 2024 09:47:10 -0800 Subject: [PATCH 3/4] try always using console.error --- source/logger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/logger.c b/source/logger.c index a9e6a4a48..6909ac5f3 100644 --- a/source/logger.c +++ b/source/logger.c @@ -263,7 +263,7 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { /* process._rawDebug is specific to NodeJS and may not exist in other environments like Deno, fall back to console.error */ - if (rawdebug_type == napi_undefined) { + //if (rawdebug_type == napi_undefined) { napi_value node_console = NULL; AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_global, "console", &node_console)); @@ -271,7 +271,7 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_console, "error", &node_error)); node_rawdebug = node_error; - } + //} napi_value resource_name = NULL; AWS_NAPI_ENSURE(env, napi_create_string_utf8(env, "aws_logger", 10, &resource_name)); From 2cbc5d7a76f5d19857ae44cf79b2c8205997c4e8 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Khan Date: Tue, 17 Dec 2024 12:03:47 -0800 Subject: [PATCH 4/4] undo temp change --- source/logger.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/logger.c b/source/logger.c index 6909ac5f3..a9e6a4a48 100644 --- a/source/logger.c +++ b/source/logger.c @@ -263,7 +263,7 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { /* process._rawDebug is specific to NodeJS and may not exist in other environments like Deno, fall back to console.error */ - //if (rawdebug_type == napi_undefined) { + if (rawdebug_type == napi_undefined) { napi_value node_console = NULL; AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_global, "console", &node_console)); @@ -271,7 +271,7 @@ void s_threadsafe_log_create(struct aws_napi_logger_ctx *ctx, napi_env env) { AWS_NAPI_ENSURE(env, napi_get_named_property(env, node_console, "error", &node_error)); node_rawdebug = node_error; - //} + } napi_value resource_name = NULL; AWS_NAPI_ENSURE(env, napi_create_string_utf8(env, "aws_logger", 10, &resource_name));