a reactive (signals based) hypermedia web framework (wip)
stormlightlabs.github.io/volt/
hypermedia
frontend
signals
1import { includeIgnoreFile } from "@eslint/compat";
2import js from "@eslint/js";
3import unicorn from "eslint-plugin-unicorn";
4import { defineConfig } from "eslint/config";
5import globals from "globals";
6import { fileURLToPath } from "node:url";
7import ts from "typescript-eslint";
8
9const gitignorePath = fileURLToPath(new globalThis.URL("./.gitignore", import.meta.url));
10
11/** @type {import('eslint').Linter.Config} */
12export default defineConfig(
13 includeIgnoreFile(gitignorePath),
14 js.configs.recommended,
15 unicorn.configs.recommended,
16 ...ts.configs.recommended,
17 {
18 languageOptions: {
19 globals: { ...globals.browser, ...globals.node },
20 parserOptions: { project: "./tsconfig.json", tsconfigRootDir: import.meta.dirname },
21 },
22 rules: {
23 "no-undef": "off",
24 "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }],
25 "@typescript-eslint/no-explicit-any": "off",
26 "unicorn/prefer-ternary": "off",
27 "no-console": "off",
28 "unicorn/filename-case": ["warn", {
29 cases: { pascalCase: true, kebabCase: true },
30 multipleFileExtensions: false,
31 }],
32 "unicorn/no-null": "off",
33 "unicorn/prevent-abbreviations": "off",
34 },
35 },
36 { rules: { "unicorn/prefer-top-level-await": "off" } },
37);