From 8fe92b94ce5e1e2857d088752d94e19db7e3d8a8 Mon Sep 17 00:00:00 2001 From: Valerio Virgillito Date: Sun, 17 Jun 2012 22:31:44 -0700 Subject: montage v11 merge into ninja Signed-off-by: Valerio Virgillito --- node_modules/montage/require/require.js | 67 +++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 12 deletions(-) (limited to 'node_modules/montage/require/require.js') diff --git a/node_modules/montage/require/require.js b/node_modules/montage/require/require.js index eaa2d9fc..36372053 100755 --- a/node_modules/montage/require/require.js +++ b/node_modules/montage/require/require.js @@ -8,12 +8,24 @@ // Boostrapping Browser if (typeof bootstrap !== "undefined") { - bootstrap("require/require", function (require, exports) { - var Promise = require("core/promise").Promise; - var URL = require("core/mini-url"); - definition(exports, Promise, URL); - require("require/browser"); - }); + + // Window + if (typeof window !== "undefined") { + bootstrap("require/require", function (require, exports) { + var Promise = require("core/promise").Promise; + var URL = require("core/mini-url"); + definition(exports, Promise, URL); + require("require/browser"); + }); + + // Worker + } else { + bootstrap("require/require", function (require, exports) { + var Promise = require("core/promise").Promise; + var URL = require("core/url"); + definition(exports, Promise, URL); + }); + } // Node Server } else if (typeof process !== "undefined") { @@ -183,8 +195,8 @@ // Modules should never have a return value. if (returnValue !== void 0) { console.warn( - 'require: module ' + JSON.stringify(topId) + - ' returned a value.' + "require: module " + JSON.stringify(topId) + + " returned a value." ); } @@ -258,6 +270,8 @@ return resolve(id, viaId); }; + require.getModule = getModule; + require.load = load; require.deepLoad = deepLoad; @@ -269,10 +283,18 @@ } }; + require.getPackage = function (dependency) { + return config.getPackage(dependency, config); + }; + require.injectPackageDescription = function (location, description) { Require.injectPackageDescription(location, description, config); }; + require.injectPackageDescriptionLocation = function (location, descriptionLocation) { + Require.injectPackageDescriptionLocation(location, descriptionLocation, config); + }; + require.identify = identify; require.inject = inject; require.progress = Require.progress; @@ -283,6 +305,8 @@ require.config = config; + require.read = Require.read; + return require; } @@ -297,17 +321,35 @@ }; Require.injectPackageDescription = function (location, description, config) { - var descriptions = config.descriptions = config.descriptions || {}; + var descriptions = + config.descriptions = + config.descriptions || {}; descriptions[location] = Promise.call(function () { return description; }); }; + Require.injectPackageDescriptionLocation = function (location, descriptionLocation, config) { + var descriptionLocations = + config.descriptionLocations = + config.descriptionLocations || {}; + descriptionLocations[location] = descriptionLocation; + }; + Require.loadPackageDescription = function (location, config) { - var descriptions = config.descriptions = config.descriptions || {}; + var descriptions = + config.descriptions = + config.descriptions || {}; if (descriptions[location] === void 0) { - var jsonPath = URL.resolve(location, 'package.json'); - descriptions[location] = Require.read(jsonPath) + var descriptionLocations = + config.descriptionLocations = + config.descriptionLocations || {}; + if (descriptionLocations[location]) { + descriptionLocation = descriptionLocations[location]; + } else { + descriptionLocation = URL.resolve(location, "package.json"); + } + descriptions[location] = Require.read(descriptionLocation) .then(function (json) { try { return JSON.parse(json); @@ -447,6 +489,7 @@ // overlay var overlay = description.overlay || {}; + var layer; Require.overlays.forEach(function (engine) { if (overlay[engine]) { var layer = overlay[engine]; -- cgit v1.2.3