|
1 | 1 | /* |
2 | 2 | * SimpleToast - A small library for toasts |
3 | 3 | */ |
4 | | -(() => { |
| 4 | +((root, factory) => { |
| 5 | + // Do we care about frames? Until I get some tests in... no |
5 | 6 | if (window !== window.top) return; |
6 | | - const version = buildVersion(1, 10, 2); |
7 | | - if (window.SimpleToast) { |
8 | | - if (SimpleToast.version) { |
9 | | - if (SimpleToast.version >= version.number) return; |
10 | | - } |
11 | | - console.log(`SimpleToast(v${version.string}): Overriding SimpleToast(v${SimpleToast.versionString || '[unknown]'})`); |
12 | | - } else { |
13 | | - console.log(`SimpleToast(v${version.string}): Loading`); |
| 7 | + const boundToast = window.SimpleToast; |
| 8 | + const localToast = factory(); |
| 9 | + root.SimpleToast = localToast; |
| 10 | + console.log(`SimpleToast(v${localToast.versionString}): Loaded`); |
| 11 | + // Apply to window if SimpleToast doesn't currently exist |
| 12 | + if (root !== window && !(boundToast instanceof localToast)) { |
| 13 | + window.SimpleToast = localToast; |
| 14 | + console.log(`SimpleToast(v${localToast.versionString}): Publicized`); |
14 | 15 | } |
| 16 | +})(this, () => { |
| 17 | + const version = buildVersion(1, 11, 0); |
15 | 18 | const style = { |
16 | 19 | root: { |
17 | 20 | display: 'flex', |
|
240 | 243 | Toast.version = version.number; |
241 | 244 | Toast.versionString = version.string; |
242 | 245 | Toast.count = () => toasts.size; |
243 | | - window.SimpleToast = Toast; |
244 | 246 | function buildVersion(major, minor = 0, patch = 0) { |
245 | 247 | return { |
246 | 248 | string: `${major}.${minor}${patch ? `.${patch}` : ''}`, |
247 | 249 | number: major * 1000000000 + minor * 1000 + patch, |
248 | 250 | }; |
249 | 251 | } |
250 | | -})(); |
| 252 | + return Object.freeze(Toast); |
| 253 | +}); |
0 commit comments