summaryrefslogtreecommitdiffstats
path: root/devtools/client/jsonview/viewer-config.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/jsonview/viewer-config.js')
-rw-r--r--devtools/client/jsonview/viewer-config.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/devtools/client/jsonview/viewer-config.js b/devtools/client/jsonview/viewer-config.js
new file mode 100644
index 0000000000..6ab0de0a8f
--- /dev/null
+++ b/devtools/client/jsonview/viewer-config.js
@@ -0,0 +1,46 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/* global requirejs */
+
+"use strict";
+
+// Send readyState change notification event to the window. It's useful for tests.
+JSONView.readyState = "loading";
+window.dispatchEvent(new CustomEvent("AppReadyStateChange"));
+
+// Services is required in the Reps bundle but can't be loaded in the json-viewer.
+// Since it's only used for the ObjectInspector, that the json-viewer does not use, we
+// can mock it. The mock should be removed when we un-bundle reps, (i.e. land individual
+// files instead of a big bundle).
+define("ServicesMock", () => ({ appinfo: {} }));
+// custom-formatter is required in the Reps bundle but 1. we don't need in the JSON Viewer,
+// and 2. it causes issues as this requires the ObjectInspector, which can't be loaded
+// via requirejs.
+define("CustomFormatterMock", () => ({}));
+
+/**
+ * RequireJS configuration for JSON Viewer.
+ *
+ * React module ID is using exactly the same (relative) path as the rest
+ * of the code base, so it's consistent and modules can be easily reused.
+ */
+require.config({
+ baseUrl: "resource://devtools-client-jsonview/",
+ paths: {
+ "devtools/client/jsonview": "resource://devtools-client-jsonview",
+ "devtools/client/shared": "resource://devtools-client-shared",
+ "devtools/shared": "resource://devtools/shared",
+ Services: "resource://devtools-client-shared/vendor/react-prop-types",
+ },
+ map: {
+ "*": {
+ Services: "ServicesMock",
+ "devtools/client/shared/components/reps/reps/custom-formatter":
+ "CustomFormatterMock",
+ },
+ },
+});
+
+// Load the main panel module
+requirejs(["json-viewer"]);