feat: initialise template

This commit is contained in:
etwodev
2025-11-11 15:19:09 +00:00
commit 911693f3c3
74 changed files with 8676 additions and 0 deletions

83
eslint.config.cjs Normal file
View File

@@ -0,0 +1,83 @@
const tsParser = require('@typescript-eslint/parser');
const stylisticPlugin = require('@stylistic/eslint-plugin');
const tsPlugin = require ('@typescript-eslint/eslint-plugin')
const reactPlugin = require('eslint-plugin-react');
const sortPlugin = require('eslint-plugin-simple-import-sort');
/** @type {import("eslint").FlatConfig[]} */
module.exports = [
{
ignores: ['node_modules/**', 'dist/**', 'wailjs/**'],
languageOptions: {
globals: {
expect: 'readonly',
},
parser: tsParser,
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
tsconfigRootDir: __dirname,
},
},
plugins: {
'@stylistic': stylisticPlugin,
'@typescript-eslint': tsPlugin,
react: reactPlugin,
'simple-import-sort': sortPlugin,
},
settings: {
react: {
version: 'detect',
},
},
rules: {
'@typescript-eslint/no-misused-new': 'error',
semi: ['error', 'always'],
'@typescript-eslint/no-empty-function': 'error',
'simple-import-sort/imports': 'error',
'simple-import-sort/exports': 'error',
'@stylistic/member-delimiter-style': [
'error',
{
multiline: { delimiter: 'semi', requireLast: true },
singleline: { delimiter: 'semi', requireLast: false },
},
],
'no-var': 'error',
'no-eval': 'error',
'eol-last': 'error',
'no-console': 'error',
'default-case': 'error',
semi: 'off',
'no-regex-spaces': 'error',
'constructor-super': 'error',
'no-invalid-regexp': 'error',
curly: ['error', 'multi-line'],
'no-irregular-whitespace': 'error',
'quote-props': ['error', 'as-needed'],
'linebreak-style': ['error', 'unix'],
'padding-line-between-statements': [
'error',
{ blankLine: 'always', prev: '*', next: 'return' },
],
'prefer-const': ['error', { destructuring: 'all' }],
'comma-dangle': ['error', 'always-multiline'],
indent: [
'error',
2,
{ SwitchCase: 1, ignoredNodes: ['ConditionalExpression', 'TemplateLiteral'] },
],
},
},
{
files: ['.eslintrc.{js,cjs}'],
languageOptions: {
sourceType: 'script',
},
},
];