From e92fa1eaf5b1375060be8b1da2f165fd15cc255f Mon Sep 17 00:00:00 2001 From: Alexandrshy Date: Fri, 15 Mar 2019 22:50:37 +0400 Subject: [PATCH] Create shared component --- package-lock.json | 51 +++++++++++++++++++++++++-- package.json | 9 +++-- src/App.vue | 15 ++++---- src/assets/logo.png | Bin 6849 -> 0 bytes src/components/HelloWorld.vue | 58 ------------------------------- src/components/TwitterButton.vue | 33 ++++++++++++++++++ src/components/index.js | 0 src/helpers/event.js | 8 +++++ src/helpers/href.js | 6 ++++ src/helpers/index.js | 2 ++ 10 files changed, 111 insertions(+), 71 deletions(-) delete mode 100644 src/assets/logo.png delete mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/TwitterButton.vue create mode 100644 src/components/index.js create mode 100644 src/helpers/event.js create mode 100644 src/helpers/href.js create mode 100644 src/helpers/index.js diff --git a/package-lock.json b/package-lock.json index 37ce5d0..4a8f964 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1332,6 +1332,12 @@ "yallist": "^2.1.2" } }, + "prettier": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", + "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -4277,6 +4283,15 @@ } } }, + "eslint-config-prettier": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-4.1.0.tgz", + "integrity": "sha512-zILwX9/Ocz4SV2vX7ox85AsrAgXV3f2o2gpIicdMIOra48WYqgUnWNH/cR/iHtmD2Vb3dLSC3LiEJnS05Gkw7w==", + "dev": true, + "requires": { + "get-stdin": "^6.0.0" + } + }, "eslint-loader": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.2.tgz", @@ -4290,6 +4305,15 @@ "rimraf": "^2.6.1" } }, + "eslint-plugin-prettier": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.0.1.tgz", + "integrity": "sha512-/PMttrarPAY78PLvV3xfWibMOdMDl57hmlQ2XqFeA37wd+CJ7WSxV7txqjVPHi/AAFKd2lX0ZqfsOc/i5yFCSQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-vue": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.2.tgz", @@ -4686,6 +4710,12 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, "fast-glob": { "version": "2.2.6", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.6.tgz", @@ -5536,6 +5566,12 @@ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -8494,11 +8530,20 @@ "dev": true }, "prettier": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.3.tgz", - "integrity": "sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==", + "version": "1.16.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.16.4.tgz", + "integrity": "sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==", "dev": true }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", diff --git a/package.json b/package.json index 1dd8b6a..68d0a08 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "scripts": { "serve": "vue-cli-service serve", "build": "vue-cli-service build", - "lint": "vue-cli-service lint" + "lint": "vue-cli-service lint", + "build-bundle": "vue-cli-service build --target lib --name myLib ./src/components/index.js" }, "dependencies": { "vue": "^2.6.6" @@ -16,7 +17,10 @@ "@vue/cli-service": "^3.5.0", "babel-eslint": "^10.0.1", "eslint": "^5.8.0", + "eslint-config-prettier": "^4.1.0", + "eslint-plugin-prettier": "^3.0.1", "eslint-plugin-vue": "^5.0.0", + "prettier": "^1.16.4", "vue-template-compiler": "^2.5.21" }, "eslintConfig": { @@ -26,7 +30,8 @@ }, "extends": [ "plugin:vue/essential", - "eslint:recommended" + "eslint:recommended", + "prettier/vue" ], "rules": {}, "parserOptions": { diff --git a/src/App.vue b/src/App.vue index fcc5662..58844e4 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,24 +1,23 @@ diff --git a/src/components/TwitterButton.vue b/src/components/TwitterButton.vue new file mode 100644 index 0000000..4c5fe25 --- /dev/null +++ b/src/components/TwitterButton.vue @@ -0,0 +1,33 @@ + + + + diff --git a/src/components/index.js b/src/components/index.js new file mode 100644 index 0000000..e69de29 diff --git a/src/helpers/event.js b/src/helpers/event.js new file mode 100644 index 0000000..9598282 --- /dev/null +++ b/src/helpers/event.js @@ -0,0 +1,8 @@ +/** + * Trigger an event. + * + * @param {object} vm - VueComponent. + * @param {object} option - Custom options. + * @return {object} - Event. + */ +export const eventEmit = (vm, option) => vm.$emit("onClick", { ...option }); diff --git a/src/helpers/href.js b/src/helpers/href.js new file mode 100644 index 0000000..77f03cd --- /dev/null +++ b/src/helpers/href.js @@ -0,0 +1,6 @@ +/** + * Get href for page. + * + * @returns {string} - page href. + */ +export const getDocumentHref = () => document.location.href; diff --git a/src/helpers/index.js b/src/helpers/index.js new file mode 100644 index 0000000..cff06a6 --- /dev/null +++ b/src/helpers/index.js @@ -0,0 +1,2 @@ +export { getDocumentHref } from "./href.js"; +export { eventEmit } from "./event";