mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #1237 from NativeScript/fetch-xhr-lazy-load
fetch and xhr lazy loaded into global context
This commit is contained in:
@@ -5,6 +5,34 @@ global.moduleMerge = function (sourceExports: any, destExports: any) {
|
|||||||
destExports[key] = sourceExports[key];
|
destExports[key] = sourceExports[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function registerOnGlobalContext(name, module) {
|
||||||
|
Object.defineProperty(global, name, {
|
||||||
|
get: function () {
|
||||||
|
// We do not need to cache require() call since it is already cached in the runtime.
|
||||||
|
let m = require(module);
|
||||||
|
global.moduleMerge(m, global);
|
||||||
|
|
||||||
|
// Redefine the property to make sure the above code is executed only once.
|
||||||
|
Object.defineProperty(this, name, { value: m[name], configurable: true, writable: true });
|
||||||
|
|
||||||
|
return m[name];
|
||||||
|
},
|
||||||
|
configurable: true
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
registerOnGlobalContext("setTimeout", "timer");
|
||||||
|
registerOnGlobalContext("clearTimeout", "timer");
|
||||||
|
registerOnGlobalContext("setInterval", "timer");
|
||||||
|
registerOnGlobalContext("clearInterval", "timer");
|
||||||
|
registerOnGlobalContext("alert", "ui/dialogs");
|
||||||
|
registerOnGlobalContext("confirm", "ui/dialogs");
|
||||||
|
registerOnGlobalContext("prompt", "ui/dialogs");
|
||||||
|
registerOnGlobalContext("XMLHttpRequest", "../xhr/xhr");
|
||||||
|
registerOnGlobalContext("FormData", "../xhr/xhr");
|
||||||
|
registerOnGlobalContext("fetch", "fetch");
|
||||||
|
|
||||||
import platform = require("platform");
|
import platform = require("platform");
|
||||||
import consoleModule = require("console");
|
import consoleModule = require("console");
|
||||||
|
|
||||||
@@ -16,59 +44,6 @@ if (platform.device.os === platform.platformNames.android) {
|
|||||||
global.console.dump = function (args) { c.dump(args); };
|
global.console.dump = function (args) { c.dump(args); };
|
||||||
}
|
}
|
||||||
|
|
||||||
var tm;
|
|
||||||
function getTimer() {
|
|
||||||
if (!tm) {
|
|
||||||
tm = require("timer");
|
|
||||||
}
|
|
||||||
|
|
||||||
return tm;
|
|
||||||
}
|
|
||||||
|
|
||||||
global.setTimeout = function (callback, milliseconds) {
|
|
||||||
return getTimer().setTimeout(callback, milliseconds);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.clearTimeout = function (id) {
|
|
||||||
getTimer().clearTimeout(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.setInterval = function (callback, milliseconds) {
|
|
||||||
return getTimer().setInterval(callback, milliseconds);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.clearInterval = function (id) {
|
|
||||||
getTimer().clearInterval(id);
|
|
||||||
}
|
|
||||||
|
|
||||||
var dm;
|
|
||||||
function getDialogs() {
|
|
||||||
if (!dm) {
|
|
||||||
dm = require("ui/dialogs");
|
|
||||||
}
|
|
||||||
|
|
||||||
return dm;
|
|
||||||
}
|
|
||||||
|
|
||||||
global.alert = function (args) {
|
|
||||||
return getDialogs().alert(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.confirm = function (args) {
|
|
||||||
return getDialogs().confirm(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
global.prompt = function (args) {
|
|
||||||
return getDialogs().prompt(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
var xhr = require("../xhr/xhr");
|
|
||||||
global.moduleMerge(xhr, global);
|
|
||||||
|
|
||||||
// Fetch module should be after XMLHttpRequest/FormData!
|
|
||||||
var fetchModule = require("fetch");
|
|
||||||
global.moduleMerge(fetchModule, global);
|
|
||||||
|
|
||||||
if (typeof global.__decorate !== "function") {
|
if (typeof global.__decorate !== "function") {
|
||||||
global.__decorate = function (decorators, target, key, desc) {
|
global.__decorate = function (decorators, target, key, desc) {
|
||||||
if (typeof global.Reflect === "object" && typeof global.Reflect.decorate === "function") {
|
if (typeof global.Reflect === "object" && typeof global.Reflect.decorate === "function") {
|
||||||
|
|||||||
Reference in New Issue
Block a user