From 8a451e0bfc061f64a74926b33374b0558ea16dff Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov Date: Fri, 7 May 2021 12:29:10 -0400 Subject: [PATCH] Fix exception in `bootExtensions` Frontend extenders exist in a weird state of limbo, where they are technically defined, but aren't used or tested at all. In da5db714c2ba49f789bea68971a2b46c29ff6b0a, we shifted from passing `extension.extend` to `flattenDeep` to calling `flat` on `extension.extend`. If an extension doesn't define extenders (as is the case for most extensions), the change breaks the forum. All we do here is add a null check. --- js/src/common/Application.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/js/src/common/Application.js b/js/src/common/Application.js index 3f160bcbd0..94e631cf29 100644 --- a/js/src/common/Application.js +++ b/js/src/common/Application.js @@ -179,10 +179,14 @@ export default class Application { this.initialRoute = window.location.href; } + // TODO: This entire system needs a do-over for v2 bootExtensions(extensions) { Object.keys(extensions).forEach((name) => { const extension = extensions[name]; + // If an extension doesn't define extenders, there's nothing more to do here. + if (!extension.extend) return; + const extenders = extension.extend.flat(Infinity); for (const extender of extenders) {