How would one abstract away the usage of browser's window
object when using the Aurelia framework? I would like to avoid direct dependency on the browser when using functionality such as setInterval
or addEventListener
for example.
Aurelia has something called Platform Abstraction Library which in theory should provide the functionality I am looking for. However, I could not find any documentation about it at the time of writing this question.
How would one abstract away the usage of browser's window
object when using the Aurelia framework? I would like to avoid direct dependency on the browser when using functionality such as setInterval
or addEventListener
for example.
Aurelia has something called Platform Abstraction Library which in theory should provide the functionality I am looking for. However, I could not find any documentation about it at the time of writing this question.
Share Improve this question asked Jan 17, 2016 at 18:04 Jaanus VarusJaanus Varus 3,5833 gold badges33 silver badges52 bronze badges1 Answer
Reset to default 11Few examples:
import {DOM, PLATFORM, FEATURE} from 'aurelia-pal';
PLATFORM.addEventListener('click', e => ...);
PLATFORM.requestAnimationFrame(() => ...);
let event = DOM.createCustomEvent('foo', { bubbles: true });
DOM.dispatchEvent(event);
let element = DOM.createElement('div');
if (FEATURE.shadowDOM && FEATURE.scopedCSS && FEATURE.htmlTemplateElement) {
...
}
There's no setTimeout
/ setInterval
in the PAL- I think because aurelia doesn't use I've added an issue to get these added.setTimeout
.