Skip to content
This repository has been archived by the owner on Aug 7, 2023. It is now read-only.

Commit

Permalink
Update eslint to version 3.5.0 🚀 (#692)
Browse files Browse the repository at this point in the history
* chore(package): update eslint to version 3.5.0

* chore(package): update eslint-config-airbnb-base to version 7.1.0

* Update eslint-plugin-import to v1.15.0

Needs at least v1.14.0 to satisfy the peerDependency of eslint-config-airbnb-base.

* Bump minimum Atom version to v1.10.0

Atom v1.10.0 was the first version to include a version of APM that could install `eslint@3`.

* Fix lint issues

* Some minor cosmetic fixes
  • Loading branch information
greenkeeperio-bot authored and Arcanemagus committed Sep 21, 2016
1 parent f75801f commit 6505411
Show file tree
Hide file tree
Showing 11 changed files with 81 additions and 73 deletions.
13 changes: 8 additions & 5 deletions lib/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ var _child_process = require('child_process');

var _child_process2 = _interopRequireDefault(_child_process);

var _atom = require('atom');

var _processCommunication = require('process-communication');

var _path = require('path');

var _atom = require('atom');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function spawnWorker() {
Expand All @@ -36,11 +36,14 @@ function spawnWorker() {
console.log('[Linter-ESLint] STDERR', chunk.toString());
});

return { worker: worker, subscription: new _atom.Disposable(function () {
return {
worker: worker,
subscription: new _atom.Disposable(function () {
worker.kill();
}) };
})
};
}

// eslint-disable-next-line import/no-extraneous-dependencies
function showError(givenMessage) {
var givenDetail = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];

Expand Down
19 changes: 11 additions & 8 deletions lib/main.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
'use strict';
'use babel';

var _atom = require('atom');

var _helpers = require('./helpers');

var _escapeHtml = require('escape-html');

var _escapeHtml2 = _interopRequireDefault(_escapeHtml);
Expand All @@ -13,8 +9,13 @@ var _eslintRuleDocumentation = require('eslint-rule-documentation');

var _eslintRuleDocumentation2 = _interopRequireDefault(_eslintRuleDocumentation);

var _atom = require('atom');

var _helpers = require('./helpers');

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// eslint-disable-next-line import/no-extraneous-dependencies
module.exports = {
activate: function activate() {
var _this = this;
Expand All @@ -32,16 +33,16 @@ module.exports = {
// Add the current scopes
Array.prototype.push.apply(_this.scopes, scopes);
}));

var embeddedScope = 'source.js.embedded.html';
this.subscriptions.add(atom.config.observe('linter-eslint.lintHtmlFiles', function (lintHtmlFiles) {
if (lintHtmlFiles) {
_this.scopes.push(embeddedScope);
} else {
if (_this.scopes.indexOf(embeddedScope) !== -1) {
_this.scopes.splice(_this.scopes.indexOf(embeddedScope), 1);
}
} else if (_this.scopes.indexOf(embeddedScope) !== -1) {
_this.scopes.splice(_this.scopes.indexOf(embeddedScope), 1);
}
}));

