/** * Add all the libraries that you want to expose to the client here. * They are bundled and exposed by Webpack in the /lib.js file. */ import lodash from 'lodash'; import Fuse from 'fuse.js'; import DOMPurify from 'dompurify'; import hljs from 'highlight.js'; import localforage from 'localforage'; import Handlebars from 'handlebars'; import css from '@adobe/css-tools'; import Bowser from 'bowser'; import DiffMatchPatch from 'diff-match-patch'; import { isProbablyReaderable, Readability } from '@mozilla/readability'; import SVGInject from '@iconfu/svg-inject'; import showdown from 'showdown'; import moment from 'moment'; import seedrandom from 'seedrandom'; import * as Popper from '@popperjs/core'; import droll from 'droll'; import morphdom from 'morphdom'; /** * Expose the libraries to the 'window' object. * Needed for compatibility with old extensions. * Note: New extensions are encouraged to import the libraries directly from lib.js. */ export function initLibraryShims() { if (!window) { return; } if (!('Fuse' in window)) { // @ts-ignore window.Fuse = Fuse; } if (!('DOMPurify' in window)) { // @ts-ignore window.DOMPurify = DOMPurify; } if (!('hljs' in window)) { // @ts-ignore window.hljs = hljs; } if (!('localforage' in window)) { // @ts-ignore window.localforage = localforage; } if (!('Handlebars' in window)) { // @ts-ignore window.Handlebars = Handlebars; } if (!('diff_match_patch' in window)) { // @ts-ignore window.diff_match_patch = DiffMatchPatch; } if (!('SVGInject' in window)) { // @ts-ignore window.SVGInject = SVGInject; } if (!('showdown' in window)) { // @ts-ignore window.showdown = showdown; } if (!('moment' in window)) { // @ts-ignore window.moment = moment; } if (!('Popper' in window)) { // @ts-ignore window.Popper = Popper; } if (!('droll' in window)) { // @ts-ignore window.droll = droll; } } export default { lodash, Fuse, DOMPurify, hljs, localforage, Handlebars, css, Bowser, DiffMatchPatch, Readability, isProbablyReaderable, SVGInject, showdown, moment, seedrandom, Popper, droll, morphdom, }; export { lodash, Fuse, DOMPurify, hljs, localforage, Handlebars, css, Bowser, DiffMatchPatch, Readability, isProbablyReaderable, SVGInject, showdown, moment, seedrandom, Popper, droll, morphdom, };