From 8e76f49c4dc518ee7f2a337b4ba590a3823897f7 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 21:35:52 +0200 Subject: [PATCH] Init --- .eslintignore | 2 ++ .eslintrc.js | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 5 ++++ LICENSE | 21 +++++++++++++++ tsconfig.json | 16 +++++++++++ 5 files changed, 119 insertions(+) create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 tsconfig.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e06d000 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +/node_modules +.* \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..ab9cd5e --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,75 @@ +const { resolve } = require('path'); +module.exports = { + // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy + // This option interrupts the configuration hierarchy at this file + // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) + root: true, + + // https://eslint.vuejs.org/user-guide/#how-to-use-custom-parser + // Must use parserOptions instead of "parser" to allow vue-eslint-parser to keep working + // `parser: 'vue-eslint-parser'` is already included with any 'plugin:vue/**' config and should be omitted + parserOptions: { + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#configuration + // https://github.com/TypeStrong/fork-ts-checker-webpack-plugin#eslint + // Needed to make the parser take into account 'vue' files + extraFileExtensions: ['.vue'], + parser: '@typescript-eslint/parser', + project: resolve(__dirname, './tsconfig.json'), + tsconfigRootDir: __dirname, + ecmaVersion: 2019, // Allows for the parsing of modern ECMAScript features + sourceType: 'module' // Allows for the use of imports + }, + + env: { + browser: true + }, + + // Rules order is important, please avoid shuffling them + extends: [ + // Base ESLint recommended rules + // 'eslint:recommended', + + // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin#usage + // ESLint typescript rules + 'plugin:@typescript-eslint/recommended', + // consider disabling this class of rules if linting takes too long + 'plugin:@typescript-eslint/recommended-requiring-type-checking', + + // Uncomment any of the lines below to choose desired strictness, + // but leave only one uncommented! + // See https://eslint.vuejs.org/rules/#available-rules + // 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) + // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) + 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) + + // https://github.com/prettier/eslint-config-prettier#installation + // usage with Prettier, provided by 'eslint-config-prettier'. + 'prettier', //'plugin:prettier/recommended' + ], + + plugins: [ + // required to apply rules which need type information + '@typescript-eslint', + + // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-file + // required to lint *.vue files + 'vue', + + // https://github.com/typescript-eslint/typescript-eslint/issues/389#issuecomment-509292674 + // Prettier has not been included as plugin to avoid performance impact + // add it as an extension for your IDE + ], + + // add your custom rules here + rules: { + 'prefer-promise-reject-errors': 'off', + + // TypeScript + quotes: ['warn', 'single', { avoidEscape: true }], + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + + // allow debugger during development only + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a724e6a --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules +yarn-error.log +# No need for sharing this +yarn.lock + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..bbcaf76 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright 2021 Tim Gröger | Flaschengeist Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..c3880b9 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@quasar/app/tsconfig-preset", + "target": "esnext", + "compilerOptions": { + "baseUrl": "./src/", + "lib": [ + "es2020", + "dom" + ], + "types": [ + "@flaschengeist/types", + "@quasar/app", + "node" + ] + } +}