Allow the loader to understand when files are moved

This commit is contained in:
Robin Ward 2016-11-15 11:41:16 -05:00
parent 603fa685f0
commit 0f9e45f283
5 changed files with 29 additions and 9 deletions

View File

@ -2,6 +2,14 @@ var define, requireModule, require, requirejs;
(function() {
var MOVED_MODULES = {
"discourse/views/list/post-count-or-badges": "discourse/raw-views/list/post-count-or-badges",
"discourse/views/list/posts-count-column" : "discourse/raw-views/list/posts-count-column",
"discourse/views/list/visited-line" : "discourse/raw-views/list/visited-line",
"discourse/views/topic-list-header-column" : "discourse/raw-views/topic-list-header-column",
"discourse/views/topic-status" : "discourse/raw-views/topic-status"
};
var _isArray;
if (!Array.isArray) {
_isArray = function (x) {
@ -48,7 +56,7 @@ var define, requireModule, require, requirejs;
return this._require || (this._require = function(dep) {
return require(resolve(dep, name));
});
}
};
define = function(name, deps, callback) {
if (arguments.length < 2) {
@ -76,7 +84,7 @@ var define, requireModule, require, requirejs;
return new Alias(path);
};
function reify(mod, name, seen) {
function reify(mod, name, rseen) {
var deps = mod.deps;
var length = deps.length;
var reified = new Array(length);
@ -88,11 +96,11 @@ var define, requireModule, require, requirejs;
for (var i = 0, l = length; i < l; i++) {
dep = deps[i];
if (dep === 'exports') {
module.exports = reified[i] = seen;
module.exports = reified[i] = rseen;
} else if (dep === 'require') {
reified[i] = mod.makeRequire();
} else if (dep === 'module') {
mod.exports = seen;
mod.exports = rseen;
module = reified[i] = mod;
} else {
reified[i] = requireFrom(resolve(dep, name), name);
@ -106,7 +114,16 @@ var define, requireModule, require, requirejs;
}
function requireFrom(name, origin) {
var mod = registry[name];
if (!mod) {
var moved = MOVED_MODULES[name];
if (moved) {
console.warn("DEPRECATION: `" + name + "` was moved to `" + moved + "`");
}
mod = registry[moved];
}
if (!mod) {
throw new Error('Could not find module `' + name + '` imported from `' + origin + '`');
}
@ -116,8 +133,9 @@ var define, requireModule, require, requirejs;
function missingModule(name) {
throw new Error('Could not find module ' + name);
}
requirejs = require = requireModule = function(name) {
var mod = registry[name];
var mod = registry[name] || registry[MOVED_MODULES[name]];
if (mod && mod.callback instanceof Alias) {
@ -189,6 +207,6 @@ var define, requireModule, require, requirejs;
requirejs.entries = requirejs._eak_seen = registry;
requirejs.clear = function() {
requirejs.entries = requirejs._eak_seen = registry = {};
seen = state = {};
seen = {};
};
})();

View File

@ -1,5 +1,5 @@
//= require env
//= require jquery_include
//= require ember_include
//= require loader
//= require discourse-loader
//= require ember-shim

View File

@ -2,7 +2,7 @@
//= require env
//= require jquery.debug
//= require loader
//= require discourse-loader
//= require jquery.debug
//= require handlebars
//= require ember.debug

View File

@ -34,6 +34,8 @@ class DiscourseIIFE
return data if path =~ /\.hbrs/
return data if path =~ /\.hbs/
return data if path =~ /discourse-loader/
"(function () {\n\nvar $ = window.jQuery;\n// IIFE Wrapped Content Begins:\n\n#{data}\n\n// IIFE Wrapped Content Ends\n\n })(this);"
end

View File

@ -59,7 +59,7 @@ module PrettyText
ctx.attach("console.log", proc{|l| p l })
end
ctx_load(ctx, "vendor/assets/javascripts/loader.js")
ctx_load(ctx, "#{Rails.root}/app/assets/javascripts/discourse-loader.js")
ctx_load(ctx, "vendor/assets/javascripts/lodash.js")
manifest = File.read("#{Rails.root}/app/assets/javascripts/pretty-text-bundle.js")
root_path = "#{Rails.root}/app/assets/javascripts/"