aurelia-pal-browser
Version:
The browser-specific implementation of Aurelia's platform abstraction layer.
42 lines (36 loc) • 1.14 kB
JavaScript
import {initializePAL, isInitialized} from 'aurelia-pal';
import {_PLATFORM} from './platform';
import {_FEATURE} from './feature';
import {_DOM} from './dom';
// DOM polyfills
// Actually inlined by our build because of build/paths.js but `import "m"` is not properly removed!?
// import './console';
// import './custom-event';
// import './function-name';
// import './html-template-element';
// import './element-matches';
// import './class-list';
// import './performance';
/**
* Initializes the PAL with the Browser-targeted implementation.
*/
export function initialize(): void {
if (isInitialized) {
return;
}
initializePAL((platform, feature, dom) => {
Object.assign(platform, _PLATFORM);
Object.assign(feature, _FEATURE);
Object.assign(dom, _DOM);
Object.defineProperty(dom, 'title', {
get: () => document.title,
set: (value) => { document.title = value; }
});
Object.defineProperty(dom, 'activeElement', {
get: () => document.activeElement
});
Object.defineProperty(platform, 'XMLHttpRequest', {
get: () => platform.global.XMLHttpRequest
});
});
}