Skip to content

Commit

Permalink
include loader file source maps by default
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford committed Oct 3, 2014
1 parent 6cfc0bb commit 17ba71d
Showing 1 changed file with 73 additions and 49 deletions.
122 changes: 73 additions & 49 deletions lib/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -784,78 +784,102 @@ exports.checkDlLoader = function() {

var ghh = 'https://raw.githubusercontent.com';
var loaderVersions = ['0.9', '0.9', '0.0.66'];

function doLoaderDownload(files) {
return Promise.all(Object.keys(files).map(function(url) {
var filename = files[url];
return asp(request)({
method: 'get',
url: ghh + url,
headers: {
'user-agent': 'jspm'
}
})
.then(function(res) {
if (res.statusCode != 200)
throw 'Request error ' + res.statusCode + ' for ' + ghh + url;

var source = res.body;

if (filename == 'traceur.js') {
source = source.replace('traceur.min.map', 'traceur.js.map');
}
else if (filename == 'traceur.js.map') {
source = source.replace('"traceur.js"', '"traceur.src.js"').replace('"traceur.min.js"', '"traceur.js"');
}
else if (filename == 'traceur-runtime.js') {
source = source.replace('traceur-runtime.min.map', 'traceur-runtime.js.map');
}
else if (filename == 'traceur-runtime.js.map') {
source = source.replace('"traceur-runtime.js"', '"traceur-runtime.src.js"').replace('"traceur-runtime.min.js"', '"traceur-runtime.js"');
}

return asp(fs.writeFile)(path.resolve(config.jspmPackages, filename), source);
})
.then(function() {
ui.log('info', ' `' + path.basename(filename) + '`');
});
}));
}

exports.dlLoader = function(unminified, edge) {
var min1 = unminified ? '.src' : '';
var min2 = unminified ? '' : '.min';

var usedVersions = [];

var downloadFiles = {};
return config.load()
.then(function() {
ui.log('info', 'Downloading loader files to %' + path.relative(config.dir, config.jspmPackages) + '%');
return asp(mkdirp)(config.jspmPackages);
})
.then(function() {
return pkg.lookup(new Package('github:ModuleLoader/es6-module-loader@' + (!edge ? loaderVersions[0] : 'master')));
})
.then(function(lookup) {
usedVersions[0] = lookup.version.split('.').splice(0, 2).join('.');
downloadFiles['/ModuleLoader/es6-module-loader/' + (edge ? '' : 'v') + lookup.version + '/dist/es6-module-loader' + min1 + '.js'] = 'es6-module-loader.js';
return pkg.lookup(new Package('github:systemjs/systemjs@' + (!edge ? loaderVersions[1] : 'master')));
})
.then(function(lookup) {
usedVersions[1] = lookup.version.split('.').splice(0, 2).join('.');
downloadFiles['/systemjs/systemjs/' + lookup.version + '/dist/system' + min1 + '.js'] = 'system.js';
return pkg.lookup(new Package('github:jmcriffey/bower-traceur@' + (!edge ? loaderVersions[2] : 'master')));
})
.then(function(lookup) {
usedVersions[2] = lookup.version;
downloadFiles['/jmcriffey/bower-traceur/' + lookup.version + '/traceur' + min2 + '.js'] = 'traceur.js';
downloadFiles['/jmcriffey/bower-traceur-runtime/' + lookup.version + '/traceur-runtime' + min2 + '.js'] = 'traceur-runtime.js';
})
.then(function() {
// delete old versions
return asp(fs.readdir)(config.jspmPackages)
})
.then(function(files) {
return Promise.all(files.filter(function(file) {
return file.match(/^(system-csp@|system@|es6-module-loader@|traceur@|traceur-runtime@)/);
return file.match(/^(system-csp|system|es6-module-loader|traceur|traceur-runtime)/);
}).map(function(file) {
return asp(fs.unlink)(path.resolve(config.jspmPackages, file));
}));
})
.then(function() {
return Promise.all(Object.keys(downloadFiles).map(function(url) {
var filename = downloadFiles[url];
return asp(request)({
method: 'get',
url: ghh + url,
headers: {
'user-agent': 'jspm'
return Promise.all([
pkg.lookup(new Package('github:ModuleLoader/es6-module-loader@' + (!edge ? loaderVersions[0] : 'master')))
.then(function(lookup) {
var downloadFiles = {};
downloadFiles['/ModuleLoader/es6-module-loader/' + (edge ? '' : 'v') + lookup.version + '/dist/es6-module-loader' + min1 + '.js'] = 'es6-module-loader.js';
if (!unminified) {
downloadFiles['/ModuleLoader/es6-module-loader/' + (edge ? '' : 'v') + lookup.version + '/dist/es6-module-loader.src.js'] = 'es6-module-loader.src.js';
downloadFiles['/ModuleLoader/es6-module-loader/' + (edge ? '' : 'v') + lookup.version + '/dist/es6-module-loader.js.map'] = 'es6-module-loader.js.map';
}
})
.then(function(res) {
if (res.statusCode != 200)
throw 'Request error ' + res.statusCode + ' for ' + ghh + url;

var output = res.body;

/* if (url.substr(0, 9) == '/systemjs') {
output = output.replace('"traceur.js"', !edge ? '\'traceur@' + usedVersions[2] + '.js\'' : '\'traceur.js\'');
output = output.replace('es6-module-loader.js', !edge ? 'es6-module-loader@' + usedVersions[0] + '.js' : 'es6-module-loader.js');
} */
// remove source maps
if (url.substr(url.length - 14, 14) == 'traceur.min.js' || url.substr(url.length - 22, 22) == 'traceur-runtime.min.js') {
output = output.replace(/\n[^\n]+$/, '');
return doLoaderDownload(downloadFiles);
}),

pkg.lookup(new Package('github:systemjs/systemjs@' + (!edge ? loaderVersions[1] : 'master')))
.then(function(lookup) {
var downloadFiles = {};
downloadFiles['/systemjs/systemjs/' + lookup.version + '/dist/system' + min1 + '.js'] = 'system.js';
if (!unminified) {
downloadFiles['/systemjs/systemjs/' + lookup.version + '/dist/system.src.js'] = 'system.src.js';
downloadFiles['/systemjs/systemjs/' + lookup.version + '/dist/system.js.map'] = 'system.js.map';
}

return asp(fs.writeFile)(path.resolve(config.jspmPackages, filename), output);
return doLoaderDownload(downloadFiles);
}),

pkg.lookup(new Package('github:jmcriffey/bower-traceur@' + (!edge ? loaderVersions[2] : 'master')))
.then(function(lookup) {
var downloadFiles = {};
downloadFiles['/jmcriffey/bower-traceur/' + lookup.version + '/traceur' + min2 + '.js'] = 'traceur.js';
downloadFiles['/jmcriffey/bower-traceur-runtime/' + lookup.version + '/traceur-runtime' + min2 + '.js'] = 'traceur-runtime.js';
if (!unminified) {
downloadFiles['/jmcriffey/bower-traceur/' + lookup.version + '/traceur.js'] = 'traceur.src.js';
downloadFiles['/jmcriffey/bower-traceur/' + lookup.version + '/traceur.min.map'] = 'traceur.js.map';
downloadFiles['/jmcriffey/bower-traceur-runtime/' + lookup.version + '/traceur-runtime.js'] = 'traceur-runtime.src.js';
downloadFiles['/jmcriffey/bower-traceur-runtime/' + lookup.version + '/traceur-runtime.min.map'] = 'traceur-runtime.js.map';
}
return doLoaderDownload(downloadFiles);
})
.then(function() {
ui.log('info', ' `' + path.basename(filename) + '`');
});
}));
]);
})
.then(function() {
ui.log('ok', 'Loader files downloaded successfully');
Expand Down

0 comments on commit 17ba71d

Please sign in to comment.