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() { (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; var _isArray;
if (!Array.isArray) { if (!Array.isArray) {
_isArray = function (x) { _isArray = function (x) {
@ -48,7 +56,7 @@ var define, requireModule, require, requirejs;
return this._require || (this._require = function(dep) { return this._require || (this._require = function(dep) {
return require(resolve(dep, name)); return require(resolve(dep, name));
}); });
} };
define = function(name, deps, callback) { define = function(name, deps, callback) {
if (arguments.length < 2) { if (arguments.length < 2) {
@ -76,7 +84,7 @@ var define, requireModule, require, requirejs;
return new Alias(path); return new Alias(path);
}; };
function reify(mod, name, seen) { function reify(mod, name, rseen) {
var deps = mod.deps; var deps = mod.deps;
var length = deps.length; var length = deps.length;
var reified = new Array(length); var reified = new Array(length);
@ -88,11 +96,11 @@ var define, requireModule, require, requirejs;
for (var i = 0, l = length; i < l; i++) { for (var i = 0, l = length; i < l; i++) {
dep = deps[i]; dep = deps[i];
if (dep === 'exports') { if (dep === 'exports') {
module.exports = reified[i] = seen; module.exports = reified[i] = rseen;
} else if (dep === 'require') { } else if (dep === 'require') {
reified[i] = mod.makeRequire(); reified[i] = mod.makeRequire();
} else if (dep === 'module') { } else if (dep === 'module') {
mod.exports = seen; mod.exports = rseen;
module = reified[i] = mod; module = reified[i] = mod;
} else { } else {
reified[i] = requireFrom(resolve(dep, name), name); reified[i] = requireFrom(resolve(dep, name), name);
@ -106,7 +114,16 @@ var define, requireModule, require, requirejs;
} }
function requireFrom(name, origin) { function requireFrom(name, origin) {
var mod = registry[name]; 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) { if (!mod) {
throw new Error('Could not find module `' + name + '` imported from `' + origin + '`'); throw new Error('Could not find module `' + name + '` imported from `' + origin + '`');
} }
@ -116,8 +133,9 @@ var define, requireModule, require, requirejs;
function missingModule(name) { function missingModule(name) {
throw new Error('Could not find module ' + name); throw new Error('Could not find module ' + name);
} }
requirejs = require = requireModule = function(name) { requirejs = require = requireModule = function(name) {
var mod = registry[name]; var mod = registry[name] || registry[MOVED_MODULES[name]];
if (mod && mod.callback instanceof Alias) { if (mod && mod.callback instanceof Alias) {
@ -189,6 +207,6 @@ var define, requireModule, require, requirejs;
requirejs.entries = requirejs._eak_seen = registry; requirejs.entries = requirejs._eak_seen = registry;
requirejs.clear = function() { requirejs.clear = function() {
requirejs.entries = requirejs._eak_seen = registry = {}; requirejs.entries = requirejs._eak_seen = registry = {};
seen = state = {}; seen = {};
}; };
})(); })();

View File

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

View File

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

View File

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

View File

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