import util from './util.js';
import Regexper from './regexper.js';
import Parser from './parser/javascript.js';
import _ from 'lodash';
(function() {
This file contains code to start up pages on the site, and other code that is not directly related to parsing and display of regular expressions.
Since the code in this is executed immediately, it is all but impossible to test. Therefore, this code is kept as simple as possible to reduce the need to run it through automated tests.
import util from './util.js';
import Regexper from './regexper.js';
import Parser from './parser/javascript.js';
import _ from 'lodash';
(function() {
Initialize the main page of the site. Functionality is kept in the Regexper class.
if (document.body.querySelector('#content .application')) {
let regexper = new Regexper(document.body);
regexper.detectBuggyHash();
regexper.bindListeners();
util.tick().then(() => {
window.dispatchEvent(util.customEvent('hashchange'));
});
}
Initialize other pages on the site (specifically the documentation page).
Any element with a data-expr
attribute will contain a rendering of the
provided regular expression.
_.each(document.querySelectorAll('[data-expr]'), element => {
new Parser(element, { keepContent: true })
.parse(element.getAttribute('data-expr'))
.then(parser => {
parser.render();
})
.catch(util.exposeError);
});
}());