.then(function (definition) { delete definitions[hash][module.id]; for (var name in definition) { module[name] = definition[name]; } module.location = location; module.directory = URL.resolve(location, "."); });
Require.getLocation = function() { if (!location) { var base = document.querySelector("head > base"); if (base) { location = base.href; } else { location = window.location; } location = URL.resolve(location, "."); } return location; };
Require.loadPackageDescription = function (dependency, config) { if (dependency.hash) { // use script injection var definition = getDefinition(dependency.hash, "package.json").promise; var location = URL.resolve(dependency.location, "package.json.load.js"); loadIfNotPreloaded(location, definition, config.preloaded); return definition.get("exports"); } else { // fall back to normal means return loadPackageDescription(dependency, config); } };
Require.read = function (url) { if (URL.resolve(window.location, url).indexOf(FILE_PROTOCOL) === 0) { throw new Error("XHR does not function for file: protocol"); } var request = new XMLHttpRequest(); var response = Promise.defer(); function onload() { if (xhrSuccess(request)) { response.resolve(request.responseText); } else { onerror(); } } function onerror() { response.reject("Can't XHR " + JSON.stringify(url)); } try { request.open(GET, url, true); if (request.overrideMimeType) { request.overrideMimeType(APPLICATION_JAVASCRIPT_MIMETYPE); } request.onreadystatechange = function () { if (request.readyState === 4) { onload(); } }; request.onload = request.load = onload; request.onerror = request.error = onerror; } catch (exception) { response.reject(exception.message, exception); } request.send(); return response.promise; };
Require.getLocation = function() { return URL.resolve(window.location, "."); };
config.preloaded.then(function () { if (!result.isResolved()) { var location = URL.resolve(dependency.location, "package.json.load.js"); loadScript(location); } });