diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000000..89d89340b9 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,29 @@ +{ + "curly": true, + "noempty": true, + "newcap": true, + "eqeqeq": true, + "eqnull": true, + "esnext": true, + "undef": true, + "unused": true, + "devel": true, + "node": true, + "browser": true, + "evil": false, + "latedef": true, + "nonew": true, + "trailing": true, + "immed": true, + "smarttabs": true, + "strict": false, + "quotmark": false, + "nonbsp": true, + "noempty": true, + "camelcase": false, + "jasmine": true, + "globals": { + "define": true + }, + "predef": [ "-Promise" ] +} diff --git a/browser/main.js b/browser/main.js index a7552922c3..9a92d90b3e 100644 --- a/browser/main.js +++ b/browser/main.js @@ -1,15 +1,10 @@ -var child_process = require('child_process'); -var net = require('net'); -var os = require('os'); +var app = require('app'); var fs = require('fs'); var path = require('path'); var exec = require('exec'); - var autoUpdater = require('auto-updater'); -var app = require('app'); var BrowserWindow = require('browser-window'); var ipc = require('ipc'); - var argv = require('minimist')(process.argv); var settingsjson = JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'settings.json'), 'utf8')); @@ -23,6 +18,9 @@ if (argv.integration) { process.env.TEST_TYPE = 'test'; } +app.commandLine.appendSwitch('js-flags', '--harmony'); + +var mainWindow = null; app.on('activate-with-no-open-windows', function () { if (mainWindow) { mainWindow.show(); @@ -30,7 +28,7 @@ app.on('activate-with-no-open-windows', function () { return false; }); -app.on('ready', function() { +app.on('ready', function () { mainWindow = new BrowserWindow({ width: 1000, height: 700, @@ -44,12 +42,12 @@ app.on('ready', function() { var saveVMOnQuit = false; if (argv.test) { - mainWindow.loadUrl(path.normalize('file://' + path.join(__dirname, '..', 'tests/tests.html'))); + mainWindow.loadUrl(path.normalize('file://' + path.join(__dirname, '..', 'build/tests.html'))); } else { mainWindow.loadUrl(path.normalize('file://' + path.join(__dirname, '..', 'build/index.html'))); - app.on('will-quit', function (e) { + app.on('will-quit', function () { if (saveVMOnQuit) { - exec('VBoxManage controlvm boot2docker-vm savestate', function (stderr, stdout, code) {}); + exec('VBoxManage controlvm boot2docker-vm savestate', function () {}); } }); } @@ -69,7 +67,7 @@ app.on('ready', function() { if (process.env.NODE_ENV !== 'development' && !argv.test) { autoUpdater.setFeedUrl('https://updates.kitematic.com/releases/latest?version=' + app.getVersion() + '&beta=' + settingsjson.beta); - autoUpdater.on('checking-for-update', function (e) { + autoUpdater.on('checking-for-update', function () { console.log('Checking for update...'); }); @@ -78,11 +76,12 @@ app.on('ready', function() { console.log(e); }); - autoUpdater.on('update-not-available', function (e) { + autoUpdater.on('update-not-available', function () { console.log('Update not available.'); }); autoUpdater.on('update-downloaded', function (e, releaseNotes, releaseName, releaseDate, updateURL) { + console.log(e, releaseNotes, releaseName, releaseDate, updateURL); console.log('Update downloaded.'); mainWindow.webContents.send('notify', 'window:update-available'); }); diff --git a/gulpfile.js b/gulpfile.js index b167e2b8fc..be42980fb4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,18 +5,17 @@ var fs = require('fs'); var gulp = require('gulp'); var gulpif = require('gulp-if'); var gutil = require('gulp-util'); -var http = require('http'); var less = require('gulp-less'); var livereload = require('gulp-livereload'); var plumber = require('gulp-plumber'); var react = require('gulp-react'); +var to5 = require('gulp-6to5'); var runSequence = require('run-sequence'); var shell = require('gulp-shell'); var sourcemaps = require('gulp-sourcemaps'); var packagejson = require('./package.json'); var dependencies = Object.keys(packagejson.dependencies); -var devDependencies = Object.keys(packagejson.devDependencies); var isBeta = process.argv.indexOf('--beta') !== -1; var options = { dev: process.argv.indexOf('release') === -1 && process.argv.indexOf('test') === -1, @@ -35,11 +34,31 @@ gulp.task('js', function () { // emit the end event, to properly end the task this.emit('end'); })) + .pipe(sourcemaps.init()) .pipe(react()) + .pipe(to5({blacklist: ['regenerator']})) + .pipe(sourcemaps.write('.')) .pipe(gulp.dest((options.dev || options.test) ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build')) .pipe(gulpif(options.dev, livereload())); }); +gulp.task('tests', function () { + gulp.src('tests/*.js') + .pipe(plumber(function(error) { + gutil.log(gutil.colors.red('Error (' + error.plugin + '): ' + error.message)); + // emit the end event, to properly end the task + this.emit('end'); + })) + .pipe(sourcemaps.init()) + .pipe(react()) + .pipe(to5()) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('./build')); + + gulp.src('./tests/tests.html').pipe(gulp.dest('./build')); + gulp.src('./tests/jasmine-2.1.3/*').pipe(gulp.dest('./build/jasmine-2.1.3')); +}); + gulp.task('images', function() { return gulp.src('images/*') .pipe(gulp.dest(options.dev ? './build' : './dist/osx/' + options.filename + '/Contents/Resources/app/build')) @@ -79,7 +98,7 @@ gulp.task('copy', function () { .pipe(gulpif(options.dev, livereload())); }); -gulp.task('dist', function (cb) { +gulp.task('dist', function () { var stream = gulp.src('').pipe(shell([ 'rm -Rf ./dist', 'mkdir -p ./dist/osx', @@ -146,7 +165,7 @@ gulp.task('release', function () { runSequence('download', 'dist', ['copy', 'images', 'js', 'styles'], 'sign', 'zip'); }); -gulp.task('test', ['download', 'copy', 'js'], function () { +gulp.task('test', ['download', 'copy', 'js', 'tests'], function () { var env = process.env; env.NODE_ENV = 'test'; if (options.integration) { diff --git a/index.html b/index.html index 86d233b8db..5d205af613 100644 --- a/index.html +++ b/index.html @@ -6,6 +6,6 @@