UNPKG

aurelia-pal-nodejs

Version:

The Node.js-specific implementation of Aurelia's platform abstraction layer.

97 lines (96 loc) 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.reset = exports.globalize = exports.initialize = exports.ensurePerformance = void 0; const aurelia_pal_1 = require("aurelia-pal"); const nodejs_pal_builder_1 = require("./nodejs-pal-builder"); var nodejs_pal_builder_2 = require("./nodejs-pal-builder"); Object.defineProperty(exports, "ensurePerformance", { enumerable: true, get: function () { return nodejs_pal_builder_2.ensurePerformance; } }); function initialize() { if (aurelia_pal_1.isInitialized) { return; } let pal = (0, nodejs_pal_builder_1.buildPal)(); (0, aurelia_pal_1.initializePAL)((platform, feature, dom) => { Object.assign(platform, pal.platform); Object.setPrototypeOf(platform, pal.platform.constructor.prototype); Object.assign(dom, pal.dom); Object.setPrototypeOf(dom, pal.dom.constructor.prototype); Object.assign(feature, pal.feature); Object.setPrototypeOf(feature, pal.feature.constructor.prototype); (function (global) { global.console = global.console || {}; let con = global.console; let prop; let method; let empty = {}; let dummy = function () { }; let properties = 'memory'.split(','); let methods = ('assert,clear,count,debug,dir,dirxml,error,exception,group,' + 'groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,' + 'show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn').split(','); while (prop = properties.pop()) if (!con[prop]) con[prop] = empty; while (method = methods.pop()) if (!con[method]) con[method] = dummy; })(platform.global); if (platform.global.console && typeof console.log === 'object') { if (typeof console['debug'] === 'undefined') { console['debug'] = this.bind(console['log'], console); } ['log', 'info', 'warn', 'error', 'assert', 'dir', 'clear', 'profile', 'profileEnd'].forEach(function (method) { console[method] = this.bind(console[method], console); }, Function.prototype.call); } Object.defineProperty(dom, 'title', { get: function () { return pal.global.document.title; }, set: function (value) { pal.global.document.title = value; } }); Object.defineProperty(dom, 'activeElement', { get: function () { return pal.global.document.activeElement; } }); Object.defineProperty(platform, 'XMLHttpRequest', { get: function () { return pal.global.XMLHttpRequest; } }); }); } exports.initialize = initialize; function createBrowserGlobals() { Object.getOwnPropertyNames(aurelia_pal_1.PLATFORM.global) .filter(prop => typeof global[prop] === 'undefined' && prop !== 'undefined') .forEach(prop => global[prop] = aurelia_pal_1.PLATFORM.global[prop]); } function globalize() { initialize(); createBrowserGlobals(); global.System = { import(moduleId) { try { return Promise.resolve(require(moduleId)); } catch (e) { return Promise.reject(e); } } }; global.PAL = { DOM: aurelia_pal_1.DOM, PLATFORM: aurelia_pal_1.PLATFORM, FEATURE: aurelia_pal_1.FEATURE }; return global; } exports.globalize = globalize; function reset(window) { if (window) { window.close(); } } exports.reset = reset;