this.subscriptions.add(atom.workspace.observeTextEditors(function (editor) {
editor.onDidSave(function () {
if (_this.scopes.indexOf(editor.getGrammar().scopeName) !== -1 && atom.config.get('linter-eslint.fixOnSave')) {
Expand All @@ -55,6 +56,7 @@ module.exports = {
}
});
}));

this.subscriptions.add(atom.commands.add('atom-text-editor', {
'linter-eslint:fix-file': function linterEslintFixFile() {
var textEditor = atom.workspace.getActiveTextEditor();
Expand Down Expand Up @@ -103,6 +105,7 @@ module.exports = {
var _this2 = this;

var Helpers = require('atom-linter');

return {
name: 'ESLint',
grammarScopes: this.scopes,
Expand Down
9 changes: 5 additions & 4 deletions lib/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ var _path = require('path');

var _path2 = _interopRequireDefault(_path);

var _workerHelpers = require('./worker-helpers');

var Helpers = _interopRequireWildcard(_workerHelpers);

var _processCommunication = require('process-communication');

var _atomLinter = require('atom-linter');

var _workerHelpers = require('./worker-helpers');

var Helpers = _interopRequireWildcard(_workerHelpers);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
Expand All @@ -39,6 +39,7 @@ function lintJob(argv, contents, eslint, configPath, config) {
return !ignoredMessages.includes(e.message);
});
}

function fixJob(argv, eslint) {
try {
eslint.execute(argv);
Expand Down
12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"repository": "https://github.com/AtomLinter/linter-eslint.git",
"license": "MIT",
"engines": {
"atom": ">=1.8.0 <2.0.0"
"atom": ">=1.10.0 <2.0.0"
},
"configSchema": {
"lintHtmlFiles": {
Expand Down Expand Up @@ -92,18 +92,18 @@
"atom-package-deps": "^4.0.1",
"consistent-path": "^2.0.1",
"escape-html": "^1.0.3",
"eslint": "^2.11.1",
"eslint": "^3.5.0",
"eslint-rule-documentation": "^1.0.0",
"process-communication": "^1.1.0",
"resolve-env": "^1.0.0"
},
"devDependencies": {
"eslint-config-airbnb-base": "^3.0.1",
"eslint-plugin-import": "^1.7.0",
"babel-preset-steelbrain": "^4.0.2",
"eslint-config-airbnb-base": "^7.1.0",
"eslint-plugin-import": "^1.15.0",
"ucompiler": "^3.2.0",
"ucompiler-plugin-babel": "^3.0.0",
"ucompiler-plugin-newline": "^3.0.0",
"babel-preset-steelbrain": "^4.0.2"
"ucompiler-plugin-newline": "^3.0.0"
},
"package-deps": [
"linter"
Expand Down
6 changes: 0 additions & 6 deletions spec/.eslintrc

This file was deleted.

6 changes: 6 additions & 0 deletions spec/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
env: {
jasmine: true,
atomtest: true
}
}
41 changes: 16 additions & 25 deletions spec/linter-eslint-spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
'use babel'

import linter from '../lib/main'
import * as path from 'path'
import linter from '../lib/main'

const goodPath = path.join(__dirname, 'fixtures', 'files', 'good.js')
const badPath = path.join(__dirname, 'fixtures', 'files', 'bad.js')
Expand All @@ -16,6 +16,7 @@ const ignoredPath = path.join(__dirname, 'fixtures',

describe('The eslint provider for Linter', () => {
const { spawnWorker } = require('../lib/helpers')

const worker = spawnWorker()
const lint = linter.provideLinter.call(worker).lint

Expand All @@ -33,29 +34,27 @@ describe('The eslint provider for Linter', () => {
let editor = null
beforeEach(() => {
waitsForPromise(() =>
atom.workspace.open(badPath).then(openEditor => {
atom.workspace.open(badPath).then((openEditor) => {
editor = openEditor
})
)
})

it('finds at least one message', () => {
waitsForPromise(() =>
lint(editor).then(messages => {
expect(messages.length).toBeGreaterThan(0)
})
lint(editor).then(messages => expect(messages.length).toBeGreaterThan(0))
)
})

it('verifies that message', () => {
waitsForPromise(() =>
lint(editor).then(messages => {
lint(editor).then((messages) => {
expect(messages[0].type).toBe('Error')
expect(messages[0].html).not.toBeDefined()
expect(messages[0].text).toBe("'foo' is not defined.")
expect(messages[0].filePath).toBe(badPath)
expect(messages[0].range).toEqual([[0, 0], [0, 3]])
expect(messages[0].hasOwnProperty('fix')).toBeFalsy()
expect(Object.hasOwnProperty.call(messages[0], 'fix')).toBeFalsy()
})
)
})
Expand All @@ -64,19 +63,15 @@ describe('The eslint provider for Linter', () => {
it('finds nothing wrong with an empty file', () => {
waitsForPromise(() =>
atom.workspace.open(emptyPath).then(editor =>
lint(editor).then(messages => {
expect(messages.length).toBe(0)
})
lint(editor).then(messages => expect(messages.length).toBe(0))
)
)
})

it('finds nothing wrong with a valid file', () => {
waitsForPromise(() =>
atom.workspace.open(goodPath).then(editor =>
lint(editor).then(messages => {
expect(messages.length).toBe(0)
})
lint(editor).then(messages => expect(messages.length).toBe(0))
)
)
})
Expand All @@ -85,7 +80,7 @@ describe('The eslint provider for Linter', () => {
waitsForPromise(() =>
atom.workspace.open(fixPath).then(editor =>
lint(editor)
).then(messages => {
).then((messages) => {
expect(messages[0].fix.range).toEqual([[0, 11], [0, 12]])
expect(messages[0].fix.newText).toBe('')

Expand All @@ -99,23 +94,21 @@ describe('The eslint provider for Linter', () => {
it('correctly resolves imports from parent', () => {
waitsForPromise(() =>
atom.workspace.open(importingpath).then(editor =>
lint(editor).then(messages => {
expect(messages.length).toBe(0)
})
lint(editor).then(messages => expect(messages.length).toBe(0))
)
)
})
it('shows a message for an invalid import', () => {
waitsForPromise(() =>
atom.workspace.open(badImportPath).then(editor =>
lint(editor).then(messages => {
lint(editor).then((messages) => {
expect(messages.length).toBeGreaterThan(0)
expect(messages[0].type).toBe('Error')
expect(messages[0].html).not.toBeDefined()
expect(messages[0].text).toBe("Unable to resolve path to module '../nonexistent'.")
expect(messages[0].filePath).toBe(badImportPath)
expect(messages[0].range).toEqual([[0, 24], [0, 39]])
expect(messages[0].hasOwnProperty('fix')).toBeFalsy()
expect(Object.hasOwnProperty.call(messages[0], 'fix')).toBeFalsy()
})
)
)
Expand All @@ -129,9 +122,7 @@ describe('The eslint provider for Linter', () => {
it('will not give warnings for the file', () => {
waitsForPromise(() =>
atom.workspace.open(ignoredPath).then(editor =>
lint(editor).then(messages => {
expect(messages.length).toBe(0)
})
lint(editor).then(messages => expect(messages.length).toBe(0))
)
)
})
Expand All @@ -143,11 +134,11 @@ describe('The eslint provider for Linter', () => {
})
it('should fix lint errors when saved', () => {
waitsForPromise(() =>
atom.workspace.open(fixPath).then(editor => {
lint(editor).then(messages => {
atom.workspace.open(fixPath).then((editor) => {
lint(editor).then((messages) => {
expect(messages.length).toBe(2)
editor.save()
lint(editor).then(messagesAfterSave => {
lint(editor).then((messagesAfterSave) => {
expect(messagesAfterSave.length).toBe(0)
})
})
Expand Down
2 changes: 1 addition & 1 deletion spec/worker-helpers-spec.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
'use babel'

import * as Path from 'path'
import * as Helpers from '../lib/worker-helpers'
import { getFixturesPath } from './common'
import * as Path from 'path'

describe('Worker Helpers', () => {
describe('getESLintInstance && getESLintFromDirectory', () => {
Expand Down
12 changes: 8 additions & 4 deletions src/helpers.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
'use babel'

import ChildProcess from 'child_process'
import { Disposable } from 'atom'
import { createFromProcess } from 'process-communication'
import { join } from 'path'
// eslint-disable-next-line import/no-extraneous-dependencies
import { Disposable } from 'atom'

export function spawnWorker() {
const env = Object.create(process.env)
Expand All @@ -22,9 +23,12 @@ export function spawnWorker() {
console.log('[Linter-ESLint] STDERR', chunk.toString())
})

return { worker, subscription: new Disposable(() => {
worker.kill()
}) }
return {
worker,
subscription: new Disposable(() => {
worker.kill()
})
}
}

export function showError(givenMessage, givenDetail = null) {
Expand Down

0 comments on commit 6505411

Please sign in to comment.