B2B-88: add starter kit structure and elements
This commit is contained in:
20
tooling/eslint/apps.js
Normal file
20
tooling/eslint/apps.js
Normal file
@@ -0,0 +1,20 @@
|
||||
export default [
|
||||
{
|
||||
files: ['app/**/*.{ts,tsx}'],
|
||||
rules: {
|
||||
'no-restricted-imports': [
|
||||
'error',
|
||||
{
|
||||
paths: [
|
||||
{
|
||||
name: '@kit/supabase/database',
|
||||
importNames: ['Database'],
|
||||
message:
|
||||
'Please use the application types from your app "~/lib/database.types" instead',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
];
|
||||
73
tooling/eslint/base.js
Normal file
73
tooling/eslint/base.js
Normal file
@@ -0,0 +1,73 @@
|
||||
import eslint from '@eslint/js';
|
||||
import turboConfig from 'eslint-config-turbo/flat';
|
||||
import tsEsLint from 'typescript-eslint';
|
||||
|
||||
import nextConfig from './nextjs.js';
|
||||
|
||||
export default tsEsLint.config(
|
||||
eslint.configs.recommended,
|
||||
nextConfig,
|
||||
turboConfig,
|
||||
{
|
||||
settings: {
|
||||
react: {
|
||||
version: '19.0',
|
||||
},
|
||||
},
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
warnOnUnsupportedTypeScriptVersion: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
rules: {
|
||||
'react/react-in-jsx-scope': 'off',
|
||||
'import/no-anonymous-default-export': 'off',
|
||||
'import/named': 'off',
|
||||
'import/namespace': 'off',
|
||||
'import/default': 'off',
|
||||
'import/no-unresolved': 'off',
|
||||
'import/no-named-as-default-member': 'off',
|
||||
'import/no-named-as-default': 'off',
|
||||
'import/no-cycle': 'off',
|
||||
'import/no-unused-modules': 'off',
|
||||
'import/no-deprecated': 'off',
|
||||
'turbo/no-undeclared-env-vars': 'off',
|
||||
'@typescript-eslint/array-type': 'off',
|
||||
'@typescript-eslint/no-unsafe-assignment': 'off',
|
||||
'@typescript-eslint/no-unsafe-argument': 'off',
|
||||
'@typescript-eslint/consistent-type-definitions': 'off',
|
||||
'@typescript-eslint/no-unsafe-member-access': 'off',
|
||||
'@typescript-eslint/non-nullable-type-assertion-style': 'off',
|
||||
'@typescript-eslint/only-throw-error': 'off',
|
||||
'@typescript-eslint/prefer-nullish-coalescing': 'off',
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{ argsIgnorePattern: '^_', varsIgnorePattern: '^_' },
|
||||
],
|
||||
'no-restricted-imports': [
|
||||
'error',
|
||||
{
|
||||
paths: [
|
||||
{
|
||||
name: 'react-i18next',
|
||||
importNames: ['Trans'],
|
||||
message: 'Please use `@kit/ui/trans` instead',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
{
|
||||
ignores: [
|
||||
'**/node_modules',
|
||||
'**/database.types.ts',
|
||||
'**/.next',
|
||||
'**/public',
|
||||
'dist',
|
||||
'pnpm-lock.yaml',
|
||||
],
|
||||
},
|
||||
);
|
||||
17
tooling/eslint/nextjs.js
Normal file
17
tooling/eslint/nextjs.js
Normal file
@@ -0,0 +1,17 @@
|
||||
import { FlatCompat } from '@eslint/eslintrc';
|
||||
|
||||
const compat = new FlatCompat({
|
||||
baseDirectory: import.meta.dirname,
|
||||
});
|
||||
|
||||
const nextEslintConfig = [
|
||||
...compat.config({
|
||||
extends: ['next/core-web-vitals', 'next/typescript'],
|
||||
rules: {
|
||||
'@next/next/no-html-link-for-pages': 'off',
|
||||
'no-undef': 'off',
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
export default nextEslintConfig;
|
||||
17
tooling/eslint/node_modules/.bin/eslint
generated
vendored
Executable file
17
tooling/eslint/node_modules/.bin/eslint
generated
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules/eslint/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules/eslint/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules/eslint/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules/eslint/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../eslint/bin/eslint.js" "$@"
|
||||
fi
|
||||
17
tooling/eslint/node_modules/.bin/jiti
generated
vendored
Executable file
17
tooling/eslint/node_modules/.bin/jiti
generated
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/lib/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/lib/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/jiti@2.4.2/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/lib/jiti-cli.mjs" "$@"
|
||||
else
|
||||
exec node "$basedir/../../../../node_modules/.pnpm/jiti@2.4.2/node_modules/jiti/lib/jiti-cli.mjs" "$@"
|
||||
fi
|
||||
17
tooling/eslint/node_modules/.bin/tsc
generated
vendored
Executable file
17
tooling/eslint/node_modules/.bin/tsc
generated
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
|
||||
else
|
||||
exec node "$basedir/../typescript/bin/tsc" "$@"
|
||||
fi
|
||||
17
tooling/eslint/node_modules/.bin/tsserver
generated
vendored
Executable file
17
tooling/eslint/node_modules/.bin/tsserver
generated
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules/typescript/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/typescript@5.8.3/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
|
||||
else
|
||||
exec node "$basedir/../typescript/bin/tsserver" "$@"
|
||||
fi
|
||||
17
tooling/eslint/node_modules/.bin/turbo
generated
vendored
Executable file
17
tooling/eslint/node_modules/.bin/turbo
generated
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -z "$NODE_PATH" ]; then
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules"
|
||||
else
|
||||
export NODE_PATH="/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/bin/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/turbo@2.5.4/node_modules:/Users/devmcee/dev/mountbirch/MRB2B/node_modules/.pnpm/node_modules:$NODE_PATH"
|
||||
fi
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../../../../node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/bin/turbo" "$@"
|
||||
else
|
||||
exec node "$basedir/../../../../node_modules/.pnpm/turbo@2.5.4/node_modules/turbo/bin/turbo" "$@"
|
||||
fi
|
||||
1
tooling/eslint/node_modules/@kit/prettier-config
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/@kit/prettier-config
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../prettier
|
||||
1
tooling/eslint/node_modules/@kit/tsconfig
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/@kit/tsconfig
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../typescript
|
||||
1
tooling/eslint/node_modules/@next/eslint-plugin-next
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/@next/eslint-plugin-next
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../node_modules/.pnpm/@next+eslint-plugin-next@15.3.2/node_modules/@next/eslint-plugin-next
|
||||
1
tooling/eslint/node_modules/@types/eslint
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/@types/eslint
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../../node_modules/.pnpm/@types+eslint@9.6.1/node_modules/@types/eslint
|
||||
1
tooling/eslint/node_modules/eslint
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/eslint
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../node_modules/.pnpm/eslint@9.28.0_jiti@2.4.2/node_modules/eslint
|
||||
1
tooling/eslint/node_modules/eslint-config-next
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/eslint-config-next
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../node_modules/.pnpm/eslint-config-next@15.3.2_eslint@9.28.0_jiti@2.4.2__typescript@5.8.3/node_modules/eslint-config-next
|
||||
1
tooling/eslint/node_modules/eslint-config-turbo
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/eslint-config-turbo
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../node_modules/.pnpm/eslint-config-turbo@2.5.4_eslint@9.28.0_jiti@2.4.2__turbo@2.5.4/node_modules/eslint-config-turbo
|
||||
1
tooling/eslint/node_modules/typescript
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/typescript
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../node_modules/.pnpm/typescript@5.8.3/node_modules/typescript
|
||||
1
tooling/eslint/node_modules/typescript-eslint
generated
vendored
Symbolic link
1
tooling/eslint/node_modules/typescript-eslint
generated
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../../../node_modules/.pnpm/typescript-eslint@8.32.1_eslint@9.28.0_jiti@2.4.2__typescript@5.8.3/node_modules/typescript-eslint
|
||||
29
tooling/eslint/package.json
Normal file
29
tooling/eslint/package.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "@kit/eslint-config",
|
||||
"version": "0.2.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"files": [
|
||||
"./apps.js",
|
||||
"./base.js",
|
||||
"./nextjs.js"
|
||||
],
|
||||
"scripts": {
|
||||
"clean": "rm -rf .turbo node_modules",
|
||||
"format": "prettier --check \"**/*.{js,json}\""
|
||||
},
|
||||
"dependencies": {
|
||||
"@next/eslint-plugin-next": "15.3.2",
|
||||
"@types/eslint": "9.6.1",
|
||||
"eslint-config-next": "15.3.2",
|
||||
"eslint-config-turbo": "^2.5.3",
|
||||
"typescript-eslint": "8.32.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@kit/prettier-config": "workspace:*",
|
||||
"@kit/tsconfig": "workspace:*",
|
||||
"eslint": "^9.26.0",
|
||||
"typescript": "^5.8.3"
|
||||
},
|
||||
"prettier": "@kit/prettier-config"
|
||||
}
|
||||
Reference in New Issue
Block a user