summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-05-28 19:01:51 +0200
committerJo-Philipp Wich <jo@mein.io>2019-07-07 15:36:25 +0200
commit5950b87dacf07eebbc58beb9a21781a8abc958e4 (patch)
tree433105d1793c809584a6cc87763b124153644d2c
parent6edc057451ebade744aa62cca64aa685eb6021ce (diff)
luci-base: luci.js: make require() failures catcheable
Refactor L.require() to use L.raise() instead of L.error() to signal class loading failures. This allows callers to handle class loading errors in a graceful manner. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--modules/luci-base/htdocs/luci-static/resources/luci.js10
1 files changed, 4 insertions, 6 deletions
diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js
index 6332790c7..853bbfc05 100644
--- a/modules/luci-base/htdocs/luci-static/resources/luci.js
+++ b/modules/luci-base/htdocs/luci-static/resources/luci.js
@@ -658,7 +658,7 @@
if (classes[name] != null) {
/* Circular dependency */
if (from.indexOf(name) != -1)
- L.error('DependencyError',
+ L.raise('DependencyError',
'Circular dependency: class "%s" depends on "%s"',
name, from.join('" which depends on "'));
@@ -670,7 +670,7 @@
var compileClass = function(res) {
if (!res.ok)
- L.error('NetworkError',
+ L.raise('NetworkError',
'HTTP error %d while loading class file "%s"', res.status, url);
var source = res.text(),
@@ -721,7 +721,7 @@
.format(args, source, res.url));
}
catch (error) {
- L.error('SyntaxError', '%s\n in %s:%s',
+ L.raise('SyntaxError', '%s\n in %s:%s',
error.message, res.url, error.lineNumber || '?');
}
@@ -751,9 +751,7 @@
};
/* Request class file */
- classes[name] = Request.get(url, { cache: true })
- .then(compileClass)
- .catch(L.error);
+ classes[name] = Request.get(url, { cache: true }).then(compileClass);
return classes[name];
},