File size: 2,936 Bytes
6efa67a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | /**
* 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';
import { toggle as slideToggle } from 'slidetoggle';
import chalk from 'chalk';
import yaml from 'yaml';
import * as chevrotain from 'chevrotain';
/**
* 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,
slideToggle,
chalk,
yaml,
chevrotain,
};
export {
lodash,
Fuse,
DOMPurify,
hljs,
localforage,
Handlebars,
css,
Bowser,
DiffMatchPatch,
Readability,
isProbablyReaderable,
SVGInject,
showdown,
moment,
seedrandom,
Popper,
droll,
morphdom,
slideToggle,
chalk,
yaml,
chevrotain,
};
|