
As part of the upgrade process, we need to rework the tracing instrumentation. Now, we are just wrapping all async functions in a new sentry transaction, which will automatically end once the function returns. Further, the structure of the Sentry packages got reworked, so that we only need a single package by now. This removes the need to group dependabot updates. Co-authored-by: Jan Graichen <jgraichen@altimos.de>
87 lines
3.2 KiB
JavaScript
87 lines
3.2 KiB
JavaScript
/* eslint no-console:0 */
|
|
// This file is automatically compiled by Webpack, along with any other files
|
|
// present in this directory. You're encouraged to place your actual application logic in
|
|
// a relevant structure within app/javascript and only use these pack files to reference
|
|
// that code so it'll be compiled.
|
|
//
|
|
// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate
|
|
// layout file, like app/views/layouts/application.html.slim
|
|
|
|
// JS
|
|
import 'jquery';
|
|
import 'jquery-ujs'
|
|
import * as bootstrap from 'bootstrap/dist/js/bootstrap.bundle';
|
|
import 'chosen-js/chosen.jquery';
|
|
import 'jstree';
|
|
import * as _ from 'underscore';
|
|
import * as d3 from 'd3';
|
|
import * as Sentry from '@sentry/browser';
|
|
import 'sorttable';
|
|
window.bootstrap = bootstrap; // Publish bootstrap in global namespace
|
|
window._ = _; // Publish underscore's `_` in global namespace
|
|
window.d3 = d3; // Publish d3 in global namespace
|
|
window.Sentry = Sentry; // Publish sentry in global namespace
|
|
window.SentryIntegrations = function() { // Publish sentry integration in global namespace
|
|
return [
|
|
Sentry.browserProfilingIntegration(),
|
|
Sentry.browserTracingIntegration(),
|
|
Sentry.extraErrorDataIntegration(),
|
|
Sentry.httpClientIntegration(),
|
|
Sentry.replayIntegration(),
|
|
Sentry.reportingObserverIntegration(),
|
|
Sentry.sessionTimingIntegration(),
|
|
]
|
|
};
|
|
|
|
// CSS
|
|
import 'chosen-js/chosen.css';
|
|
import 'chosen-dark.scss';
|
|
import 'jstree/dist/themes/default/style.min.css';
|
|
import 'jstree/dist/themes/default-dark/style.min.css';
|
|
|
|
// custom jquery-ui library for minimal mouse interaction support
|
|
import 'jquery-ui/ui/widget'
|
|
import 'jquery-ui/ui/data'
|
|
import 'jquery-ui/ui/disable-selection'
|
|
import 'jquery-ui/ui/scroll-parent'
|
|
import 'jquery-ui/ui/widgets/draggable'
|
|
import 'jquery-ui/ui/widgets/droppable'
|
|
import 'jquery-ui/ui/widgets/resizable'
|
|
import 'jquery-ui/ui/widgets/selectable'
|
|
import 'jquery-ui/ui/widgets/sortable'
|
|
import 'jquery-ui/themes/base/draggable.css'
|
|
import 'jquery-ui/themes/base/core.css'
|
|
import 'jquery-ui/themes/base/resizable.css'
|
|
import 'jquery-ui/themes/base/selectable.css'
|
|
import 'jquery-ui/themes/base/sortable.css'
|
|
|
|
|
|
// I18n locales
|
|
import { I18n } from "i18n-js";
|
|
import locales from "../../tmp/locales.json";
|
|
|
|
// Fetch user locale from html#lang.
|
|
// This value is being set on `app/views/layouts/application.html.slim` and
|
|
// is inferred from `ACCEPT-LANGUAGE` header.
|
|
const userLocale = document.documentElement.lang;
|
|
|
|
export const i18n = new I18n();
|
|
i18n.store(locales);
|
|
i18n.defaultLocale = "en";
|
|
i18n.enableFallback = true;
|
|
i18n.locale = userLocale;
|
|
window.I18n = i18n;
|
|
|
|
// Routes
|
|
import * as Routes from 'routes.js.erb';
|
|
window.Routes = Routes;
|
|
|
|
// ACE editor
|
|
import ace from 'ace-builds';
|
|
import "ace-builds/webpack-resolver"; // Enable webpack resolver, requires `file-loader` to be installed
|
|
// Enable ACE editor extensions. See https://github.com/ajaxorg/ace/wiki/Extensions
|
|
import "ace-builds/src-noconflict/ext-language_tools"; // Enable autocompletion
|
|
import "ace-builds/src-noconflict/ext-modelist"; // Enable language mode detection
|
|
ace.config.set("useStrictCSP", true); // Enable strict CSP mode
|
|
window.ace = ace; // Publish ace in global namespace
|