From 28457747e7f4666865ae9358bd4b60ae854e9ba1 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 25 Nov 2017 11:14:44 -0800 Subject: [PATCH] Fix eslint import extension (#682) * Fix eslint import extension * Update eslint hound * Enable no unresolved for normal usage --- .eslintrc-hound.json | 2 ++ .eslintrc.json | 3 +++ js/automation-editor/automation-editor.js | 2 +- js/automation-editor/automation.js | 6 +++--- js/automation-editor/trigger/event.js | 5 ++--- js/automation-editor/trigger/index.js | 4 ++-- js/automation-editor/trigger/mqtt.js | 2 +- js/automation-editor/trigger/numeric_state.js | 2 +- js/automation-editor/trigger/state.js | 2 +- js/automation-editor/trigger/sun.js | 2 +- js/automation-editor/trigger/template.js | 2 +- js/automation-editor/trigger/time.js | 2 +- js/automation-editor/trigger/trigger_edit.js | 18 +++++++++--------- js/automation-editor/trigger/trigger_row.js | 2 +- js/automation-editor/trigger/zone.js | 2 +- .../component/condition/condition_edit.js | 12 ++++++------ js/common/component/condition/condition_row.js | 2 +- js/common/component/condition/index.js | 2 +- js/common/component/condition/numeric_state.js | 2 +- js/common/component/condition/state.js | 2 +- js/common/component/condition/sun.js | 2 +- js/common/component/condition/template.js | 2 +- js/common/component/condition/time.js | 2 +- js/common/component/condition/zone.js | 2 +- js/common/component/script/action_edit.js | 10 +++++----- js/common/component/script/action_row.js | 2 +- js/common/component/script/call_service.js | 4 ++-- js/common/component/script/condition.js | 4 ++-- js/common/component/script/delay.js | 2 +- js/common/component/script/event.js | 4 ++-- js/common/component/script/index.js | 2 +- js/common/component/script/wait.js | 2 +- js/common/util/compute_domain.js | 8 ++------ js/common/util/compute_state_display.js | 10 +++++----- js/common/util/compute_state_domain.js | 9 +++++++++ js/script-editor/script-editor.js | 2 +- js/script-editor/script.js | 2 +- js/util.js | 14 +++++++------- test-mocha/common/util/compute_domain.js | 10 +++++----- test-mocha/common/util/compute_state_domain.js | 12 ++++++++++++ 40 files changed, 101 insertions(+), 80 deletions(-) create mode 100644 js/common/util/compute_state_domain.js create mode 100644 test-mocha/common/util/compute_state_domain.js diff --git a/.eslintrc-hound.json b/.eslintrc-hound.json index 1482baee37..fc0ccf9251 100644 --- a/.eslintrc-hound.json +++ b/.eslintrc-hound.json @@ -46,6 +46,8 @@ "no-restricted-globals": 0, "prefer-promise-reject-errors": 0, "import/prefer-default-export": 0, + "import/no-unresolved": 0, + "import/extensions": [2, "ignorePackages"], "react/jsx-no-bind": [2, { "ignoreRefs": true }], "react/jsx-no-duplicate-props": 2, "react/self-closing-comp": 2, diff --git a/.eslintrc.json b/.eslintrc.json index 7861c7aa9e..e0c225a1f1 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -6,5 +6,8 @@ ], "env": { "browser": true + }, + "rules": { + "import/no-unresolved": 2 } } diff --git a/js/automation-editor/automation-editor.js b/js/automation-editor/automation-editor.js index c9ef63a0e0..a8919fcfe9 100644 --- a/js/automation-editor/automation-editor.js +++ b/js/automation-editor/automation-editor.js @@ -1,5 +1,5 @@ import { h, render } from 'preact'; -import Automation from './automation'; +import Automation from './automation.js'; window.AutomationEditor = function (mountEl, props, mergeEl) { return render(h(Automation, props), mountEl, mergeEl); diff --git a/js/automation-editor/automation.js b/js/automation-editor/automation.js index 7e65380a95..cebb63d8bf 100644 --- a/js/automation-editor/automation.js +++ b/js/automation-editor/automation.js @@ -1,8 +1,8 @@ import { h, Component } from 'preact'; -import Trigger from './trigger'; -import Condition from '../common/component/condition'; -import Script from '../common/component/script'; +import Trigger from './trigger/index.js'; +import Condition from '../common/component/condition/index.js'; +import Script from '../common/component/script/index.js'; export default class Automation extends Component { constructor() { diff --git a/js/automation-editor/trigger/event.js b/js/automation-editor/trigger/event.js index 1c270233f0..c59861394d 100644 --- a/js/automation-editor/trigger/event.js +++ b/js/automation-editor/trigger/event.js @@ -1,8 +1,7 @@ import { h, Component } from 'preact'; -import JSONTextArea from '../../common/component/json_textarea'; - -import { onChangeEvent } from '../../common/util/event'; +import JSONTextArea from '../../common/component/json_textarea.js'; +import { onChangeEvent } from '../../common/util/event.js'; export default class EventTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/index.js b/js/automation-editor/trigger/index.js index 25a5976e75..f64f341179 100644 --- a/js/automation-editor/trigger/index.js +++ b/js/automation-editor/trigger/index.js @@ -1,7 +1,7 @@ import { h, Component } from 'preact'; -import TriggerRow from './trigger_row'; -import StateTrigger from './state'; +import TriggerRow from './trigger_row.js'; +import StateTrigger from './state.js'; export default class Trigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/mqtt.js b/js/automation-editor/trigger/mqtt.js index dd90a70688..144c65a3d1 100644 --- a/js/automation-editor/trigger/mqtt.js +++ b/js/automation-editor/trigger/mqtt.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class MQTTTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/numeric_state.js b/js/automation-editor/trigger/numeric_state.js index 983dd4abac..7a4f996599 100644 --- a/js/automation-editor/trigger/numeric_state.js +++ b/js/automation-editor/trigger/numeric_state.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class NumericStateTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/state.js b/js/automation-editor/trigger/state.js index 7ecab7e981..9e166111b9 100644 --- a/js/automation-editor/trigger/state.js +++ b/js/automation-editor/trigger/state.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class StateTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/sun.js b/js/automation-editor/trigger/sun.js index d632ff0478..528fd8cbfe 100644 --- a/js/automation-editor/trigger/sun.js +++ b/js/automation-editor/trigger/sun.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class SunTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/template.js b/js/automation-editor/trigger/template.js index 6cfc310bf1..a228053690 100644 --- a/js/automation-editor/trigger/template.js +++ b/js/automation-editor/trigger/template.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class TemplateTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/time.js b/js/automation-editor/trigger/time.js index 723d36244b..a535764fa6 100644 --- a/js/automation-editor/trigger/time.js +++ b/js/automation-editor/trigger/time.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class TimeTrigger extends Component { constructor() { diff --git a/js/automation-editor/trigger/trigger_edit.js b/js/automation-editor/trigger/trigger_edit.js index ca176fed01..78303d88f6 100644 --- a/js/automation-editor/trigger/trigger_edit.js +++ b/js/automation-editor/trigger/trigger_edit.js @@ -1,14 +1,14 @@ import { h, Component } from 'preact'; -import EventTrigger from './event'; -import HassTrigger from './homeassistant'; -import MQTTTrigger from './mqtt'; -import NumericStateTrigger from './numeric_state'; -import StateTrigger from './state'; -import SunTrigger from './sun'; -import TemplateTrigger from './template'; -import TimeTrigger from './time'; -import ZoneTrigger from './zone'; +import EventTrigger from './event.js'; +import HassTrigger from './homeassistant.js'; +import MQTTTrigger from './mqtt.js'; +import NumericStateTrigger from './numeric_state.js'; +import StateTrigger from './state.js'; +import SunTrigger from './sun.js'; +import TemplateTrigger from './template.js'; +import TimeTrigger from './time.js'; +import ZoneTrigger from './zone.js'; const TYPES = { event: EventTrigger, diff --git a/js/automation-editor/trigger/trigger_row.js b/js/automation-editor/trigger/trigger_row.js index 2b76d5a360..18195aabab 100644 --- a/js/automation-editor/trigger/trigger_row.js +++ b/js/automation-editor/trigger/trigger_row.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import TriggerEdit from './trigger_edit'; +import TriggerEdit from './trigger_edit.js'; export default class TriggerRow extends Component { constructor() { diff --git a/js/automation-editor/trigger/zone.js b/js/automation-editor/trigger/zone.js index 38db36d6ac..3907eb0a62 100644 --- a/js/automation-editor/trigger/zone.js +++ b/js/automation-editor/trigger/zone.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../common/util/event'; +import { onChangeEvent } from '../../common/util/event.js'; export default class ZoneTrigger extends Component { constructor() { diff --git a/js/common/component/condition/condition_edit.js b/js/common/component/condition/condition_edit.js index 4d64042948..ac970ef741 100644 --- a/js/common/component/condition/condition_edit.js +++ b/js/common/component/condition/condition_edit.js @@ -1,11 +1,11 @@ import { h, Component } from 'preact'; -import NumericStateCondition from './numeric_state'; -import StateCondition from './state'; -import SunCondition from './sun'; -import TemplateCondition from './template'; -import TimeCondition from './time'; -import ZoneCondition from './zone'; +import NumericStateCondition from './numeric_state.js'; +import StateCondition from './state.js'; +import SunCondition from './sun.js'; +import TemplateCondition from './template.js'; +import TimeCondition from './time.js'; +import ZoneCondition from './zone.js'; const TYPES = { state: StateCondition, diff --git a/js/common/component/condition/condition_row.js b/js/common/component/condition/condition_row.js index a879ec421a..87c83f80d7 100644 --- a/js/common/component/condition/condition_row.js +++ b/js/common/component/condition/condition_row.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import ConditionEdit from './condition_edit'; +import ConditionEdit from './condition_edit.js'; export default class ConditionRow extends Component { constructor() { diff --git a/js/common/component/condition/index.js b/js/common/component/condition/index.js index c2cdf70950..6232c0028e 100644 --- a/js/common/component/condition/index.js +++ b/js/common/component/condition/index.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import ConditionRow from './condition_row'; +import ConditionRow from './condition_row.js'; export default class Condition extends Component { constructor() { diff --git a/js/common/component/condition/numeric_state.js b/js/common/component/condition/numeric_state.js index fb01157798..e387d22555 100644 --- a/js/common/component/condition/numeric_state.js +++ b/js/common/component/condition/numeric_state.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class NumericStateCondition extends Component { constructor() { diff --git a/js/common/component/condition/state.js b/js/common/component/condition/state.js index 5312559325..d701d550ad 100644 --- a/js/common/component/condition/state.js +++ b/js/common/component/condition/state.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class StateCondition extends Component { constructor() { diff --git a/js/common/component/condition/sun.js b/js/common/component/condition/sun.js index e1df2daf6f..29f50c1fd6 100644 --- a/js/common/component/condition/sun.js +++ b/js/common/component/condition/sun.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class SunCondition extends Component { constructor() { diff --git a/js/common/component/condition/template.js b/js/common/component/condition/template.js index 34c3bac498..9d9ab5bbaf 100644 --- a/js/common/component/condition/template.js +++ b/js/common/component/condition/template.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class TemplateCondition extends Component { constructor() { diff --git a/js/common/component/condition/time.js b/js/common/component/condition/time.js index 4201e9a920..a832679510 100644 --- a/js/common/component/condition/time.js +++ b/js/common/component/condition/time.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class TimeCondition extends Component { constructor() { diff --git a/js/common/component/condition/zone.js b/js/common/component/condition/zone.js index c0c27ce2dc..405437c073 100644 --- a/js/common/component/condition/zone.js +++ b/js/common/component/condition/zone.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class ZoneCondition extends Component { constructor() { diff --git a/js/common/component/script/action_edit.js b/js/common/component/script/action_edit.js index cc52a1fd46..99db36129d 100644 --- a/js/common/component/script/action_edit.js +++ b/js/common/component/script/action_edit.js @@ -1,10 +1,10 @@ import { h, Component } from 'preact'; -import CallServiceAction from './call_service'; -import ConditionAction from './condition'; -import DelayAction from './delay'; -import EventAction from './event'; -import WaitAction from './wait'; +import CallServiceAction from './call_service.js'; +import ConditionAction from './condition.js'; +import DelayAction from './delay.js'; +import EventAction from './event.js'; +import WaitAction from './wait.js'; const TYPES = { 'Call Service': CallServiceAction, diff --git a/js/common/component/script/action_row.js b/js/common/component/script/action_row.js index 841b90387a..600106288b 100644 --- a/js/common/component/script/action_row.js +++ b/js/common/component/script/action_row.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import ActionEdit from './action_edit'; +import ActionEdit from './action_edit.js'; export default class Action extends Component { constructor() { diff --git a/js/common/component/script/call_service.js b/js/common/component/script/call_service.js index 17d20ba200..4191355265 100644 --- a/js/common/component/script/call_service.js +++ b/js/common/component/script/call_service.js @@ -1,7 +1,7 @@ import { h, Component } from 'preact'; -import JSONTextArea from '../json_textarea'; -import { onChangeEvent } from '../../util/event'; +import JSONTextArea from '../json_textarea.js'; +import { onChangeEvent } from '../../util/event.js'; export default class CallServiceAction extends Component { constructor() { diff --git a/js/common/component/script/condition.js b/js/common/component/script/condition.js index 815c303aa7..3b37a9dab0 100644 --- a/js/common/component/script/condition.js +++ b/js/common/component/script/condition.js @@ -1,7 +1,7 @@ import { h, Component } from 'preact'; -import StateCondition from '../condition/state'; -import ConditionEdit from '../condition/condition_edit'; +import StateCondition from '../condition/state.js'; +import ConditionEdit from '../condition/condition_edit.js'; export default class ConditionAction extends Component { // eslint-disable-next-line diff --git a/js/common/component/script/delay.js b/js/common/component/script/delay.js index cb7ea2ddb4..74d61b2cba 100644 --- a/js/common/component/script/delay.js +++ b/js/common/component/script/delay.js @@ -1,5 +1,5 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class DelayAction extends Component { constructor() { diff --git a/js/common/component/script/event.js b/js/common/component/script/event.js index 67cb438291..219e8aad38 100644 --- a/js/common/component/script/event.js +++ b/js/common/component/script/event.js @@ -1,7 +1,7 @@ import { h, Component } from 'preact'; -import JSONTextArea from '../json_textarea'; -import { onChangeEvent } from '../../util/event'; +import JSONTextArea from '../json_textarea.js'; +import { onChangeEvent } from '../../util/event.js'; export default class EventAction extends Component { constructor() { diff --git a/js/common/component/script/index.js b/js/common/component/script/index.js index c5382cc38e..dcf764729e 100644 --- a/js/common/component/script/index.js +++ b/js/common/component/script/index.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import ActionRow from './action_row'; +import ActionRow from './action_row.js'; export default class Script extends Component { constructor() { diff --git a/js/common/component/script/wait.js b/js/common/component/script/wait.js index 27cec6d3cd..4cf20fdc18 100644 --- a/js/common/component/script/wait.js +++ b/js/common/component/script/wait.js @@ -1,5 +1,5 @@ import { h, Component } from 'preact'; -import { onChangeEvent } from '../../util/event'; +import { onChangeEvent } from '../../util/event.js'; export default class WaitAction extends Component { constructor() { diff --git a/js/common/util/compute_domain.js b/js/common/util/compute_domain.js index 58faa51be7..f39e4e24c5 100644 --- a/js/common/util/compute_domain.js +++ b/js/common/util/compute_domain.js @@ -1,7 +1,3 @@ -export default function computeDomain(stateObj) { - if (!stateObj._domain) { - stateObj._domain = stateObj.entity_id.substr(0, stateObj.entity_id.indexOf('.')); - } - - return stateObj._domain; +export default function computeDomain(entityId) { + return entityId.substr(0, entityId.indexOf('.')); } diff --git a/js/common/util/compute_state_display.js b/js/common/util/compute_state_display.js index a43175de4a..45dd562b4f 100644 --- a/js/common/util/compute_state_display.js +++ b/js/common/util/compute_state_display.js @@ -1,11 +1,11 @@ -import computeDomain from './compute_domain'; -import formatDateTime from './format_date_time'; -import formatDate from './format_date'; -import formatTime from './format_time'; +import computeStateDomain from './compute_state_domain.js'; +import formatDateTime from './format_date_time.js'; +import formatDate from './format_date.js'; +import formatTime from './format_time.js'; export default function computeStateDisplay(haLocalize, stateObj, language) { if (!stateObj._stateDisplay) { - const domain = computeDomain(stateObj); + const domain = computeStateDomain(stateObj); if (domain === 'binary_sensor') { // Try device class translation, then default binary sensor translation if (stateObj.attributes.device_class) { diff --git a/js/common/util/compute_state_domain.js b/js/common/util/compute_state_domain.js new file mode 100644 index 0000000000..86fe7bb131 --- /dev/null +++ b/js/common/util/compute_state_domain.js @@ -0,0 +1,9 @@ +import computeDomain from './compute_domain.js'; + +export default function computeStateDomain(stateObj) { + if (!stateObj._domain) { + stateObj._domain = computeDomain(stateObj.entity_id); + } + + return stateObj._domain; +} diff --git a/js/script-editor/script-editor.js b/js/script-editor/script-editor.js index 4c5663e227..1a494f6239 100644 --- a/js/script-editor/script-editor.js +++ b/js/script-editor/script-editor.js @@ -1,5 +1,5 @@ import { h, render } from 'preact'; -import Script from './script'; +import Script from './script.js'; window.ScriptEditor = function (mountEl, props, mergeEl) { return render(h(Script, props), mountEl, mergeEl); diff --git a/js/script-editor/script.js b/js/script-editor/script.js index c3e0a268e8..271810adc6 100644 --- a/js/script-editor/script.js +++ b/js/script-editor/script.js @@ -1,6 +1,6 @@ import { h, Component } from 'preact'; -import Script from '../common/component/script'; +import Script from '../common/component/script/index.js'; export default class ScriptEditor extends Component { constructor() { diff --git a/js/util.js b/js/util.js index eb97c013ac..a8e5fe10af 100644 --- a/js/util.js +++ b/js/util.js @@ -6,12 +6,12 @@ * import these functions where we need them. */ -import attributeClassNames from './common/util/attribute_class_names'; -import computeDomain from './common/util/compute_domain'; -import computeStateDisplay from './common/util/compute_state_display'; -import formatDate from './common/util/format_date'; -import formatDateTime from './common/util/format_date_time'; -import formatTime from './common/util/format_time'; +import attributeClassNames from './common/util/attribute_class_names.js'; +import computeStateDomain from './common/util/compute_state_domain.js'; +import computeStateDisplay from './common/util/compute_state_display.js'; +import formatDate from './common/util/format_date.js'; +import formatDateTime from './common/util/format_date_time.js'; +import formatTime from './common/util/format_time.js'; window.hassUtil = window.hassUtil || {}; @@ -21,7 +21,7 @@ const language = navigator.languages ? window.fecha.masks.haDateTime = window.fecha.masks.shortTime + ' ' + window.fecha.masks.mediumDate; window.hassUtil.attributeClassNames = attributeClassNames; -window.hassUtil.computeDomain = computeDomain; +window.hassUtil.computeDomain = computeStateDomain; window.hassUtil.computeStateDisplay = computeStateDisplay; window.hassUtil.formatDate = dateObj => formatDate(dateObj, language); window.hassUtil.formatDateTime = dateObj => formatDateTime(dateObj, language); diff --git a/test-mocha/common/util/compute_domain.js b/test-mocha/common/util/compute_domain.js index 44f55bd61e..a4668c6687 100644 --- a/test-mocha/common/util/compute_domain.js +++ b/test-mocha/common/util/compute_domain.js @@ -3,10 +3,10 @@ import computeDomain from '../../../js/common/util/compute_domain'; const assert = require('assert'); describe('computeDomain', () => { - it('Detects sensor domain', () => { - const stateObj = { - entity_id: 'sensor.test', - }; - assert.strictEqual(computeDomain(stateObj), 'sensor'); + it('Returns domains', () => { + assert.equal(computeDomain('sensor.bla'), 'sensor'); + assert.equal(computeDomain('switch.bla'), 'switch'); + assert.equal(computeDomain('light.bla'), 'light'); + assert.equal(computeDomain('persistent_notification.bla'), 'persistent_notification'); }); }); diff --git a/test-mocha/common/util/compute_state_domain.js b/test-mocha/common/util/compute_state_domain.js new file mode 100644 index 0000000000..a8d173db43 --- /dev/null +++ b/test-mocha/common/util/compute_state_domain.js @@ -0,0 +1,12 @@ +import computeStateDomain from '../../../js/common/util/compute_state_domain.js'; + +const assert = require('assert'); + +describe('computeStateDomain', () => { + it('Detects sensor domain', () => { + const stateObj = { + entity_id: 'sensor.test', + }; + assert.strictEqual(computeStateDomain(stateObj), 'sensor'); + }); +});