- copy the file
commit-msgto.git/hooks/commit-msg - make sure your delete the sample file
.git/hooks/commit-msg.sample - Make commit msg executable.
chmod +x .git/hooks/commit-msg - Edit
commit-msgto better fit your development branch, commit regex and error message - Profit $$
| import 'dart:async'; | |
| import 'package:intl/intl.dart'; | |
| class Contact { | |
| static final DateFormat _formatter = DateFormat('MMMM d, yyyy'); | |
| final String fullName; | |
| final String gender; |
CATF44LT7C-eyJsaWNlbnNlSWQiOiJDQVRGNDRMVDdDIiwibGljZW5zZWVOYW1lIjoiVmxhZGlzbGF2IEtvdmFsZW5rbyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiJGb3IgZWR1Y2F0aW9uYWwgdXNlIG9ubHkiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDIwLTAxLTA4In0seyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMjAtMDEtMDgifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMjAtMDEtMDgifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAyMC0wMS0wOCJ9LHsiY29kZSI6IkdPIiwicGFpZFVwVG8iOiIyMDIwLTAxLTA4In0seyJjb2RlIjoiRE0iLCJwYWlkVXBUbyI6IjIwMjAtMDEtMDgifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAyMC0wMS0wOCJ9LHsiY29kZSI6IlJTMCIsInBhaWRVcFRvIjoiMjAyMC0wMS0wOCJ9LHsiY29kZSI6IlJDIiwicGFpZFVwVG8iOiIyMDIwLTAxLTA4In0seyJjb2RlIjoiUkQiLCJwYWlkVXBUbyI6IjIwMjAtMDEtMDgifSx7ImNvZGUiOiJQQyIsInBhaWRVcFRvIjoiMjAyMC0wMS0wOCJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDIwLTAxLTA4In0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMjAtMDEtMDgifSx7ImNvZGUiOiJEQiIsI
| // Eslint + Prettier, custom configuration taken from here. | |
| // https://medium.com/@doppelmutzi/eslint-prettier-vue-workflow-46a3cf54332f | |
| // and here's my gist | |
| // https://gist.github.com/robertoandres24/6cb6d0fa898bfb31066c5e1b118df64a | |
| module.exports = { | |
| root: true, | |
| parserOptions: { | |
| parser: 'babel-eslint' | |
| }, | |
| env: { |
| <script> | |
| import { Doughnut } from "vue-chartjs"; | |
| import Chart from "chart.js"; | |
| export default { | |
| extends: Doughnut, | |
| data: () => ({ | |
| chartdata: { | |
| labels: ["Cambodia", "Thailand", "Vietnam", "Laos"], | |
| datasets: [ |
| <script> | |
| // vuejs with crypto-js - AES256 encrypt | decrypt api login | |
| import CryptoJS from 'crypto-js' | |
| import axios from 'axios' | |
| import format from 'date-fns/format' | |
| const key = '82f2ceed4c503896c8a291e560bd4325' // change to your key | |
| const iv = 'sinasinasisinaaa' // change to your iv | |
| const apiKey = '123xxxyyyzzz' // change to your api key | |
| const username = 'chhumsina' |
| export const isSameURL = (a, b) => a.split('?')[0] === b.split('?')[0] | |
| export const isRelativeURL = u => | |
| u && u.length && /^\/[a-zA-Z0-9@\-%_~][/a-zA-Z0-9@\-%_~]*[?]?([^#]*)#?([^#]*)$/.test(u) | |
| export default function ({ app }) { | |
| const redirect = function (name, noRouter = false) { | |
| if (!this.options.redirect) { | |
| return | |
| } |
| import Vue from 'vue' | |
| export default function({ store }, inject) { | |
| Vue.directive('permission', { | |
| inserted(el, binding, vnode) { | |
| const { permission } = binding | |
| const permissionList = store.state.auth.user.permission | |
| if (permission && Array.isArray(permission) && permission.length > 0) { | |
| const hasPermission = permissionList.some((role) => { |