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

Update eslint to version 3.5.0 🚀 #692

Merged
merged 6 commits into from Sep 21, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
13 changes: 8 additions & 5 deletions lib/helpers.js
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
@@ -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
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
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
@@ -0,0 +1,6 @@
module.exports = {
env: {
jasmine: true,
atomtest: true
}
}
41 changes: 16 additions & 25 deletions spec/linter-eslint-spec.js
@@ -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
@@ -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
@@ -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