Break out helper methods in index.js

This commit is contained in:
Kevin Sawicki 2015-02-12 13:31:49 -08:00
parent 01f059d156
commit fcced492d4

View File

@ -1,49 +1,17 @@
var fs = require('fs');
var path = require('path');
window.onload = function() {
try {
var startTime = Date.now();
var fs = require('fs');
var path = require('path');
function registerRuntimeTranspilers() {
var cacheDir = path.join(process.env.ATOM_HOME, 'compile-cache');
// Use separate compile cache when sudo'ing as root to avoid permission issues
if (process.env.USER === 'root' && process.env.SUDO_USER && process.env.SUDO_USER !== process.env.USER) {
cacheDir = path.join(cacheDir, 'root');
}
// Setup caching of .coffee files
var CoffeeCache = require('coffee-cash');
CoffeeCache.setCacheDirectory(path.join(cacheDir, 'coffee'));
CoffeeCache.register();
// Set up caching of source maps for generated stack traces
require('coffeestack').setCacheDirectory(path.join(cacheDir, 'coffee', 'source-maps'));
// Setup caching of .cson files
require('season').setCacheDir(path.join(cacheDir, 'cson'));
// Setup caching of .js files that start with "use 6to5"
var to5 = require('../src/6to5');
to5.setCacheDirectory(path.join(cacheDir, 'js'));
to5.register();
}
// Ensure ATOM_HOME is always set before anything else is required
if (!process.env.ATOM_HOME) {
var home;
if (process.platform === 'win32') {
home = process.env.USERPROFILE;
} else {
home = process.env.HOME;
}
var atomHome = path.join(home, '.atom');
try {
atomHome = fs.realpathSync(atomHome);
} catch (error) {
// Ignore since the path might just not exist yet.
}
process.env.ATOM_HOME = atomHome;
setupAtomHome();
var cacheDir = path.join(process.env.ATOM_HOME, 'compile-cache');
// Use separate compile cache when sudo'ing as root to avoid permission issues
if (process.env.USER === 'root' && process.env.SUDO_USER && process.env.SUDO_USER !== process.env.USER) {
cacheDir = path.join(cacheDir, 'root');
}
// Skip "?loadSettings=".
@ -61,7 +29,7 @@ window.onload = function() {
var devMode = loadSettings.devMode || !loadSettings.resourcePath.startsWith(process.resourcesPath + path.sep);
registerRuntimeTranspilers();
setupCoffeeCache(cacheDir);
ModuleCache = require('../src/module-cache');
ModuleCache.register(loadSettings);
@ -77,6 +45,11 @@ window.onload = function() {
});
require('vm-compatibility-layer');
setupCsonCache(cacheDir);
setupSourceMapCache(cacheDir);
setup6to5(cacheDir);
require(loadSettings.bootstrapScript);
require('ipc').sendChannel('window-command', 'window:loaded');
@ -94,3 +67,41 @@ window.onload = function() {
console.error(error.stack || error);
}
}
var setupCoffeeCache = function(cacheDir) {
var CoffeeCache = require('coffee-cash');
CoffeeCache.setCacheDirectory(path.join(cacheDir, 'coffee'));
CoffeeCache.register();
}
var setupAtomHome = function() {
if (!process.env.ATOM_HOME) {
var home;
if (process.platform === 'win32') {
home = process.env.USERPROFILE;
} else {
home = process.env.HOME;
}
var atomHome = path.join(home, '.atom');
try {
atomHome = fs.realpathSync(atomHome);
} catch (error) {
// Ignore since the path might just not exist yet.
}
process.env.ATOM_HOME = atomHome;
}
}
var setup6to5 = function(cacheDir) {
var to5 = require('../src/6to5');
to5.setCacheDirectory(path.join(cacheDir, 'js'));
to5.register();
}
var setupCsonCache = function(cacheDir) {
require('season').setCacheDir(path.join(cacheDir, 'cson'));
}
var setupSourceMapCache = function(cacheDir) {
require('coffeestack').setCacheDirectory(path.join(cacheDir, 'coffee', 'source-maps'));
}