diff options
-rw-r--r-- | .eslintrc.js | 15 | ||||
-rw-r--r-- | package-lock.json | 70 | ||||
-rw-r--r-- | package.json | 3 | ||||
-rw-r--r-- | src/components/ContactDetails/ContactDetailsAddNewProp.vue | 2 | ||||
-rw-r--r-- | src/components/ContactDetails/ContactDetailsProperty.vue | 10 | ||||
-rw-r--r-- | src/components/Settings/SettingsAddressbookShare.vue | 2 | ||||
-rw-r--r-- | src/components/SettingsSection.vue | 8 | ||||
-rw-r--r-- | src/router/index.js | 2 | ||||
-rw-r--r-- | src/store/addressbooks.js | 6 | ||||
-rw-r--r-- | src/store/index.js | 4 | ||||
-rw-r--r-- | src/views/Contacts.vue | 14 | ||||
-rw-r--r-- | tests/unit/specs/Contacts.spec.js | 2 | ||||
-rw-r--r-- | webpack.common.js | 6 |
13 files changed, 107 insertions, 37 deletions
diff --git a/.eslintrc.js b/.eslintrc.js index 6c62cc72..4df12943 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -16,15 +16,28 @@ module.exports = { }, parserOptions: { parser: 'babel-eslint', - ecmaVersion: 6 + ecmaVersion: 8 }, extends: [ 'eslint:recommended', + 'plugin:import/errors', + 'plugin:import/warnings', 'plugin:node/recommended', 'plugin:vue/essential', 'plugin:vue/recommended', 'standard' ], + settings: { + 'import/resolver': { + webpack: { + config: 'webpack.common.js' + }, + node: { + paths: ['src'], + extensions: ['.js', '.vue'] + } + } + }, plugins: ['vue', 'node'], rules: { // space before function () diff --git a/package-lock.json b/package-lock.json index d9b97aaf..eabbe7dd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2907,6 +2907,12 @@ "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, + "array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", + "dev": true + }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", @@ -4983,6 +4989,49 @@ "resolve": "^1.5.0" } }, + "eslint-import-resolver-webpack": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.10.1.tgz", + "integrity": "sha512-RN49nnyQpBCP3TqVhct+duJjH8kaVg08fFevWvA+4Cr1xeN7OFQRse4wMvzBto9/4VmOJWvqPfdmNTEG3jc8SQ==", + "dev": true, + "requires": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.4.0", + "semver": "^5.3.0" + }, + "dependencies": { + "enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + } + }, + "memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", + "dev": true + }, + "tapable": { + "version": "0.1.10", + "resolved": "http://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", + "dev": true + } + } + }, "eslint-loader": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", @@ -5507,7 +5556,7 @@ }, "fecha": { "version": "2.3.3", - "resolved": "http://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" }, "figures": { @@ -5622,6 +5671,12 @@ "pkg-dir": "^2.0.0" } }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -5766,8 +5821,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -6182,8 +6236,7 @@ "safe-buffer": { "version": "5.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -6239,7 +6292,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -6283,14 +6335,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, diff --git a/package.json b/package.json index f61c0657..c56690ad 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "ie >= 11" ], "engines": { - "node": ">=10.0.0" + "node": ">=11.0.0" }, "devDependencies": { "@babel/core": "^7.1.5", @@ -72,6 +72,7 @@ "eslint": "^4.19.1", "eslint-config-standard": "^11.0.0", "eslint-friendly-formatter": "^4.0.1", + "eslint-import-resolver-webpack": "^0.10.1", "eslint-loader": "^2.1.1", "eslint-plugin-import": "^2.14.0", "eslint-plugin-node": "^8.0.0", diff --git a/src/components/ContactDetails/ContactDetailsAddNewProp.vue b/src/components/ContactDetails/ContactDetailsAddNewProp.vue index 9e12ac99..c9d5404c 100644 --- a/src/components/ContactDetails/ContactDetailsAddNewProp.vue +++ b/src/components/ContactDetails/ContactDetailsAddNewProp.vue @@ -39,7 +39,7 @@ <script> import rfcProps from '../../models/rfcProps.js' import Contact from '../../models/contact' -import PropertyTitle from '../Properties/PropertyTitle' +import PropertyTitle from 'Components/Properties/PropertyTitle' export default { name: 'ContactDetailsAddNewProp', diff --git a/src/components/ContactDetails/ContactDetailsProperty.vue b/src/components/ContactDetails/ContactDetailsProperty.vue index 3a4df0c2..e2eee5b6 100644 --- a/src/components/ContactDetails/ContactDetailsProperty.vue +++ b/src/components/ContactDetails/ContactDetailsProperty.vue @@ -35,11 +35,11 @@ import { Property } from 'ical.js' import rfcProps from '../../models/rfcProps.js' import Contact from '../../models/contact' -import PropertyText from '../Properties/PropertyText' -import PropertyMultipleText from '../Properties/PropertyMultipleText' -import PropertyDateTime from '../Properties/PropertyDateTime' -import propertyGroups from '../Properties/PropertyGroups' -import PropertySelect from '../Properties/PropertySelect' +import PropertyText from 'Components/Properties/PropertyText' +import PropertyMultipleText from 'Components/Properties/PropertyMultipleText' +import PropertyDateTime from 'Components/Properties/PropertyDateTime' +import propertyGroups from 'Components/Properties/PropertyGroups' +import PropertySelect from 'Components/Properties/PropertySelect' export default { name: 'ContactDetailsProperty', diff --git a/src/components/Settings/SettingsAddressbookShare.vue b/src/components/Settings/SettingsAddressbookShare.vue index efea02b9..0c87d799 100644 --- a/src/components/Settings/SettingsAddressbookShare.vue +++ b/src/components/Settings/SettingsAddressbookShare.vue @@ -57,7 +57,7 @@ <script> -import api from '../../services/api' +import api from 'Services/api' import addressBookSharee from './SettingsAddressbookSharee' import debounce from 'debounce' diff --git a/src/components/SettingsSection.vue b/src/components/SettingsSection.vue index d54eab52..de3de5ad 100644 --- a/src/components/SettingsSection.vue +++ b/src/components/SettingsSection.vue @@ -33,10 +33,10 @@ </template> <script> -import addressBook from '../components/Settings/SettingsAddressbook' -import addAddressBook from '../components/Settings/SettingsNewAddressbook' -import importContacts from '../components/Settings/SettingsImportContacts' -import sortContacts from '../components/Settings/SettingsSortContacts' +import addressBook from 'Components/Settings/SettingsAddressbook' +import addAddressBook from 'Components/Settings/SettingsNewAddressbook' +import importContacts from 'Components/Settings/SettingsImportContacts' +import sortContacts from 'Components/Settings/SettingsSortContacts' export default { name: 'SettingsSection', diff --git a/src/router/index.js b/src/router/index.js index 5272dd85..4fff3af6 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -22,7 +22,7 @@ import Vue from 'vue' import Router from 'vue-router' -import Contacts from '../views/Contacts' +import Contacts from 'Views/Contacts' Vue.use(Router) diff --git a/src/store/addressbooks.js b/src/store/addressbooks.js index c37a106e..7f28f5fb 100644 --- a/src/store/addressbooks.js +++ b/src/store/addressbooks.js @@ -23,9 +23,9 @@ import Vue from 'vue' import ICAL from 'ical.js' -import parseVcf from '../services/parseVcf' -import client from '../services/cdav' -import Contact from '../models/contact' +import parseVcf from 'Services/parseVcf' +import client from 'Services/cdav' +import Contact from 'Models/contact' import pLimit from 'p-limit' const addressbookModel = { diff --git a/src/store/index.js b/src/store/index.js index 546cbedd..fcd59385 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -21,7 +21,7 @@ */ import Vue from 'vue' -import Vuex from 'vuex' +import Vuex, { Store } from 'vuex' import addressbooks from './addressbooks' import contacts from './contacts' import groups from './groups' @@ -31,7 +31,7 @@ Vue.use(Vuex) const mutations = {} -export default new Vuex.Store({ +export default new Store({ modules: { addressbooks, contacts, diff --git a/src/views/Contacts.vue b/src/views/Contacts.vue index 56843b5e..f751470a 100644 --- a/src/views/Contacts.vue +++ b/src/views/Contacts.vue @@ -48,15 +48,15 @@ </template> <script> -import SettingsSection from '../components/SettingsSection' -import ContentList from '../components/ContentList' -import ContactDetails from '../components/ContactDetails' -import ImportScreen from '../components/ImportScreen' +import SettingsSection from 'Components/SettingsSection' +import ContentList from 'Components/ContentList' +import ContactDetails from 'Components/ContactDetails' +import ImportScreen from 'Components/ImportScreen' -import Contact from '../models/contact' -import rfcProps from '../models/rfcProps.js' +import Contact from 'Models/contact' +import rfcProps from 'Models/rfcProps.js' -import client from '../services/cdav.js' +import client from 'Services/cdav.js' export default { name: 'Contacts', diff --git a/tests/unit/specs/Contacts.spec.js b/tests/unit/specs/Contacts.spec.js index 0dbcaee7..0f16ff1c 100644 --- a/tests/unit/specs/Contacts.spec.js +++ b/tests/unit/specs/Contacts.spec.js @@ -21,7 +21,7 @@ */ import { mount } from '@vue/test-utils' -import Contacts from '@/views/Contacts.vue' +import Contacts from 'Views/Contacts.vue' describe('Contacts.vue', () => { it('Test contacts view', () => { diff --git a/webpack.common.js b/webpack.common.js index 9f8ea3cd..409625f8 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -50,6 +50,12 @@ module.exports = { new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/) ], resolve: { + alias: { + Components: path.resolve(__dirname, 'src/components/'), + Models: path.resolve(__dirname, 'src/models/'), + Services: path.resolve(__dirname, 'src/services/'), + Views: path.resolve(__dirname, 'src/views/') + }, extensions: ['*', '.js', '.vue', '.json'] } } |