diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 53ad488cc8..0000000000 --- a/.eslintrc +++ /dev/null @@ -1,42 +0,0 @@ -{ - "extends": "ember", - "env": { - "es6": true, - }, - "rules": { - "no-eq-null": 0, - "eqeqeq": [2, "allow-null"], - "no-implicit-coercion": 0, - "spaced-comment": 0, - "arrow-spacing": [ 2, { "before": true, "after": true } ], - "prefer-reflect": 0, - "prefer-const": 0, - "no-restricted-syntax": [2, "WithStatement"], - "object-curly-spacing": [ 2, "always" ], - "no-console": 0, - "no-multiple-empty-lines": 0, - "max-len": [2, 250], - "no-shadow": 0, - "max-nested-callbacks": [2, 5], - "guard-for-in": 0, - "no-extend-native": 0, - "no-unused-vars": 0, - "no-param-reassign": 0, - "block-scoped-var": 0, - "no-ternary": 0, - "no-else-return": 0, - "space-in-parens": 0, - "no-undefined": 0, - "brace-style": 0, - "consistent-return": 0, - "no-use-before-define": 0, - "consistent-this": 0, - "no-underscore-dangle": 0, - "valid-jsdoc": 0, - "quotes": 0, - "one-var": 0, - "newline-after-var": 0, - "no-warning-comments": 0, - "space-before-function-paren": 0 - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000..3588d130e0 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,119 @@ +module.exports = { + root: true, + parserOptions: { + ecmaVersion: 6, + sourceType: 'module' + }, + extends: 'eslint:recommended', + env: { + 'browser': true + }, + rules: { + /* Possible Errors */ + + 'no-console': 0, + + /* Best Practices */ + + 'eqeqeq': 2, + 'no-eq-null': 2, + 'no-labels': 2, + 'no-multi-spaces': 2, + 'no-new': 2, + 'no-new-func': 2, + 'no-new-wrappers': 2, + 'no-octal-escape': 2, + 'no-proto': 2, + 'no-return-assign': 2, + 'no-script-url': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-throw-literal': 2, + 'no-unused-expressions': 2, + 'no-useless-call': 2, + 'no-useless-concat': 2, + 'no-useless-escape': 2, + 'no-void': 2, + 'no-with': 2, + 'yoda': 2, + + /* Variables */ + + 'no-shadow': 0, + 'no-use-before-define': [2, { + 'classes': false, + 'functions': false, + }], + + /* Stylistic Issues */ + + 'array-bracket-spacing': 2, + 'block-spacing': 2, + 'camelcase': [0, { + 'properties': 'always', + }], + 'comma-spacing': [2, { + 'before': false, + 'after': true, + }], + 'comma-style': 2, + 'computed-property-spacing': 2, + 'eol-last': 2, + 'indent': [2, 2, { + 'VariableDeclarator': { + 'var': 2, + 'let': 2, + 'const': 3, + } + }], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true, + }], + 'keyword-spacing': 2, + 'linebreak-style': [2, 'unix'], + 'max-len': [2, 250], + 'max-nested-callbacks': [2, 5], + 'new-cap': [2, { + 'capIsNew': false, + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-bitwise': 2, + 'no-inline-comments': 0, + 'no-new-object': 2, + 'no-restricted-syntax': [2, 'WithStatement'], + 'no-spaced-func': 2, + 'no-trailing-spaces': 2, + 'no-unneeded-ternary': 2, + 'no-whitespace-before-property': 2, + 'object-curly-spacing': [2, 'always'], + 'operator-assignment': 2, + 'semi': 2, + 'semi-spacing': 2, + 'space-before-blocks': 2, + 'space-in-parens': 2, + 'space-infix-ops': 2, + 'space-unary-ops': 2, + 'wrap-regex': 2, + + /* ECMAScript 6 */ + + 'arrow-body-style': 2, + 'arrow-spacing': 2, + 'constructor-super': 2, + 'no-confusing-arrow': [2, { + 'allowParens': true + }], + 'no-const-assign': 2, + 'no-dupe-class-members': 2, + 'no-duplicate-imports': 2, + 'no-new-symbol': 2, + 'no-var': 2, + 'object-shorthand': 2, + 'prefer-spread': 2, + 'prefer-template': 2, + 'require-yield': 2, + 'template-curly-spacing': 2, + }, +}; diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 08096effaa..0000000000 --- a/.jshintrc +++ /dev/null @@ -1,32 +0,0 @@ -{ - "predef": [ - "document", - "window", - "-Promise" - ], - "browser": true, - "boss": true, - "curly": true, - "debug": false, - "devel": true, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esnext": true, - "unused": true -} diff --git a/app/adapters/basic.js b/app/adapters/basic.js index 6013573a86..5bc4166313 100644 --- a/app/adapters/basic.js +++ b/app/adapters/basic.js @@ -117,11 +117,10 @@ export default Ember.Object.extend({ * @return {Boolean} result of the comparison */ function compareVersion(version1, version2) { - var compared, i; version1 = cleanupVersion(version1).split('.'); version2 = cleanupVersion(version2).split('.'); - for (i = 0; i < 3; i++) { - compared = compare(+version1[i], +version2[i]); + for (let i = 0; i < 3; i++) { + let compared = compare(+version1[i], +version2[i]); if (compared !== 0) { return compared; } diff --git a/app/adapters/bookmarklet.js b/app/adapters/bookmarklet.js index 80b62fa009..b3309bbafa 100644 --- a/app/adapters/bookmarklet.js +++ b/app/adapters/bookmarklet.js @@ -36,7 +36,7 @@ export default BasicAdapter.extend({ */ onVersionMismatch(goToVersion) { this.sendMessage({ name: 'version-mismatch', version: goToVersion }); - window.location.href = `../panes-${goToVersion.replace(/\./g, '-')}/index.html` + window.location.search; + window.location.href = `../panes-${goToVersion.replace(/\./g, '-')}/index.html${window.location.search}`; }, _connect() { @@ -58,5 +58,5 @@ export default BasicAdapter.extend({ function loadPageVar (sVar) { - return decodeURI(window.location.search.replace(new RegExp("^(?:.*[&\\?]" + encodeURI(sVar).replace(/[\.\+\*]/g, "\\$&") + "(?:\\=([^&]*))?)?.*$", "i"), "$1")); + return decodeURI(window.location.search.replace(new RegExp(`^(?:.*[&\\?]${encodeURI(sVar).replace(/[\.\+\*]/g, "\\$&")}(?:\\=([^&]*))?)?.*$`, "i"), "$1")); } diff --git a/app/adapters/firefox.js b/app/adapters/firefox.js index 2a51019524..2664f7e39c 100644 --- a/app/adapters/firefox.js +++ b/app/adapters/firefox.js @@ -71,7 +71,7 @@ export default BasicAdapter.extend({ this.sendMessage({ type: 'devtools:openSource', url: file, - line: line + line }); } diff --git a/app/adapters/websocket.js b/app/adapters/websocket.js index 2cf2568d75..3dce8cb26b 100644 --- a/app/adapters/websocket.js +++ b/app/adapters/websocket.js @@ -13,9 +13,7 @@ export default BasicAdapter.extend({ this.get('socket').emit('emberInspectorMessage', options); }, - socket: computed(() => { - return window.EMBER_INSPECTOR_CONFIG.remoteDebugSocket; - }), + socket: computed(() => window.EMBER_INSPECTOR_CONFIG.remoteDebugSocket), _connect() { this.get('socket').on('emberInspectorMessage', message => { diff --git a/app/app.js b/app/app.js index c6eeb7e384..83c316f4a7 100644 --- a/app/app.js +++ b/app/app.js @@ -42,7 +42,7 @@ App.initializer({ // register and inject adapter let Adapter; if (Ember.typeOf(instance.adapter) === 'string') { - Adapter = instance.resolveRegistration('adapter:' + instance.adapter); + Adapter = instance.resolveRegistration(`adapter:${instance.adapter}`); } else { Adapter = instance.adapter; } diff --git a/app/components/deprecation-item-source.js b/app/components/deprecation-item-source.js index 4cf5e2363c..8db01724fa 100644 --- a/app/components/deprecation-item-source.js +++ b/app/components/deprecation-item-source.js @@ -8,7 +8,7 @@ export default Component.extend({ url: computed('model.map.source', 'model.map.line', 'known', function() { let source = this.get('model.map.source'); if (this.get('known')) { - return source + ':' + this.get('model.map.line'); + return `${source}:${this.get('model.map.line')}`; } else { return 'Unkown source'; } diff --git a/app/components/drag-handle.js b/app/components/drag-handle.js index fda40b0bf1..9f5dad9a68 100644 --- a/app/components/drag-handle.js +++ b/app/components/drag-handle.js @@ -14,11 +14,11 @@ export default Ember.Component.extend({ let $container = this.$().parent(); let $containerOffsetLeft = $container.offset().left; let $containerOffsetRight = $containerOffsetLeft + $container.width(); - let namespace = 'drag-' + this.get('elementId'); + let namespace = `drag-${this.get('elementId')}`; this.sendAction('action', true); - Ember.$('body').on('mousemove.' + namespace, e => { + Ember.$('body').on(`mousemove.${namespace}`, e => { let position = this.get('isLeft') ? e.pageX - $containerOffsetLeft : $containerOffsetRight - e.pageX; @@ -27,17 +27,17 @@ export default Ember.Component.extend({ this.set('position', position); } }) - .on('mouseup.' + namespace + ' mouseleave.' + namespace, () => { + .on(`mouseup.${namespace} mouseleave.${namespace}`, () => { this.stopDragging(); }); }, stopDragging() { this.sendAction('action', false); - Ember.$('body').off('.drag-' + this.get('elementId')); + Ember.$('body').off(`.drag-${this.get('elementId')}`); }, - willDestroyElement: function() { + willDestroyElement() { this._super(); this.stopDragging(); }, diff --git a/app/components/draggable-column.js b/app/components/draggable-column.js index 465111053e..669a69dce7 100644 --- a/app/components/draggable-column.js +++ b/app/components/draggable-column.js @@ -3,7 +3,8 @@ // A wrapper for a resizable-column and a drag-handle component import Ember from "ember"; -const { Component, computed } = Ember; + +const { Component } = Ember; export default Component.extend({ tagName: '', // Prevent wrapping in a div diff --git a/app/components/main-content.js b/app/components/main-content.js index 7f97717909..3f9d233b92 100644 --- a/app/components/main-content.js +++ b/app/components/main-content.js @@ -12,7 +12,7 @@ export default Component.extend({ updateHeight: null, didInsertElement() { - $(window).on('resize.view-' + this.get('elementId'), () => { + $(window).on(`resize.view-${this.get('elementId')}`, () => { this._updateHeightDebounce = debounce(this, '_updateHeight', 200); }); schedule('afterRender', this, '_updateHeight'); @@ -24,7 +24,7 @@ export default Component.extend({ }, willDestroyElement() { - $(window).off('.view-' + this.get('elementId')); + $(window).off(`.view-${this.get('elementId')}`); cancel(this._updateHeightDebounce); return this._super(...arguments); } diff --git a/app/components/mixin-property.js b/app/components/mixin-property.js index fb4c00aed2..464dc60e3d 100644 --- a/app/components/mixin-property.js +++ b/app/components/mixin-property.js @@ -66,7 +66,7 @@ export default Component.extend({ let value = this.get('model.value.inspect'); let type = this.get('model.value.type'); if (type === 'type-string') { - value = '"' + value + '"'; + value = `"${value}"`; } if (!this.get('isDate')) { this.set('txtValue', value); diff --git a/app/components/object-inspector.js b/app/components/object-inspector.js index 447b17ae87..6610877b63 100644 --- a/app/components/object-inspector.js +++ b/app/components/object-inspector.js @@ -16,7 +16,7 @@ export default Component.extend({ trail: computed('model.[]', function() { let nested = this.get('model').slice(1); if (nested.length === 0) { return ""; } - return "." + nested.mapBy('property').join("."); + return `.${nested.mapBy('property').join(".")}`; }), isNested: computed('model.[]', function() { diff --git a/app/components/promise-item.js b/app/components/promise-item.js index ae89630683..dacd53c43c 100644 --- a/app/components/promise-item.js +++ b/app/components/promise-item.js @@ -1,6 +1,7 @@ import Ember from "ember"; -const { Component, computed, String: { htmlSafe }, getOwner, isEmpty } = Ember; -const { alias, notEmpty, empty, gt, equal } = computed; + +const { Component, computed, String: { htmlSafe }, isEmpty } = Ember; +const { notEmpty, gt, equal } = computed; const COLOR_MAP = { red: '#ff2717', diff --git a/app/components/record-item.js b/app/components/record-item.js index 97e4962ee3..a9694d2b3e 100644 --- a/app/components/record-item.js +++ b/app/components/record-item.js @@ -26,9 +26,7 @@ export default Component.extend({ columns: computed('modelTypeColumns.[]', 'model.columnValues', function() { let columns = this.get('modelTypeColumns') || []; - return columns.map(col => { - return { name: col.name, value: this.get('model.columnValues.' + col.name) }; - }); + return columns.map(col => ({ name: col.name, value: this.get(`model.columnValues.${col.name}`) })); }), click() { diff --git a/app/components/render-item.js b/app/components/render-item.js index 6b753df023..715f92c7b1 100644 --- a/app/components/render-item.js +++ b/app/components/render-item.js @@ -1,7 +1,8 @@ import Ember from 'ember'; import escapeRegExp from "ember-inspector/utils/escape-reg-exp"; -const { Component, computed, isEmpty, run, on, observer, String: { htmlSafe } } = Ember; -const { gt, readOnly } = computed; + +const { Component, computed, isEmpty, isNone, run, on, observer, String: { htmlSafe } } = Ember; +const { gt } = computed; const { once } = run; export default Component.extend({ @@ -42,7 +43,7 @@ export default Component.extend({ level: computed('target.level', function() { let parentLevel = this.get('target.level'); - if (parentLevel == null) { + if (isNone(parentLevel)) { parentLevel = -1; } return parentLevel + 1; @@ -68,10 +69,10 @@ export default Component.extend({ let d = new Date(this.get('model.timestamp')); let ms = d.getMilliseconds(); let seconds = d.getSeconds(); - let minutes = d.getMinutes().toString().length === 1 ? '0' + d.getMinutes() : d.getMinutes(); - let hours = d.getHours().toString().length === 1 ? '0' + d.getHours() : d.getHours(); + let minutes = d.getMinutes().toString().length === 1 ? `0${d.getMinutes()}` : d.getMinutes(); + let hours = d.getHours().toString().length === 1 ? `0${d.getHours()}` : d.getHours(); - return hours + ':' + minutes + ':' + seconds + ':' + ms; + return `${hours}:${minutes}:${seconds}:${ms}`; }), actions: { diff --git a/app/components/route-item.js b/app/components/route-item.js index 077420250e..0884ba1855 100644 --- a/app/components/route-item.js +++ b/app/components/route-item.js @@ -19,6 +19,6 @@ export default Component.extend({ return false; } - return checkCurrentRoute( currentRoute, this.get('model.value.name') ); + return checkCurrentRoute(currentRoute, this.get('model.value.name')); }) }); diff --git a/app/components/x-list-content.js b/app/components/x-list-content.js index 2b93cdf493..9e5cfdb03c 100644 --- a/app/components/x-list-content.js +++ b/app/components/x-list-content.js @@ -1,6 +1,6 @@ import Ember from 'ember'; -const { Component, computed, computed: { readOnly }, String: { htmlSafe } } = Ember; +const { Component, computed, String: { htmlSafe } } = Ember; /** * Base list view config diff --git a/app/controllers/application.js b/app/controllers/application.js index a612c493e6..140bd049c3 100644 --- a/app/controllers/application.js +++ b/app/controllers/application.js @@ -1,5 +1,6 @@ import Ember from "ember"; -const { Controller, computed, computed: { equal }, inject: { controller } } = Ember; + +const { Controller, computed, computed: { equal } } = Ember; export default Controller.extend({ isDragging: false, diff --git a/app/controllers/promise-tree.js b/app/controllers/promise-tree.js index e3da331fb2..18d7a30228 100644 --- a/app/controllers/promise-tree.js +++ b/app/controllers/promise-tree.js @@ -1,5 +1,6 @@ import Ember from "ember"; -const { Controller, computed, observer, run, inject: { controller }, getOwner, isEmpty } = Ember; + +const { Controller, computed, observer, run, inject: { controller }, isEmpty } = Ember; const { equal, bool, and, not, filter } = computed; const { next, once, debounce } = run; diff --git a/app/controllers/records.js b/app/controllers/records.js index 78fcbf71c8..2f4881dca2 100644 --- a/app/controllers/records.js +++ b/app/controllers/records.js @@ -44,14 +44,14 @@ export default Controller.extend({ let filter = this.get('filterValue'); return this.get('model').filter(item => { // check filters - if (filter && !get(item, 'filterValues.' + filter)) { + if (filter && !get(item, `filterValues.${filter}`)) { return false; } // check search if (!Ember.isEmpty(search)) { let searchString = this.recordToString(item); - return !!searchString.match(new RegExp('.*' + escapeRegExp(search.toLowerCase()) + '.*')); + return !!searchString.match(new RegExp(`.*${escapeRegExp(search.toLowerCase())}.*`)); } return true; }); diff --git a/app/controllers/route-tree.js b/app/controllers/route-tree.js index ce44124284..dfaabef7a3 100644 --- a/app/controllers/route-tree.js +++ b/app/controllers/route-tree.js @@ -32,7 +32,7 @@ export default Controller.extend({ actions: { inspectRoute(name) { - this.get('port').send('objectInspector:inspectRoute', { name } ); + this.get('port').send('objectInspector:inspectRoute', { name }); }, sendRouteHandlerToConsole(name) { this.get('port').send('objectInspector:sendRouteHandlerToConsole', { name }); @@ -41,7 +41,7 @@ export default Controller.extend({ if (!controller.exists) { return; } - this.get('port').send('objectInspector:inspectController', { name: controller.name } ); + this.get('port').send('objectInspector:inspectController', { name: controller.name }); }, sendControllerToConsole(name) { this.get('port').send('objectInspector:sendControllerToConsole', { name }); diff --git a/app/helpers/ms-to-time.js b/app/helpers/ms-to-time.js index b6293a8302..659b50f217 100644 --- a/app/helpers/ms-to-time.js +++ b/app/helpers/ms-to-time.js @@ -4,7 +4,7 @@ const { Helper: { helper } } = Ember; export function msToTime([time]) { if (time && !isNaN(+time)) { let formatted = time.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'); - return formatted + 'ms'; + return `${formatted}ms`; } } diff --git a/app/libs/promise-assembler.js b/app/libs/promise-assembler.js index f3fbc440e8..8b1fcd0e4e 100644 --- a/app/libs/promise-assembler.js +++ b/app/libs/promise-assembler.js @@ -163,8 +163,6 @@ export default Ember.Object.extend(EventedMixin, { if (!guid) { Ember.assert('You have tried to findOrCreate without a guid'); } - return this.find(guid) || this.createPromise({ - guid: guid - }); + return this.find(guid) || this.createPromise({ guid }); } }); diff --git a/app/models/promise.js b/app/models/promise.js index 61e9f18eb1..7af433b711 100644 --- a/app/models/promise.js +++ b/app/models/promise.js @@ -102,7 +102,7 @@ export default Ember.Object.extend({ if (replace) { this.set('branchLabel', label); } else { - this.set('branchLabel', this.get('branchLabel') + ' ' + label); + this.set('branchLabel', `${this.get('branchLabel')} ${label}`); } let parent = this.get('parent'); @@ -114,11 +114,11 @@ export default Ember.Object.extend({ branchLabel: '', matches(val) { - return !!this.get('branchLabel').toLowerCase().match(new RegExp('.*' + escapeRegExp(val.toLowerCase()) + '.*')); + return !!this.get('branchLabel').toLowerCase().match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`)); }, matchesExactly(val) { - return !!((this.get('label') || '').toLowerCase().match(new RegExp('.*' + escapeRegExp(val.toLowerCase()) + '.*'))); + return !!((this.get('label') || '').toLowerCase().match(new RegExp(`.*${escapeRegExp(val.toLowerCase())}.*`))); }, diff --git a/app/routes/application.js b/app/routes/application.js index 7c4ec4cbdc..943f60cf31 100644 --- a/app/routes/application.js +++ b/app/routes/application.js @@ -27,10 +27,10 @@ export default Route.extend({ updateObject(options) { const details = options.details, - name = options.name, - property = options.property, - objectId = options.objectId, - errors = options.errors; + name = options.name, + property = options.property, + objectId = options.objectId, + errors = options.errors; Ember.NativeArray.apply(details); details.forEach(arrayize); @@ -78,7 +78,7 @@ export default Route.extend({ }, inspectObject(objectId) { if (objectId) { - this.get('port').send('objectInspector:inspectById', { objectId: objectId }); + this.get('port').send('objectInspector:inspectById', { objectId }); } }, setIsDragging(isDragging) { diff --git a/app/routes/info.js b/app/routes/info.js index 332ac55451..579a331957 100644 --- a/app/routes/info.js +++ b/app/routes/info.js @@ -14,7 +14,7 @@ export default TabRoute.extend({ port.one('general:libraries', message => { message.libraries.insertAt(0, { name: 'Ember Inspector', - version: version + version }); resolve(message.libraries); }); diff --git a/app/routes/tab.js b/app/routes/tab.js index 33f7666e30..9ca53ed551 100644 --- a/app/routes/tab.js +++ b/app/routes/tab.js @@ -4,7 +4,7 @@ export default Ember.Route.extend({ renderTemplate() { this.render(); try { - this.render(this.get('routeName').replace(/\./g, '/') + '-toolbar', { + this.render(`${this.get('routeName').replace(/\./g, '/')}-toolbar`, { into: 'application', outlet: 'toolbar' }); diff --git a/app/utils/check-current-route.js b/app/utils/check-current-route.js index 9aa5d0bf43..240f3d18dd 100644 --- a/app/utils/check-current-route.js +++ b/app/utils/check-current-route.js @@ -6,7 +6,7 @@ export default function(currentRouteName, routeName) { } regName = routeName.replace('.', '\\.'); - match = currentRouteName.match(new RegExp('(^|\\.)' + regName + '(\\.|$)')); + match = currentRouteName.match(new RegExp(`(^|\\.)${regName}(\\.|$)`)); if (match && match[0].match(/^\.[^.]+$/)) { match = false; } diff --git a/config/environment.js b/config/environment.js index ffd626bf3e..cddb9affdf 100644 --- a/config/environment.js +++ b/config/environment.js @@ -1,4 +1,3 @@ -/* jshint node: true */ var packageJson = require('../package.json'); module.exports = function(environment) { diff --git a/ember-cli-build.js b/ember-cli-build.js index 36302c2793..49ecb7b693 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -1,4 +1,3 @@ -/*jshint node:true*/ /* global require, module */ var EmberApp = require('ember-cli/lib/broccoli/ember-app'); @@ -26,9 +25,6 @@ var options = { // async/await optional: ['es7.asyncFunctions'] }, - eslint: { - testGenerator: eslintTestGenerator - }, 'ember-cli-qunit': { useLintTree: false } @@ -99,7 +95,7 @@ module.exports = function(defaults) { var linted = eslint(emberDebug, { testGenerator: eslintTestGenerator, options: { - configFile: './ember_debug/.eslintrc', + configFile: './ember_debug/.eslintrc.js', rulePaths: ['./'] } }); diff --git a/ember_debug/.eslintrc b/ember_debug/.eslintrc deleted file mode 100644 index 00f922fdb1..0000000000 --- a/ember_debug/.eslintrc +++ /dev/null @@ -1,46 +0,0 @@ -{ - "extends": "ember", - "env": { - "es6": true, - }, - "rules": { - "callback-return": 0, - "no-implicit-coercion": 0, - "spaced-comment": 0, - "arrow-spacing": [ 2, { "before": true, "after": true } ], - "prefer-reflect": 0, - "prefer-const": 0, - "no-restricted-syntax": [2, "WithStatement"], - "object-curly-spacing": [ 2, "always" ], - "vars-on-top": 0, - "no-undef": 0, - "no-shadow": 0, - "space-infix-ops": 0, - "no-lonely-if": 0, - "no-unneeded-ternary": 0, - "guard-for-in": 0, - "wrap-iife": 0, - "complexity": 0, - "dot-notation": 0, - "max-len": [2, 250], - "no-param-reassign": 0, - "block-scoped-var": 0, - "no-unused-vars": 0, - "no-ternary": 0, - "no-else-return": 0, - "space-in-parens": 0, - "spaced-comment": 0, - "no-undefined": 0, - "brace-style": 0, - "consistent-return": 0, - "no-use-before-define": 0, - "consistent-this": 0, - "no-underscore-dangle": 0, - "valid-jsdoc": 0, - "quotes": 0, - "one-var": 0, - "newline-after-var": 0, - "no-warning-comments": 0, - "space-before-function-paren": 0 - } -} diff --git a/ember_debug/.eslintrc.js b/ember_debug/.eslintrc.js new file mode 100644 index 0000000000..d679b58d5e --- /dev/null +++ b/ember_debug/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '../.eslintrc.js', +}; diff --git a/ember_debug/adapters/basic.js b/ember_debug/adapters/basic.js index a28904e5bd..7c14809d1f 100644 --- a/ember_debug/adapters/basic.js +++ b/ember_debug/adapters/basic.js @@ -93,12 +93,11 @@ export default EmberObject.extend({ handleError(error) { if (this.get('environment') === 'production') { if (error && error instanceof Error) { - error = 'Error message: ' + error.message + '\nStack trace: ' + error.stack; + error = `Error message: ${error.message}\nStack trace: ${error.stack}`; } - this.warn('Ember Inspector has errored.\n' + - 'This is likely a bug in the inspector itself.\n' + - 'You can report bugs at https://github.com/emberjs/ember-inspector.\n' + - error); + this.warn(`Ember Inspector has errored.\n` + + `This is likely a bug in the inspector itself.\n` + + `You can report bugs at https://github.com/emberjs/ember-inspector.\n${error}`); } else { this.warn('EmberDebug has errored:'); throw error; diff --git a/ember_debug/adapters/firefox.js b/ember_debug/adapters/firefox.js index 15a4c40e4e..9d85caf7a2 100644 --- a/ember_debug/adapters/firefox.js +++ b/ember_debug/adapters/firefox.js @@ -38,14 +38,14 @@ export default BasicAdapter.extend({ inspectElement(elem) { this.sendMessage({ type: 'view:devtools:inspectDOMElement', - elementSelector: "#" + elem.getAttribute('id') + elementSelector: `#${elem.getAttribute('id')}` }); }, _listen() { window.addEventListener('ember-debug-receive', event => { - var message = event.detail; + let message = event.detail; run(() => { // FIX: needed to fix permission denied exception on Firefox >= 30 // - https://github.com/emberjs/ember-inspector/issues/147 diff --git a/ember_debug/addons/ember-new-computed/utils/can-use-new-syntax.js b/ember_debug/addons/ember-new-computed/utils/can-use-new-syntax.js index 6cfb67ab23..afc654064d 100644 --- a/ember_debug/addons/ember-new-computed/utils/can-use-new-syntax.js +++ b/ember_debug/addons/ember-new-computed/utils/can-use-new-syntax.js @@ -4,8 +4,8 @@ let supportsSetterGetter; try { computed({ - set: function() { }, - get: function() { } + set() { }, + get() { } }); supportsSetterGetter = true; } catch (e) { diff --git a/ember_debug/container-debug.js b/ember_debug/container-debug.js index 1fe4e48948..2994124470 100644 --- a/ember_debug/container-debug.js +++ b/ember_debug/container-debug.js @@ -74,13 +74,11 @@ export default EmberObject.extend(PortMixin, { if (!instances) { return null; } - return instances.map(item => { - return { - name: this.nameFromKey(item.fullName), - fullName: item.fullName, - inspectable: this.get('objectInspector').canSend(item.instance) - }; - }); + return instances.map(item => ({ + name: this.nameFromKey(item.fullName), + fullName: item.fullName, + inspectable: this.get('objectInspector').canSend(item.instance) + })); }, messages: { @@ -93,7 +91,7 @@ export default EmberObject.extend(PortMixin, { let instances = this.getInstances(message.containerType); if (instances) { this.sendMessage('instances', { - instances: instances, + instances, status: 200 }); } else { diff --git a/ember_debug/data-debug.js b/ember_debug/data-debug.js index 9ecc095b1e..9bfb7ec251 100644 --- a/ember_debug/data-debug.js +++ b/ember_debug/data-debug.js @@ -75,31 +75,23 @@ export default EmberObject.extend(PortMixin, { columns: type.columns, count: type.count, name: type.name, - objectId: objectId + objectId }; }, recordsAdded(recordsReceived) { - let records; - records = recordsReceived.map(record => this.wrapRecord(record)); - this.sendMessage('recordsAdded', { - records: records - }); + let records = recordsReceived.map(record => this.wrapRecord(record)); + this.sendMessage('recordsAdded', { records }); }, recordsUpdated(recordsReceived) { let records = recordsReceived.map(record => this.wrapRecord(record)); - this.sendMessage('recordsUpdated', { - records: records - }); + this.sendMessage('recordsUpdated', { records }); }, - recordsRemoved(idx, count) { - this.sendMessage('recordsRemoved', { - index: idx, - count: count - }); + recordsRemoved(index, count) { + this.sendMessage('recordsRemoved', { index, count }); }, wrapRecord(record) { @@ -116,11 +108,11 @@ export default EmberObject.extend(PortMixin, { (typeof keyword === 'string' || typeof keyword === 'number') ); return { - columnValues: columnValues, - searchKeywords: searchKeywords, + columnValues, + searchKeywords, filterValues: record.filterValues, color: record.color, - objectId: objectId + objectId }; }, diff --git a/ember_debug/deprecation-debug.js b/ember_debug/deprecation-debug.js index 9fd9a53f86..cab6c0a223 100644 --- a/ember_debug/deprecation-debug.js +++ b/ember_debug/deprecation-debug.js @@ -42,9 +42,9 @@ export default EmberObject.extend(PortMixin, { if (this.get('emberCliConfig') && this.get('emberCliConfig.environment') === 'development') { return this.get('sourceMap').map(stackStr).then(mapped => { if (mapped && mapped.length > 0) { - var source = mapped.find(item => { - return item.source && !!item.source.match(new RegExp(this.get('emberCliConfig.modulePrefix'))); - }); + let source = mapped.find( + item => item.source && !!item.source.match(new RegExp(this.get('emberCliConfig.modulePrefix')))); + if (source) { source.found = true; } else { @@ -84,10 +84,7 @@ export default EmberObject.extend(PortMixin, { if (!found) { let stackStr = deprecation.stackStr; promise = this.fetchSourceMap(stackStr).then(map => { - obj.sources.pushObject({ - map: map, - stackStr: stackStr - }); + obj.sources.pushObject({ map, stackStr }); if (map) { obj.hasSourceMap = true; } @@ -134,7 +131,7 @@ export default EmberObject.extend(PortMixin, { deprecation.sources.forEach(source => { let stack = source.stackStr; stack = stack.split('\n'); - stack.unshift('Ember Inspector (Deprecation Trace): ' + (deprecation.message || '')); + stack.unshift(`Ember Inspector (Deprecation Trace): ${deprecation.message || ''}`); this.get('adapter').log(stack.join('\n')); }); }, @@ -163,7 +160,7 @@ export default EmberObject.extend(PortMixin, { }, replaceDeprecate() { - var self = this; + let self = this; this.originalDeprecate = Ember.deprecate; Ember.deprecate = function(message, test, options) { @@ -205,7 +202,7 @@ export default EmberObject.extend(PortMixin, { replace(/^\(/gm, '{anonymous}(').split('\n'); } - stackStr = "\n " + stack.slice(2).join("\n "); + stackStr = `\n ${stack.slice(2).join("\n ")}`; } let url; @@ -213,11 +210,7 @@ export default EmberObject.extend(PortMixin, { url = options.url; } - const deprecation = { - message: message, - stackStr: stackStr, - url: url - }; + const deprecation = { message, stackStr, url }; // For ember-debug testing we usually don't want // to catch deprecations diff --git a/ember_debug/libs/promise-assembler.js b/ember_debug/libs/promise-assembler.js index ad5a8276f2..cd31b4d050 100644 --- a/ember_debug/libs/promise-assembler.js +++ b/ember_debug/libs/promise-assembler.js @@ -87,9 +87,7 @@ let PromiseAssembler = EmberObject.extend(Evented, { }, findOrCreate(guid) { - return this.find(guid) || this.createPromise({ - guid: guid - }); + return this.find(guid) || this.createPromise({ guid }); }, updateOrCreate(guid, properties) { @@ -108,7 +106,7 @@ let PromiseAssembler = EmberObject.extend(Evented, { export default PromiseAssembler; -const fulfill = function(event) { +function fulfill(event) { const guid = event.guid; const promise = this.updateOrCreate(guid, { label: event.label, @@ -116,13 +114,10 @@ const fulfill = function(event) { state: 'fulfilled', value: event.detail }); - this.trigger('fulfilled', { - promise: promise - }); -}; - + this.trigger('fulfilled', { promise }); +} -const reject = function(event) { +function reject(event) { const guid = event.guid; const promise = this.updateOrCreate(guid, { label: event.label, @@ -130,13 +125,10 @@ const reject = function(event) { state: 'rejected', reason: event.detail }); - this.trigger('rejected', { - promise: promise - }); -}; + this.trigger('rejected', { promise }); +} function chain(event) { - /*jshint validthis:true */ let guid = event.guid; let promise = this.updateOrCreate(guid, { label: event.label, @@ -148,14 +140,10 @@ function chain(event) { child.set('parent', promise); children.pushObject(child); - this.trigger('chained', { - promise: promise, - child: child - }); + this.trigger('chained', { promise, child }); } function create(event) { - /*jshint validthis:true */ const guid = event.guid; const promise = this.updateOrCreate(guid, { @@ -168,7 +156,5 @@ function create(event) { if (isNone(promise.get('state'))) { promise.set('state', 'created'); } - this.trigger('created', { - promise: promise - }); + this.trigger('created', { promise }); } diff --git a/ember_debug/libs/source-map.js b/ember_debug/libs/source-map.js index c8cb9fafa5..2b7ae88c48 100644 --- a/ember_debug/libs/source-map.js +++ b/ember_debug/libs/source-map.js @@ -26,9 +26,7 @@ export default EmberObject.extend({ let array = A(); let lastPromise = null; parsed.forEach(item => { - lastPromise = this.get('_lastPromise').then(() => { - return this.getSourceMap(item.url); - }, null, 'ember-inspector').then(smc => { + lastPromise = this.get('_lastPromise').then(() => this.getSourceMap(item.url), null, 'ember-inspector').then(smc => { if (smc) { let source = smc.originalPositionFor({ line: item.line, @@ -114,7 +112,7 @@ function retrieveFile(source) { function retrieveSourceMapURL(source) { return retrieveFile(source).then(function(fileData) { - let match = /\/\/[#@]\s*sourceMappingURL=(.*)\s*$/g.exec(fileData); + let match = (/\/\/[#@]\s*sourceMappingURL=(.*)\s*$/g).exec(fileData); if (!match) { return null; } let url = match[1]; // check not data URL diff --git a/ember_debug/main.js b/ember_debug/main.js index 129fa87033..b371530437 100644 --- a/ember_debug/main.js +++ b/ember_debug/main.js @@ -12,13 +12,15 @@ import DeprecationDebug from "ember-debug/deprecation-debug"; import Session from "ember-debug/services/session"; const Ember = window.Ember; -const { Object: EmberObject, run, Application, namespaces } = Ember; +const { Object: EmberObject, run, Application, Namespace } = Ember; const EmberDebug = EmberObject.extend({ application: null, started: false, + // Using object shorthand syntax here is somehow having strange side effects. + // eslint-disable-next-line object-shorthand Port: Port, Adapter: BasicAdapter, diff --git a/ember_debug/mixins/port-mixin.js b/ember_debug/mixins/port-mixin.js index 0b0de29017..4d6a6f19cb 100644 --- a/ember_debug/mixins/port-mixin.js +++ b/ember_debug/mixins/port-mixin.js @@ -43,7 +43,7 @@ export default Mixin.create({ messageName(name) { let messageName = name; if (this.get('portNamespace')) { - messageName = this.get('portNamespace') + ':' + messageName; + messageName = `${this.get('portNamespace')}:${messageName}`; } return messageName; } diff --git a/ember_debug/models/profile-manager.js b/ember_debug/models/profile-manager.js index db535575cc..82767d912d 100644 --- a/ember_debug/models/profile-manager.js +++ b/ember_debug/models/profile-manager.js @@ -64,10 +64,7 @@ ProfileManager.prototype = { _profilesAddedCallbacks: undefined, // set to array on init onProfilesAdded(context, callback) { - this._profilesAddedCallbacks.push({ - context: context, - callback: callback - }); + this._profilesAddedCallbacks.push({ context, callback }); }, offProfilesAdded(context, callback) { diff --git a/ember_debug/object-inspector.js b/ember_debug/object-inspector.js index 359dce28aa..5ee73c3314 100644 --- a/ember_debug/object-inspector.js +++ b/ember_debug/object-inspector.js @@ -17,7 +17,7 @@ function inspectValue(value) { } else if (isDescriptor(value)) { return { type: "type-descriptor", inspect: value.toString(), computed: true }; } else { - return { type: "type-" + typeOf(value), inspect: inspect(value) }; + return { type: `type-${typeOf(value)}`, inspect: inspect(value) }; } } @@ -39,12 +39,12 @@ function inspect(value) { if (value.length === 0) { return '[]'; } else if (value.length === 1) { - return '[ ' + inspect(value[0]) + ' ]'; + return `[ ${inspect(value[0])} ]`; } else { - return '[ ' + inspect(value[0]) + ', ... ]'; + return `[ ${inspect(value[0])}, ... ]`; } } else if (value instanceof Error) { - return 'Error: ' + value.message; + return `Error: ${value.message}`; } else if (value === null) { return 'null'; } else if (typeOf(value) === 'date') { @@ -67,16 +67,16 @@ function inspect(value) { v = value[key]; if (v === 'toString') { continue; } // ignore useless items if (typeOf(v) === 'function') { v = "function() { ... }"; } - if (typeOf(v) === 'array') { v = '[Array : ' + v.length + ']'; } + if (typeOf(v) === 'array') { v = `[Array : ${v.length}]`; } if (typeOf(v) === 'object') { v = '[Object]'; } - ret.push(key + ": " + v); + ret.push(`${key}: ${v}`); } } let suffix = ' }'; if (broken) { suffix = ' ...}'; } - return '{ ' + ret.join(', ') + suffix; + return `{ ${ret.join(', ')}${suffix}`; } else { return emberInspect(value); } @@ -144,11 +144,11 @@ export default EmberObject.extend(PortMixin, { }, sendControllerToConsole(message) { const container = this.get('application.__container__'); - this.sendValueToConsole(container.lookup('controller:' + message.name)); + this.sendValueToConsole(container.lookup(`controller:${message.name}`)); }, sendRouteHandlerToConsole(message) { const container = this.get('application.__container__'); - this.sendValueToConsole(container.lookup('route:' + message.name)); + this.sendValueToConsole(container.lookup(`route:${message.name}`)); }, inspectRoute(message) { const container = this.get('application.__container__'); @@ -156,7 +156,7 @@ export default EmberObject.extend(PortMixin, { }, inspectController(message) { const container = this.get('application.__container__'); - this.sendObject(container.lookup('controller:' + message.name)); + this.sendObject(container.lookup(`controller:${message.name}`)); }, inspectById(message) { const obj = this.sentObjects[message.objectId]; @@ -175,7 +175,7 @@ export default EmberObject.extend(PortMixin, { } else { stack = error; } - this.get('adapter').log('Object Inspector error for ' + error.property, stack); + this.get('adapter').log(`Object Inspector error for ${error.property}`, stack); }); } }, @@ -212,14 +212,14 @@ export default EmberObject.extend(PortMixin, { digIntoObject(objectId, property) { let parentObject = this.sentObjects[objectId], - object = get(parentObject, property); + object = get(parentObject, property); if (this.canSend(object)) { let details = this.mixinsForObject(object); this.sendMessage('updateObject', { parentObject: objectId, - property: property, + property, objectId: details.objectId, name: object.toString(), details: details.mixins, @@ -230,7 +230,7 @@ export default EmberObject.extend(PortMixin, { sendObject(object) { if (!this.canSend(object)) { - throw new Error("Can't inspect " + object + ". Only Ember objects and arrays are supported."); + throw new Error(`Can't inspect ${object}. Only Ember objects and arrays are supported.`); } let details = this.mixinsForObject(object); this.sendMessage('updateObject', { @@ -296,7 +296,7 @@ export default EmberObject.extend(PortMixin, { delete this.get('_errorsFor')[objectId]; - this.sendMessage('droppedObject', { objectId: objectId }); + this.sendMessage('droppedObject', { objectId }); }, removeObservers(objectId) { @@ -350,7 +350,7 @@ export default EmberObject.extend(PortMixin, { this.bindProperties(objectId, mixinDetails); let errors = errorsToSend(errorsForObject); - return { objectId: objectId, mixins: mixinDetails, errors: errors }; + return { objectId, mixins: mixinDetails, errors }; }, valueForObjectProperty(objectId, property, mixinIndex) { @@ -367,12 +367,7 @@ export default EmberObject.extend(PortMixin, { value.computed = true; - return { - objectId: objectId, - property: property, - value: value, - mixinIndex: mixinIndex - }; + return { objectId, property, value, mixinIndex }; } }, @@ -388,17 +383,12 @@ export default EmberObject.extend(PortMixin, { value = inspectValue(value); value.computed = computed; - this.sendMessage('updateProperty', { - objectId: objectId, - property: property, - value: value, - mixinIndex: mixinIndex - }); + this.sendMessage('updateProperty', { objectId, property, value, mixinIndex }); }; addObserver(object, property, handler); this.boundObservers[objectId] = this.boundObservers[objectId] || []; - this.boundObservers[objectId].push({ property: property, handler: handler }); + this.boundObservers[objectId].push({ property, handler }); }, @@ -410,19 +400,14 @@ export default EmberObject.extend(PortMixin, { } if (item.value.type !== 'type-descriptor' && item.value.type !== 'type-function') { let computed = !!item.value.computed; - this.bindPropertyToDebugger({ - objectId: objectId, - property: item.name, - mixinIndex: mixinIndex, - computed: computed - }); + this.bindPropertyToDebugger({ objectId, property: item.name, mixinIndex, computed }); } }); }); }, - inspect: inspect, - inspectValue: inspectValue + inspect, + inspectValue }); @@ -459,7 +444,8 @@ function addProperties(properties, hash) { function replaceProperty(properties, name, value, options) { let found; - for (var i = 0, l = properties.length; i < l; i++) { + let i, l; + for (i = 0, l = properties.length; i < l; i++) { if (properties[i].name === name) { found = i; break; @@ -484,8 +470,8 @@ function fixMandatorySetters(mixinDetails) { seen[property.name] = { name: property.name, value: property.value.inspect, - detailIdx: detailIdx, - property: property + detailIdx, + property }; } else if (seen.hasOwnProperty(property.name) && seen[property.name] === property.value.inspect) { propertiesToRemove.push(seen[property.name]); @@ -708,11 +694,8 @@ function calculateCP(object, property, errorsForObject) { delete errorsForObject[property]; try { return get(object, property); - } catch (e) { - errorsForObject[property] = { - property: property, - error: e - }; + } catch (error) { + errorsForObject[property] = { property, error }; return new CalculateCPError(); } } @@ -720,7 +703,5 @@ function calculateCP(object, property, errorsForObject) { function CalculateCPError() {} function errorsToSend(errors) { - return toArray(errors).map(error => { - return { property: error.property }; - }); + return toArray(errors).map(error => ({ property: error.property })); } diff --git a/ember_debug/port.js b/ember_debug/port.js index d8eb2cd248..24d17d7508 100644 --- a/ember_debug/port.js +++ b/ember_debug/port.js @@ -9,7 +9,7 @@ export default EmberObject.extend(Ember.Evented, { application: oneWay('namespace.application').readOnly(), uniqueId: computed('application', function() { - return guidFor(this.get('application')) + '__' + window.location.href + '__' + Date.now(); + return `${guidFor(this.get('application'))}__${window.location.href}__${Date.now()}`; }), init() { diff --git a/ember_debug/promise-debug.js b/ember_debug/promise-debug.js index 6e5729868a..75c57499cd 100644 --- a/ember_debug/promise-debug.js +++ b/ember_debug/promise-debug.js @@ -64,7 +64,7 @@ export default EmberObject.extend(PortMixin, { let stack = promise.get('stack'); if (stack) { stack = stack.split("\n"); - stack.splice(0, 2, ['Ember Inspector (Promise Trace): ' + (promise.get('label') || '')]); + stack.splice(0, 2, [`Ember Inspector (Promise Trace): ${promise.get('label') || ''}`]); this.get("adapter").log(stack.join("\n")); } }, @@ -128,7 +128,7 @@ export default EmberObject.extend(PortMixin, { updatedPromises: computed(function() { return A(); }), - promisesUpdated: function(uniquePromises) { + promisesUpdated(uniquePromises) { if (!uniquePromises) { uniquePromises = A(); this.get('updatedPromises').forEach(promise => { @@ -136,9 +136,7 @@ export default EmberObject.extend(PortMixin, { }); } // Remove inspector-created promises - uniquePromises = uniquePromises.filter(promise => { - return promise.get('label') !== 'ember-inspector'; - }); + uniquePromises = uniquePromises.filter(promise => promise.get('label') !== 'ember-inspector'); const serialized = this.serializeArray(uniquePromises); this.sendMessage('promisesUpdated', { promises: serialized @@ -158,9 +156,7 @@ export default EmberObject.extend(PortMixin, { }, serializeArray(promises) { - return promises.map(item => { - return this.serialize(item); - }); + return promises.map(item => this.serialize(item)); }, serialize(promise) { @@ -185,9 +181,7 @@ export default EmberObject.extend(PortMixin, { }, promiseIds(promises) { - return promises.map(promise => { - return promise.get('guid'); - }); + return promises.map(promise => promise.get('guid')); }, inspectValue(value) { diff --git a/ember_debug/render-debug.js b/ember_debug/render-debug.js index 5d392f24a6..701b5164c2 100644 --- a/ember_debug/render-debug.js +++ b/ember_debug/render-debug.js @@ -36,8 +36,8 @@ subscribe("render", { before(name, timestamp, payload) { const info = { type: 'began', - timestamp: timestamp, - payload: payload, + timestamp, + payload, now: Date.now() }; return push(info); @@ -46,8 +46,8 @@ subscribe("render", { after(name, timestamp, payload, beganIndex) { const endedInfo = { type: 'ended', - timestamp: timestamp, - payload: payload + timestamp, + payload }; const index = push(endedInfo); @@ -62,13 +62,11 @@ export default EmberObject.extend(PortMixin, { viewDebug: oneWay('namespace.viewDebug').readOnly(), portNamespace: 'render', - profileManager: profileManager, + profileManager, init() { this._super(); - this.profileManager.wrapForErrors = (context, callback) => { - return this.get('port').wrap(() => callback.call(context)); - }; + this.profileManager.wrapForErrors = (context, callback) => this.get('port').wrap(() => callback.call(context)); this._subscribeForViewTrees(); }, @@ -105,7 +103,7 @@ export default EmberObject.extend(PortMixin, { }, sendAdded(profiles) { - this.sendMessage('profilesAdded', { profiles: profiles }); + this.sendMessage('profilesAdded', { profiles }); }, messages: { diff --git a/ember_debug/route-debug.js b/ember_debug/route-debug.js index b93c6a2324..475350c351 100644 --- a/ember_debug/route-debug.js +++ b/ember_debug/route-debug.js @@ -83,7 +83,7 @@ export default EmberObject.extend(PortMixin, { className = className.replace(new RegExp(`^${type}\:`), ''); } else if (className) { // Module exists and found - className = className.replace(new RegExp('^/?(' + prefix +'|' + podPrefix + ')/' + type + 's/'), ''); + className = className.replace(new RegExp(`^/?(${prefix}|${podPrefix})/${type}s/`), ''); } else { // Module does not exist if (usePodsByDefault) { @@ -92,9 +92,9 @@ export default EmberObject.extend(PortMixin, { // (podPrefix - prefix) is part of the file path. let currentPrefix = ''; if (podPrefix) { - currentPrefix = podPrefix.replace(new RegExp('^/?' + prefix + '/?'), ''); + currentPrefix = podPrefix.replace(new RegExp(`^/?${prefix}/?`), ''); } - className = currentPrefix + '/' + name + '/' + type; + className = `${currentPrefix}/${name}/${type}`; } else { className = name.replace(/\./g, '/'); } @@ -103,7 +103,7 @@ export default EmberObject.extend(PortMixin, { } else { // No modules if (type !== 'template') { - className = classify(name.replace(/\./g, '_') + '_' + type); + className = classify(`${name.replace(/\./g, '_')}_${type}`); } else { className = name.replace(/\./g, '/'); } @@ -113,12 +113,12 @@ export default EmberObject.extend(PortMixin, { }); -const buildSubTree = function(routeTree, route) { +function buildSubTree(routeTree, route) { let handlers = route.handlers; let container = this.get('application.__container__'); let subTree = routeTree; let item, routeClassName, routeHandler, controllerName, - controllerClassName, templateName, controllerFactory; + controllerClassName, templateName, controllerFactory; for (let i = 0; i < handlers.length; i++) { item = handlers[i]; @@ -128,7 +128,7 @@ const buildSubTree = function(routeTree, route) { routeHandler = container.lookup('router:main').router.getHandler(handler); controllerName = routeHandler.get('controllerName') || routeHandler.get('routeName'); - controllerFactory = container.lookupFactory('controller:' + controllerName); + controllerFactory = container.lookupFactory(`controller:${controllerName}`); controllerClassName = this.getClassName(controllerName, 'controller'); templateName = this.getClassName(handler, 'template'); @@ -142,7 +142,7 @@ const buildSubTree = function(routeTree, route) { controller: { className: controllerClassName, name: controllerName, - exists: controllerFactory ? true : false + exists: !!controllerFactory }, template: { name: templateName @@ -163,7 +163,7 @@ const buildSubTree = function(routeTree, route) { } subTree = subTree[handler].children; } -}; +} function arrayizeChildren(routeTree) { let obj = {}; @@ -194,7 +194,7 @@ function getURL(container, segments) { name = segments[i].generate(); } catch (e) { // is dynamic - name = ':' + segments[i].name; + name = `:${segments[i].name}`; } if (name) { url.push(name); @@ -206,7 +206,7 @@ function getURL(container, segments) { if (url.match(/_unused_dummy_/)) { url = ''; } else { - url = '/' + url; + url = `/${url}`; url = locationImplementation.formatURL(url); } diff --git a/ember_debug/services/session.js b/ember_debug/services/session.js index 3b8107bc99..65e1a23426 100644 --- a/ember_debug/services/session.js +++ b/ember_debug/services/session.js @@ -2,15 +2,15 @@ const Ember = window.Ember; const { Object: EmberObject } = Ember; const Session = EmberObject.extend({ - setItem: function(/*key, val*/) {}, - removeItem: function(/*key*/) {}, - getItem: function(/*key*/) {} + setItem(/*key, val*/) {}, + removeItem(/*key*/) {}, + getItem(/*key*/) {} }); // Feature detection if (typeof sessionStorage !== 'undefined') { Session.reopen({ - sessionStorage: sessionStorage, + sessionStorage, prefix: '__ember__inspector__', makeKey(key) { return this.prefix + key; diff --git a/ember_debug/view-debug.js b/ember_debug/view-debug.js index 6d36684b60..4f1bcaafbb 100644 --- a/ember_debug/view-debug.js +++ b/ember_debug/view-debug.js @@ -95,7 +95,7 @@ export default EmberObject.extend(PortMixin, { previewDiv.style.display = 'none'; previewDiv.setAttribute('data-label', 'preview-div'); - $(window).on('resize.' + this.get('eventNamespace'), () => { + $(window).on(`resize.${this.get('eventNamespace')}`, () => { if (highlightedElement) { this.highlightView(highlightedElement); } @@ -125,7 +125,7 @@ export default EmberObject.extend(PortMixin, { }, eventNamespace: computed(function() { - return 'view_debug_' + guidFor(this); + return `view_debug_${guidFor(this)}`; }), willDestroy() { @@ -156,14 +156,26 @@ export default EmberObject.extend(PortMixin, { // we don't want the preview div to intercept the mousemove event $(previewDiv).css('pointer-events', 'none'); - $('body').on('mousemove.inspect-' + this.get('eventNamespace'), e => { + const pinView = () => { + if (viewElem) { + this.highlightView(viewElem); + let view = this.get('objectInspector').sentObjects[viewElem.id]; + if (view instanceof Component) { + this.get('objectInspector').sendObject(view); + } + } + this.stopInspecting(); + return false; + }; + + $('body').on(`mousemove.inspect-${this.get('eventNamespace')}`, e => { let originalTarget = $(e.target); viewElem = this.findNearestView(originalTarget); if (viewElem) { this.highlightView(viewElem, true); } }) - .on('mousedown.inspect-' + this.get('eventNamespace'), () => { + .on(`mousedown.inspect-${this.get('eventNamespace')}`, () => { // prevent app-defined clicks from being fired $(previewDiv).css('pointer-events', '') .one('mouseup', function() { @@ -171,23 +183,8 @@ export default EmberObject.extend(PortMixin, { return pinView(); }); }) - .on('mouseup.inspect-' + this.get('eventNamespace'), () => { - // firefox - return pinView(); - }) + .on(`mouseup.inspect-${this.get('eventNamespace')}`, () => /* firefox */ pinView()) .css('cursor', '-webkit-zoom-in'); - - const pinView = () => { - if (viewElem) { - this.highlightView(viewElem); - let view = this.get('objectInspector').sentObjects[viewElem.id]; - if (view instanceof Component) { - this.get('objectInspector').sendObject(view); - } - } - this.stopInspecting(); - return false; - }; }, findNearestView(elem) { @@ -205,10 +202,10 @@ export default EmberObject.extend(PortMixin, { stopInspecting() { $('body') - .off('mousemove.inspect-' + this.get('eventNamespace')) - .off('mousedown.inspect-' + this.get('eventNamespace')) - .off('mouseup.inspect-' + this.get('eventNamespace')) - .off('click.inspect-' + this.get('eventNamespace')) + .off(`mousemove.inspect-${this.get('eventNamespace')}`) + .off(`mousedown.inspect-${this.get('eventNamespace')}`) + .off(`mouseup.inspect-${this.get('eventNamespace')}`) + .off(`click.inspect-${this.get('eventNamespace')}`) .css('cursor', ''); this.hidePreview(); @@ -224,9 +221,7 @@ export default EmberObject.extend(PortMixin, { this.releaseCurrentObjects(); let tree = this.viewTree(); if (tree) { - this.sendMessage('viewTree', { - tree: tree - }); + this.sendMessage('viewTree', { tree }); } }, 50); }, @@ -255,7 +250,7 @@ export default EmberObject.extend(PortMixin, { let children = []; this.get('_lastNodes').clear(); let renderNode = rootView._renderNode; - tree = { value: this._inspectNode(renderNode), children: children }; + tree = { value: this._inspectNode(renderNode), children }; this._appendNodeChildren(renderNode, children); return tree; @@ -292,13 +287,13 @@ export default EmberObject.extend(PortMixin, { let timeToRender = this._durations[viewId]; let value = { - viewClass: viewClass, + viewClass, completeViewClass: viewName(view), objectId: viewId, duration: timeToRender, - name: name, + name, template: templateName || '(inline)', - tagName: tagName, + tagName, isVirtual: view.get('isVirtual'), isComponent: (view instanceof Component) }; @@ -322,7 +317,7 @@ export default EmberObject.extend(PortMixin, { } else { value.model = { name: this.get('objectInspector').inspect(model), - type: 'type-' + typeOf(model) + type: `type-${typeOf(model)}` }; } } @@ -350,7 +345,7 @@ export default EmberObject.extend(PortMixin, { }, highlightView(element, isPreview) { - let range, view, rect; + let view, rect; if (!isPreview) { highlightedElement = element; @@ -375,7 +370,7 @@ export default EmberObject.extend(PortMixin, { let options = { - isPreview: isPreview, + isPreview, view: { name: viewName(view), object: view @@ -414,8 +409,8 @@ export default EmberObject.extend(PortMixin, { // take into account the scrolling position as mentioned in docs // https://developer.mozilla.org/en-US/docs/Web/API/element.getBoundingClientRect rect = $.extend({}, rect); - rect.top = rect.top + window.scrollY; - rect.left = rect.left + window.scrollX; + rect.top += window.scrollY; + rect.left += window.scrollX; if (isPreview) { div = previewDiv; @@ -450,24 +445,24 @@ export default EmberObject.extend(PortMixin, { let template = options.template; if (template) { - output += "
template=" + escapeHTML(template.name) + "
"; + output += `template=${escapeHTML(template.name)}
`; } let view = options.view; let controller = options.controller; - if (!view ||!(view.object instanceof Component)) { + if (!view || !(view.object instanceof Component)) { if (controller) { - output += "controller=" + escapeHTML(controller.name) + "
"; + output += `controller=${escapeHTML(controller.name)}
`; } if (view) { - output += "view=" + escapeHTML(view.name) + "
"; + output += `view=${escapeHTML(view.name)}
`; } } else { - output += "component=" + escapeHTML(view.name) + "
"; + output += `component=${escapeHTML(view.name)}
`; } let model = options.model; if (model) { - output += "model=" + escapeHTML(model.name) + "
"; + output += `model=${escapeHTML(model.name)}
`; } $(div).html(output); @@ -552,7 +547,7 @@ export default EmberObject.extend(PortMixin, { }), viewRegistry: computed('application', function() { - return this.get('application.__container__').lookup('-view-registry:main') || View.views; + return this.get('application.__container__').lookup('-view-registry:main'); }), /** @@ -725,13 +720,13 @@ export default EmberObject.extend(PortMixin, { let value = { template: this._nodeTemplateName(renderNode) || '(inline)', - name: name, + name, objectId: viewId, viewClass: viewClassName, duration: timeToRender, completeViewClass: completeViewClassName, isComponent: this._nodeIsEmberComponent(renderNode), - tagName: tagName, + tagName, isVirtual: !viewClass }; @@ -756,7 +751,7 @@ export default EmberObject.extend(PortMixin, { } else { value.model = { name: this.get('objectInspector').inspect(model), - type: 'type-' + typeOf(model) + type: `type-${typeOf(model)}` }; } } @@ -852,9 +847,7 @@ export default EmberObject.extend(PortMixin, { range.setEndAfter(renderNode.lastNode); let rect = range.getBoundingClientRect(); - let options = { - isPreview: isPreview - }; + let options = { isPreview }; let controller = this._controllerForNode(renderNode); if (controller) { @@ -921,7 +914,7 @@ function getModelName(model) { if (name.length > 50) { - name = name.substr(0, 50) + '...'; + name = `${name.substr(0, 50)}...`; } return name; } @@ -967,7 +960,7 @@ function viewDescription(view) { } else if (view.get('_parentView.controller') === controller || view instanceof Component) { let viewClassName = view.get('_debugContainerKey'); if (viewClassName) { - viewClassName = viewClassName.match(/\:(.*)/); + viewClassName = viewClassName.match(/:(.*)/); if (viewClassName) { viewClassName = viewClassName[1]; } diff --git a/package.json b/package.json index 71077c2bc7..7aca10a6bb 100644 --- a/package.json +++ b/package.json @@ -35,14 +35,14 @@ "license": "MIT", "devDependencies": { "aws-sdk": "^2.3.3", - "babel-eslint": "4.1.7", + "babel-eslint": "^6.1.2", "broccoli-asset-rev": "^2.4.2", "broccoli-babel-transpiler": "5.1.0", "broccoli-concat": "0.0.12", "broccoli-es6modules": "^0.5.1", "broccoli-file-creator": "^0.1.0", "broccoli-funnel": "^1.0.5", - "broccoli-lint-eslint": "1.1.1", + "broccoli-lint-eslint": "^2.0.0", "broccoli-merge-trees": "^0.2.1", "broccoli-replace": "^0.3.1", "broccoli-sass": "^0.6.1", @@ -55,7 +55,7 @@ "ember-cli-babel": "^5.1.6", "ember-cli-dependency-checker": "^1.2.0", "ember-cli-deprecation-workflow": "^0.2.2", - "ember-cli-eslint": "https://github.com/teddyzeenny/ember-cli-eslint#1.1.0", + "ember-cli-eslint": "^1.7.0", "ember-cli-htmlbars": "^1.0.3", "ember-cli-htmlbars-inline-precompile": "^0.3.1", "ember-cli-ic-ajax": "0.2.4", @@ -69,7 +69,6 @@ "ember-pikaday": "2.0.0", "ember-resolver": "^2.0.3", "ember-run-raf": "1.1.2", - "eslint-config-ember": "0.2.0", "fstream": "^1.0.8", "grunt": "^0.4.5", "grunt-cli": "^0.1.13", diff --git a/skeletons/chrome/options.js b/skeletons/chrome/options.js index edb9e5a7f5..c20c292415 100644 --- a/skeletons/chrome/options.js +++ b/skeletons/chrome/options.js @@ -26,7 +26,6 @@ * Save the updated options to storage. */ function storeOptions() { - /*jshint validthis:true */ var showTomster = this.checked; chrome.storage.sync.set({ diff --git a/testem.js b/testem.js index 26044b2f85..77c58e7f12 100644 --- a/testem.js +++ b/testem.js @@ -1,4 +1,3 @@ -/*jshint node:true*/ module.exports = { "framework": "qunit", "test_page": "tests/index.html?hidepassed", diff --git a/tests/.eslintrc b/tests/.eslintrc deleted file mode 100644 index a718b63cba..0000000000 --- a/tests/.eslintrc +++ /dev/null @@ -1,56 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": "ember", - "globals": { - "define": true, - "visit": true, - "exists": true, - "fillIn": true, - "click": true, - "keyEvent": true, - "triggerEvent": true, - "find": true, - "findWithAssert": true, - "wait": true, - "andThen": true, - "currentURL": true, - "currentPath": true, - "currentRouteName": true, - "triggerPort": true - }, - "rules": { - "global-require": 0, - "no-implicit-coercion": 0, - "arrow-spacing": [ 2, { "before": true, "after": true } ], - "prefer-reflect": 0, - "prefer-const": 0, - "no-restricted-syntax": [2, "WithStatement"], - "object-curly-spacing": [ 2, "always" ], - "no-console": 0, - "no-multiple-empty-lines": 0, - "max-len": [2, 250], - "no-shadow": 0, - "max-nested-callbacks": [2, 5], - "guard-for-in": 0, - "no-extend-native": 0, - "no-unused-vars": 0, - "no-param-reassign": 0, - "block-scoped-var": 0, - "no-ternary": 0, - "no-else-return": 0, - "space-in-parens": 0, - "spaced-comment": 0, - "no-undefined": 0, - "brace-style": 0, - "consistent-return": 0, - "no-use-before-define": 0, - "consistent-this": 0, - "no-underscore-dangle": 0, - "valid-jsdoc": 0, - "quotes": 0, - "one-var": 0, - "newline-after-var": 0, - "no-warning-comments": 0, - "space-before-function-paren": 0 - } -} diff --git a/tests/.eslintrc.js b/tests/.eslintrc.js new file mode 100644 index 0000000000..c48e55620b --- /dev/null +++ b/tests/.eslintrc.js @@ -0,0 +1,12 @@ +module.exports = { + parser: 'babel-eslint', + env: { + 'embertest': true + }, + globals: { + 'wait': true, + 'triggerPort': true + }, + rules: { + }, +}; diff --git a/tests/.jshintrc b/tests/.jshintrc deleted file mode 100644 index 6ec0b7c154..0000000000 --- a/tests/.jshintrc +++ /dev/null @@ -1,52 +0,0 @@ -{ - "predef": [ - "document", - "window", - "location", - "setTimeout", - "$", - "-Promise", - "define", - "console", - "visit", - "exists", - "fillIn", - "click", - "keyEvent", - "triggerEvent", - "find", - "findWithAssert", - "wait", - "DS", - "andThen", - "currentURL", - "currentPath", - "currentRouteName" - ], - "node": false, - "browser": false, - "boss": true, - "curly": true, - "debug": false, - "devel": false, - "eqeqeq": true, - "evil": true, - "forin": false, - "immed": false, - "laxbreak": false, - "newcap": true, - "noarg": true, - "noempty": false, - "nonew": false, - "nomen": false, - "onevar": false, - "plusplus": false, - "regexp": false, - "undef": true, - "sub": true, - "strict": false, - "white": false, - "eqnull": true, - "esnext": true, - "unused": true -} diff --git a/tests/acceptance/container_test.js b/tests/acceptance/container_test.js index 2656376344..395c84bddd 100644 --- a/tests/acceptance/container_test.js +++ b/tests/acceptance/container_test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module } from 'qunit'; import { test } from 'ember-qunit'; diff --git a/tests/acceptance/data-test.js b/tests/acceptance/data-test.js index 2b4d7b15ea..ffb90ca471 100644 --- a/tests/acceptance/data-test.js +++ b/tests/acceptance/data-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -74,8 +73,8 @@ function recordFactory(attr, filterValues) { return { columnValues: attr, objectId: attr.objectId || Ember.guidFor(object), - filterValues: filterValues, - searchKeywords: searchKeywords + filterValues, + searchKeywords }; } diff --git a/tests/acceptance/deprecation-test.js b/tests/acceptance/deprecation-test.js index 6a797cec15..1283d95aa3 100644 --- a/tests/acceptance/deprecation-test.js +++ b/tests/acceptance/deprecation-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -36,7 +35,7 @@ module('Deprecation Tab', { App = startApp({ adapter: 'basic' }); port = App.__container__.lookup('port:main'); port.reopen({ - send: function(n, m) { + send(n, m) { name = n; message = m; } diff --git a/tests/acceptance/info-test.js b/tests/acceptance/info-test.js index 8a3d7d1d42..9b7ce5240e 100644 --- a/tests/acceptance/info-test.js +++ b/tests/acceptance/info-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; diff --git a/tests/acceptance/object-inspector-test.js b/tests/acceptance/object-inspector-test.js index c26ea44373..a2fd985614 100644 --- a/tests/acceptance/object-inspector-test.js +++ b/tests/acceptance/object-inspector-test.js @@ -1,9 +1,8 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; import startApp from '../helpers/start-app'; -const { run, $ } = Ember; +const { run } = Ember; let App; let port, message, name; @@ -15,7 +14,7 @@ module('Object Inspector', { }); port = App.__container__.lookup('port:main'); port.reopen({ - send: function(n, m) { + send(n, m) { name = n; message = m; } @@ -49,7 +48,7 @@ function objectFactory(props) { } function objectToInspect() { - return objectFactory( { + return objectFactory({ name: 'My Object', objectId: 'objectId', errors: [], @@ -88,7 +87,7 @@ function objectToInspect() { } test("The object displays correctly", async function (assert) { - let obj = objectFactory( { name: 'My Object' }); + let obj = objectFactory({ name: 'My Object' }); await visit('/'); await triggerPort('objectInspector:updateObject', obj); @@ -404,7 +403,7 @@ test("Dropping an object due to destruction", async function (assert) { await triggerPort('objectInspector:updateObject', obj); assert.equal(find('.js-object-name').text().trim(), 'My Object'); - await triggerPort('objectInspector:droppedObject', { objectId: 'myObject' } ); + await triggerPort('objectInspector:droppedObject', { objectId: 'myObject' }); assert.equal(find('.js-object-name').text().trim(), ''); }); @@ -498,19 +497,3 @@ test("Errors are correctly displayed", async function (assert) { assert.equal(find('.js-object-inspector-errors').length, 0); }); - - - -function triggerEvent(elem, name) { - /*global Event */ - let event; - try { - event = new Event(name); - } catch (e) { - //phatomjs < 2.0 - event = document.createEvent('Event'); - event.initEvent('change'); - } - - $(elem)[0].dispatchEvent(event); -} diff --git a/tests/acceptance/promise-test.js b/tests/acceptance/promise-test.js index 3c2a3e942d..e19ca9214f 100644 --- a/tests/acceptance/promise-test.js +++ b/tests/acceptance/promise-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -15,7 +14,7 @@ module('Promise Tab', { }); port = App.__container__.lookup('port:main'); port.reopen({ - send: function(n, m) { + send(n, m) { if (n === 'promise:getAndObservePromises') { port.trigger('promise:promisesUpdated', { promises: [] diff --git a/tests/acceptance/render-tree-test.js b/tests/acceptance/render-tree-test.js index df8e5338ff..bc6094fff2 100644 --- a/tests/acceptance/render-tree-test.js +++ b/tests/acceptance/render-tree-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -14,7 +13,7 @@ module('Render Tree Tab', { }); port = App.__container__.lookup('port:main'); port.reopen({ - send: function(/*n, m*/) {} + send(/*n, m*/) {} }); }, afterEach() { diff --git a/tests/acceptance/route-tree-test.js b/tests/acceptance/route-tree-test.js index 7d688b6d58..37bd5df3ee 100644 --- a/tests/acceptance/route-tree-test.js +++ b/tests/acceptance/route-tree-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -22,15 +21,15 @@ module('Route Tree Tab', { function routeValue(name, props) { let value = { - name: name, + name, controller: { - name: name, - className: name.replace(/\./g, '_').classify() + 'Controller', + name, + className: `${name.replace(/\./g, '_').classify()}Controller`, exists: true }, routeHandler: { - name: name, - className: name.replace(/\./g, '_').classify() + 'Route' + name, + className: `${name.replace(/\./g, '_').classify()}Route` }, template: { name: name.replace(/\./g, '/') diff --git a/tests/acceptance/view-tree-test.js b/tests/acceptance/view-tree-test.js index df00824980..bc4d181277 100644 --- a/tests/acceptance/view-tree-test.js +++ b/tests/acceptance/view-tree-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { test } from 'ember-qunit'; import { module } from 'qunit'; @@ -111,7 +110,7 @@ test("It should correctly display the view tree", async function(assert) { await visit('/'); run(() => { - port.trigger('view:viewTree', { tree: viewTree } ); + port.trigger('view:viewTree', { tree: viewTree }); }); await wait(); @@ -165,9 +164,7 @@ test("It should correctly display the view tree", async function(assert) { '2.50ms' ], 'expected render durations'); - let titleTips = find('span[title]').toArray().map(node => { - return node.getAttribute('title'); - }).sort(); + let titleTips = find('span[title]').toArray().map(node => node.getAttribute('title')).sort(); assert.deepEqual(titleTips, [ 'App.ApplicationController', @@ -213,7 +210,7 @@ test("Previewing / showing a view on the client", async function(assert) { let messageSent = null; port.reopen({ send(name, message) { - messageSent = { name: name, message: message }; + messageSent = { name, message }; } }); @@ -235,7 +232,7 @@ test("Inspecting views on hover", async function(assert) { let messageSent = null; port.reopen({ send(name, message) { - messageSent = { name: name, message: message }; + messageSent = { name, message }; } }); @@ -254,7 +251,7 @@ test("Configuring which views to show", async function(assert) { let messageSent = null; port.reopen({ send(name, message) { - messageSent = { name: name, message: message }; + messageSent = { name, message }; } }); @@ -279,14 +276,14 @@ test("Inspecting a model", async function(assert) { let messageSent = null; port.reopen({ send(name, message) { - messageSent = { name: name, message: message }; + messageSent = { name, message }; } }); await visit('/'); let tree = defaultViewTree(); run(() => { - port.trigger('view:viewTree', { tree } ); + port.trigger('view:viewTree', { tree }); }); await wait(); let model = find('.js-view-model-clickable').eq(0); diff --git a/tests/ember_debug/container-debug-test.js b/tests/ember_debug/container-debug-test.js index ed92e4ed6d..c7cd4272bd 100644 --- a/tests/ember_debug/container-debug-test.js +++ b/tests/ember_debug/container-debug-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import { module, test } from 'qunit'; import Ember from "ember"; const { run, A: emberA, Application } = Ember; @@ -21,8 +20,8 @@ module("Container Debug", { /* globals require */ EmberDebug = require('ember-debug/main').default; EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function(n, m) { + init() {}, + send(n, m) { name = n; message = m; } diff --git a/tests/ember_debug/deprecation-debug-test.js b/tests/ember_debug/deprecation-debug-test.js index 9a96041c71..65c0525a94 100644 --- a/tests/ember_debug/deprecation-debug-test.js +++ b/tests/ember_debug/deprecation-debug-test.js @@ -5,7 +5,6 @@ const { RSVP, run } = Ember; const EmberDebug = require("ember-debug/main").default; let port; -/* jshint ignore:start */ let App; function setupApp() { @@ -17,8 +16,8 @@ function setupApp() { module("Deprecation Debug", { beforeEach() { EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function(/*n, m*/) {} + init() {}, + send(/*n, m*/) {} }); run(function() { setupApp(); @@ -28,7 +27,7 @@ module("Deprecation Debug", { port = EmberDebug.port; EmberDebug.IGNORE_DEPRECATIONS = true; EmberDebug.deprecationDebug.reopen({ - fetchSourceMap: function() { return RSVP.resolve(null); }, + fetchSourceMap() { return RSVP.resolve(null); }, emberCliConfig: null }); }, @@ -41,11 +40,8 @@ module("Deprecation Debug", { test("deprecations are caught and sent", async function t(assert) { let messages = []; port.reopen({ - send: function(name, message) { - messages.push({ - name: name, - message: message - }); + send(name, message) { + messages.push({ name, message }); } }); diff --git a/tests/ember_debug/ember-debug-test.js b/tests/ember_debug/ember-debug-test.js index d779e649d7..77008dcad3 100644 --- a/tests/ember_debug/ember-debug-test.js +++ b/tests/ember_debug/ember-debug-test.js @@ -1,12 +1,10 @@ let name; -/* jshint ignore:start */ /* eslint no-empty:0 */ import Ember from "ember"; import { module, test } from 'qunit'; let EmberDebug; let port, adapter; -/* jshint ignore:start */ const { run, Application, Object: EmberObject } = Ember; let App; let EmberInspector; @@ -23,8 +21,8 @@ module("Ember Debug", { /* globals require */ EmberDebug = require('ember-debug/main').default; EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function(n/*, m*/) { + init() {}, + send(n/*, m*/) { name = n; } }); diff --git a/tests/ember_debug/object-inspector-test.js b/tests/ember_debug/object-inspector-test.js index 2a7e9086d8..26c7b28ab2 100644 --- a/tests/ember_debug/object-inspector-test.js +++ b/tests/ember_debug/object-inspector-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module, test } from 'qunit'; import computed from 'ember-new-computed'; @@ -27,6 +26,7 @@ function setupApp() { let ignoreErrors = true; module("Ember Debug - Object Inspector", { + // eslint-disable-next-line object-shorthand beforeEach: async function() { /* globals require */ EmberDebug = require('ember-debug/main').default; @@ -66,15 +66,15 @@ test("An Ember Object is correctly transformed into an inspection hash", functio }); Parent.reopenClass({ - toString: function() { + toString() { return 'Parent Object'; } }); let inspected = Parent.create({ id: 1, - toString: function() { - return 'Object:' + this.get('name'); + toString() { + return `Object:${this.get('name')}`; }, nullVal: null, dateVal: date @@ -124,7 +124,7 @@ test("Computed properties are correctly calculated", function(assert) { hi: computed(function() { return 'Hello'; }).property(), - _debugInfo: function() { + _debugInfo() { return { propertyInfo: { expensiveProperties: ['hi'] @@ -302,7 +302,7 @@ test("Property grouping can be customized using _debugInfo", function(assert) { gender: 'Male', hasChildren: false, expensiveProperty: computed(function() { return ''; }).property(), - _debugInfo: function() { + _debugInfo() { return { propertyInfo: { includeOtherProperties: true, @@ -390,7 +390,7 @@ test("Views are correctly handled when destroyed during transitions", async func test("Objects are dropped on destruction", async function(assert) { let didDestroy = false; let object = Ember.Object.create({ - willDestroy: function() { + willDestroy() { didDestroy = true; } }); @@ -408,7 +408,7 @@ test("Objects are dropped on destruction", async function(assert) { assert.ok(didDestroy, 'Original willDestroy is preserved.'); assert.ok(!objectInspector.sentObjects[objectId], 'Object is dropped'); assert.equal(name, 'objectInspector:droppedObject'); - assert.deepEqual(message, { objectId: objectId }); + assert.deepEqual(message, { objectId }); }); diff --git a/tests/ember_debug/profile-manager-test.js b/tests/ember_debug/profile-manager-test.js index 6bd0cd1a6e..d9716c69b1 100644 --- a/tests/ember_debug/profile-manager-test.js +++ b/tests/ember_debug/profile-manager-test.js @@ -1,6 +1,5 @@ -/* jshint ignore:start */ /* globals require */ -import { module, test } from 'qunit'; +import { test } from 'qunit'; const ProfileManager = require('ember-debug/models/profile-manager').default; test("Construction", function(assert) { diff --git a/tests/ember_debug/profile-node-test.js b/tests/ember_debug/profile-node-test.js index 77ef9495c6..8a28f179ec 100644 --- a/tests/ember_debug/profile-node-test.js +++ b/tests/ember_debug/profile-node-test.js @@ -13,7 +13,7 @@ test("It can create a ProfileNode", function(assert) { assert.equal(p.children.length, 0, "it has no children by default"); assert.ok(!p.time, "It has no time because it's unfinished"); }); -/* jshint ignore:start */ + test("with no payload it has an unknown name", function(assert) { let p = new ProfileNode(1234); assert.equal(p.name, "Unknown view"); @@ -22,7 +22,7 @@ test("with no payload it has an unknown name", function(assert) { test("It can extract the name from an object payload", function(assert) { let p = new ProfileNode(1000, { object: { - toString: function() { return "custom toString()"; } + toString() { return "custom toString()"; } } }); diff --git a/tests/ember_debug/promise-assembler-test.js b/tests/ember_debug/promise-assembler-test.js index d4987c7f11..c27de4abad 100644 --- a/tests/ember_debug/promise-assembler-test.js +++ b/tests/ember_debug/promise-assembler-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module, test } from 'qunit'; /*globals require*/ diff --git a/tests/ember_debug/promise-debug-test.js b/tests/ember_debug/promise-debug-test.js index ef8ebaa8c9..85eebaa87a 100644 --- a/tests/ember_debug/promise-debug-test.js +++ b/tests/ember_debug/promise-debug-test.js @@ -1,6 +1,5 @@ -/* jshint ignore:start */ import Ember from "ember"; -import { module, test, stop, start } from 'qunit'; +import { module, test } from 'qunit'; /*globals require */ const EmberDebug = require("ember-debug/main").default; @@ -24,8 +23,8 @@ module("Promise Debug", { beforeEach() { EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function(n, m) { + init() {}, + send(n, m) { name = n; message = m; } @@ -128,10 +127,10 @@ test("Instrumentation with stack is persisted to session storage", function(asse let withStack = false; EmberDebug.get('promiseDebug').reopen({ session: { - getItem: function(/*key*/) { + getItem(/*key*/) { return withStack; }, - setItem: function(key, val) { + setItem(key, val) { withStack = val; } } diff --git a/tests/ember_debug/render-debug-test.js b/tests/ember_debug/render-debug-test.js index 6faaeb2657..99ad0cf0f1 100644 --- a/tests/ember_debug/render-debug-test.js +++ b/tests/ember_debug/render-debug-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module, test } from 'qunit'; @@ -22,8 +21,8 @@ function setupApp() { module("Render Debug", { beforeEach() { EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function() {} + init() {}, + send() {} }); run(function() { setupApp(); diff --git a/tests/ember_debug/route-debug-test.js b/tests/ember_debug/route-debug-test.js index d1a57d626f..73d0e22720 100644 --- a/tests/ember_debug/route-debug-test.js +++ b/tests/ember_debug/route-debug-test.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module, test } from 'qunit'; const { run, Application } = Ember; @@ -32,8 +31,8 @@ function getChildrenProperty(route, prop) { module("Route Tree Debug", { beforeEach() { EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function() {} + init() {}, + send() {} }); run(function() { setupApp(); @@ -77,7 +76,7 @@ test("Route tree", async function t(assert) { assert.equal(route.value.template.name, 'application'); assert.equal(route.children.length, 6); - assert.deepEqual(getChildrenProperty(route, 'name'), ['loading', 'error', 'simple', 'posts', 'comments', 'index'] ); + assert.deepEqual(getChildrenProperty(route, 'name'), ['loading', 'error', 'simple', 'posts', 'comments', 'index']); let commentsRoute = route.children.filter(function(child) { return child.value.name === 'comments'; diff --git a/tests/ember_debug/view-debug-test.js b/tests/ember_debug/view-debug-test.js index 82b7578937..03fd9ad6c6 100644 --- a/tests/ember_debug/view-debug-test.js +++ b/tests/ember_debug/view-debug-test.js @@ -1,11 +1,10 @@ -/* jshint ignore:start */ import Ember from "ember"; import { module, test } from 'qunit'; const { $, Application } = Ember; /* globals require */ const EmberDebug = require('ember-debug/main').default; -const { View, Route, Object: EmberObject, Handlebars, Controller } = Ember; +const { Route, Object: EmberObject, Handlebars, Controller } = Ember; const { compile } = Handlebars; let port; let App, run = Ember.run; @@ -89,8 +88,8 @@ function setupApp() { module("View Debug", { beforeEach() { EmberDebug.Port = EmberDebug.Port.extend({ - init: function() {}, - send: function() {} + init() {}, + send() {} }); run(function() { setupApp(); diff --git a/tests/helpers/start-app.js b/tests/helpers/start-app.js index 6492f3c5d7..3444aff0e2 100644 --- a/tests/helpers/start-app.js +++ b/tests/helpers/start-app.js @@ -1,8 +1,10 @@ +/* eslint no-unused-vars: 0 */ + import Ember from 'ember'; import Application from '../../app'; import config from '../../config/environment'; import triggerPort from './trigger-port'; -const { generateGuid, K, getOwner } = Ember; +const { generateGuid, K } = Ember; export default function startApp(attrs) { let application; @@ -11,7 +13,7 @@ export default function startApp(attrs) { attributes = Ember.merge(attributes, attrs); // use defaults, but you can override; Application.instanceInitializer({ - name: generateGuid() + "-detectEmberApplication", + name: `${generateGuid()}-detectEmberApplication`, initialize(instance) { instance.lookup('route:app-detected').reopen({ model: K diff --git a/tests/helpers/trigger-port.js b/tests/helpers/trigger-port.js index c381a7a233..b6a4d5fb1a 100644 --- a/tests/helpers/trigger-port.js +++ b/tests/helpers/trigger-port.js @@ -1,4 +1,3 @@ -/* jshint ignore:start */ import Ember from 'ember'; const { run, Test: { registerHelper } } = Ember; export default registerHelper('triggerPort', async function t(app, ...args) {