From ea9b2a7c6ec731dbf1637ccb68a4e9ae2a2f562a Mon Sep 17 00:00:00 2001 From: Dmitry Volyntsev Date: Fri, 18 Oct 2024 18:24:49 -0700 Subject: [PATCH] Parser: improved message when a module cannot be loaded. This is less confusing because it covers more cases, including when there are not enough file access rights. --- src/njs_module.c | 2 +- src/njs_parser.c | 7 ++++--- src/test/njs_unit_test.c | 4 ++-- test/shell_test_njs.exp | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/njs_module.c b/src/njs_module.c index 859d96a82..5d9c96ae6 100644 --- a/src/njs_module.c +++ b/src/njs_module.c @@ -148,7 +148,7 @@ njs_module_require(njs_vm_t *vm, njs_value_t *args, njs_uint_t nargs, module = njs_module_find(vm, &name, 0); if (njs_slow_path(module == NULL)) { - njs_error(vm, "Cannot find module \"%V\"", &name); + njs_error(vm, "Cannot load module \"%V\"", &name); return NJS_ERROR; } diff --git a/src/njs_parser.c b/src/njs_parser.c index 7eb6292e4..dbbbae8e6 100644 --- a/src/njs_parser.c +++ b/src/njs_parser.c @@ -8114,7 +8114,7 @@ njs_parser_module(njs_parser_t *parser, njs_str_t *name) vm = parser->vm; if (name->length == 0) { - njs_parser_syntax_error(parser, "Cannot find module \"%V\"", name); + njs_parser_syntax_error(parser, "Cannot load module \"%V\"", name); return NULL; } @@ -8124,13 +8124,14 @@ njs_parser_module(njs_parser_t *parser, njs_str_t *name) } if (vm->module_loader == NULL) { - njs_parser_syntax_error(parser, "Cannot load module \"%V\"", name); + njs_parser_syntax_error(parser, + "Module loader callback is not provided"); return NULL; } module = vm->module_loader(vm, vm->module_loader_opaque, name); if (module == NULL) { - njs_parser_syntax_error(parser, "Cannot find module \"%V\"", name); + njs_parser_syntax_error(parser, "Cannot load module \"%V\"", name); return NULL; } diff --git a/src/test/njs_unit_test.c b/src/test/njs_unit_test.c index c52753a7c..c5b0edca5 100644 --- a/src/test/njs_unit_test.c +++ b/src/test/njs_unit_test.c @@ -18975,7 +18975,7 @@ static njs_unit_test_t njs_test[] = /* require(). */ { njs_str("require('unknown_module')"), - njs_str("Error: Cannot find module \"unknown_module\"") }, + njs_str("Error: Cannot load module \"unknown_module\"") }, { njs_str("require()"), njs_str("TypeError: missing path") }, @@ -19045,7 +19045,7 @@ static njs_unit_test_t njs_test[] = njs_str("SyntaxError: Unexpected token \"{\" in 1") }, { njs_str("import x from ''"), - njs_str("SyntaxError: Cannot find module \"\" in 1") }, + njs_str("SyntaxError: Cannot load module \"\" in 1") }, { njs_str("export"), njs_str("SyntaxError: Illegal export statement in 1") }, diff --git a/test/shell_test_njs.exp b/test/shell_test_njs.exp index 52ce48861..7fff281e9 100644 --- a/test/shell_test_njs.exp +++ b/test/shell_test_njs.exp @@ -173,13 +173,13 @@ njs_test { # quiet mode njs_run {"-q" "test/js/import_chain.t.js"} \ - "SyntaxError: Cannot find module \"lib2.js\" in 7" + "SyntaxError: Cannot load module \"lib2.js\" in 7" # sandboxing njs_test { {"var fs = require('fs')\r\n" - "Error: Cannot find module \"fs\"\r\n"} + "Error: Cannot load module \"fs\"\r\n"} } "-s" njs_test {