Skip to content

Commit d921026

Browse files
committed
Bind to sandboxes, where possible
This allows multiple instances of SimpleToast to run in different environments, with each environment using the version intended! This has some downsides too, such as some environments not getting bug fixes they would have gotten from using the "best" version available
1 parent 8bf8193 commit d921026

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

simpletoast.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
/*
22
* SimpleToast - A small library for toasts
33
*/
4-
(() => {
4+
((root, factory) => {
5+
// Do we care about frames? Until I get some tests in... no
56
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`);
1415
}
16+
})(this, () => {
17+
const version = buildVersion(1, 11, 0);
1518
const style = {
1619
root: {
1720
display: 'flex',
@@ -240,11 +243,11 @@
240243
Toast.version = version.number;
241244
Toast.versionString = version.string;
242245
Toast.count = () => toasts.size;
243-
window.SimpleToast = Toast;
244246
function buildVersion(major, minor = 0, patch = 0) {
245247
return {
246248
string: `${major}.${minor}${patch ? `.${patch}` : ''}`,
247249
number: major * 1000000000 + minor * 1000 + patch,
248250
};
249251
}
250-
})();
252+
return Object.freeze(Toast);
253+
});

0 commit comments

Comments
 (0)