diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 55f99a2..0000000 --- a/.eslintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "root": true, - "parserOptions": { - "project": [ - "./tsconfig.eslint.json", - "./packages/*/tsconfig.json" - ] - }, - "extends": [ - "lxsmnsyc/typescript" - ] -} \ No newline at end of file diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..2aee2e7 --- /dev/null +++ b/biome.json @@ -0,0 +1,272 @@ +{ + "$schema": "https://unpkg.com/@biomejs/biome/configuration_schema.json", + "files": { + "ignore": ["node_modules/**/*"] + }, + "vcs": { + "useIgnoreFile": true + }, + "linter": { + "enabled": true, + "ignore": ["node_modules/**/*"], + "rules": { + "a11y": { + "noAccessKey": "error", + "noAriaHiddenOnFocusable": "off", + "noAriaUnsupportedElements": "error", + "noAutofocus": "error", + "noBlankTarget": "error", + "noDistractingElements": "error", + "noHeaderScope": "error", + "noInteractiveElementToNoninteractiveRole": "error", + "noNoninteractiveElementToInteractiveRole": "error", + "noNoninteractiveTabindex": "error", + "noPositiveTabindex": "error", + "noRedundantAlt": "error", + "noRedundantRoles": "error", + "noSvgWithoutTitle": "error", + "useAltText": "error", + "useAnchorContent": "error", + "useAriaActivedescendantWithTabindex": "error", + "useAriaPropsForRole": "error", + "useButtonType": "error", + "useHeadingContent": "error", + "useHtmlLang": "error", + "useIframeTitle": "warn", + "useKeyWithClickEvents": "warn", + "useKeyWithMouseEvents": "warn", + "useMediaCaption": "error", + "useValidAnchor": "error", + "useValidAriaProps": "error", + "useValidAriaRole": "error", + "useValidAriaValues": "error", + "useValidLang": "error" + }, + "complexity": { + "noBannedTypes": "error", + "noExcessiveCognitiveComplexity": "error", + "noExtraBooleanCast": "error", + "noForEach": "error", + "noMultipleSpacesInRegularExpressionLiterals": "warn", + "noStaticOnlyClass": "error", + "noThisInStatic": "error", + "noUselessCatch": "error", + "noUselessConstructor": "error", + "noUselessEmptyExport": "error", + "noUselessFragments": "error", + "noUselessLabel": "error", + "noUselessRename": "error", + "noUselessSwitchCase": "error", + "noUselessThisAlias": "error", + "noUselessTypeConstraint": "error", + "noVoid": "off", + "noWith": "error", + "useArrowFunction": "error", + "useFlatMap": "error", + "useLiteralKeys": "error", + "useOptionalChain": "warn", + "useRegexLiterals": "error", + "useSimpleNumberKeys": "error", + "useSimplifiedLogicExpression": "error" + }, + "correctness": { + "noChildrenProp": "error", + "noConstantCondition": "error", + "noConstAssign": "error", + "noConstructorReturn": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "error", + "noGlobalObjectCalls": "error", + "noInnerDeclarations": "error", + "noInvalidConstructorSuper": "error", + "noInvalidNewBuiltin": "error", + "noNewSymbol": "error", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noRenderReturnValue": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noStringCaseMismatch": "error", + "noSwitchDeclarations": "error", + "noUndeclaredVariables": "error", + "noUnnecessaryContinue": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedLabels": "error", + "noUnusedVariables": "error", + "noVoidElementsWithChildren": "error", + "noVoidTypeReturn": "error", + "useExhaustiveDependencies": "error", + "useHookAtTopLevel": "error", + "useIsNan": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "performance": { + "noAccumulatingSpread": "error", + "noDelete": "off" + }, + "security": { + "noDangerouslySetInnerHtml": "error", + "noDangerouslySetInnerHtmlWithChildren": "error" + }, + "style": { + "noArguments": "error", + "noCommaOperator": "off", + "noDefaultExport": "off", + "noImplicitBoolean": "off", + "noInferrableTypes": "error", + "noNamespace": "error", + "noNegationElse": "error", + "noNonNullAssertion": "off", + "noParameterAssign": "off", + "noParameterProperties": "off", + "noRestrictedGlobals": "error", + "noShoutyConstants": "error", + "noUnusedTemplateLiteral": "error", + "noUselessElse": "error", + "noVar": "error", + "useAsConstAssertion": "error", + "useBlockStatements": "error", + "useCollapsedElseIf": "error", + "useConst": "error", + "useDefaultParameterLast": "error", + "useEnumInitializers": "error", + "useExponentiationOperator": "error", + "useFragmentSyntax": "error", + "useLiteralEnumMembers": "error", + "useNamingConvention": "off", + "useNumericLiterals": "error", + "useSelfClosingElements": "error", + "useShorthandArrayType": "error", + "useShorthandAssign": "error", + "useSingleCaseStatement": "error", + "useSingleVarDeclarator": "error", + "useTemplate": "off", + "useWhile": "error" + }, + "suspicious": { + "noApproximativeNumericConstant": "error", + "noArrayIndexKey": "error", + "noAssignInExpressions": "error", + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCommentText": "error", + "noCompareNegZero": "error", + "noConfusingLabels": "error", + "noConfusingVoidType": "error", + "noConsoleLog": "warn", + "noConstEnum": "off", + "noControlCharactersInRegex": "error", + "noDebugger": "off", + "noDoubleEquals": "error", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateJsxProps": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noEmptyInterface": "error", + "noExplicitAny": "warn", + "noExtraNonNullAssertion": "error", + "noFallthroughSwitchClause": "error", + "noFunctionAssign": "error", + "noGlobalIsFinite": "error", + "noGlobalIsNan": "error", + "noImplicitAnyLet": "off", + "noImportAssign": "error", + "noLabelVar": "error", + "noMisleadingInstantiator": "error", + "noMisrefactoredShorthandAssign": "off", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noRedundantUseStrict": "error", + "noSelfCompare": "off", + "noShadowRestrictedNames": "error", + "noSparseArray": "off", + "noUnsafeDeclarationMerging": "error", + "noUnsafeNegation": "error", + "useDefaultSwitchClauseLast": "error", + "useGetterReturn": "error", + "useIsArray": "error", + "useNamespaceKeyword": "error", + "useValidTypeof": "error" + }, + "nursery": { + "noDuplicateJsonKeys": "off", + "noEmptyBlockStatements": "error", + "noEmptyTypeParameters": "error", + "noGlobalEval": "off", + "noGlobalAssign": "error", + "noInvalidUseBeforeDeclaration": "error", + "noMisleadingCharacterClass": "error", + "noNodejsModules": "off", + "noThenProperty": "warn", + "noUnusedImports": "error", + "noUnusedPrivateClassMembers": "error", + "noUselessLoneBlockStatements": "error", + "noUselessTernary": "error", + "useAwait": "error", + "useConsistentArrayType": "error", + "useExportType": "error", + "useFilenamingConvention": "off", + "useForOf": "warn", + "useGroupedTypeImport": "error", + "useImportRestrictions": "off", + "useImportType": "error", + "useNodejsImportProtocol": "warn", + "useNumberNamespace": "error", + "useShorthandFunctionType": "warn" + } + } + }, + "formatter": { + "enabled": true, + "ignore": ["node_modules/**/*"], + "formatWithErrors": false, + "indentWidth": 2, + "indentStyle": "space", + "lineEnding": "lf", + "lineWidth": 80 + }, + "organizeImports": { + "enabled": true, + "ignore": ["node_modules/**/*"] + }, + "javascript": { + "formatter": { + "enabled": true, + "arrowParentheses": "asNeeded", + "bracketSameLine": false, + "bracketSpacing": true, + "indentWidth": 2, + "indentStyle": "space", + "jsxQuoteStyle": "double", + "lineEnding": "lf", + "lineWidth": 80, + "quoteProperties": "asNeeded", + "quoteStyle": "single", + "semicolons": "always", + "trailingComma": "all" + }, + "globals": [], + "parser": { + "unsafeParameterDecoratorsEnabled": true + } + }, + "json": { + "formatter": { + "enabled": true, + "indentWidth": 2, + "indentStyle": "space", + "lineEnding": "lf", + "lineWidth": 80 + }, + "parser": { + "allowComments": false, + "allowTrailingCommas": false + } + } +} diff --git a/examples/astro-demo/.eslintrc.js b/examples/astro-demo/.eslintrc.js deleted file mode 100644 index e3492ad..0000000 --- a/examples/astro-demo/.eslintrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - "root": true, - "extends": [ - "lxsmnsyc/typescript/react" - ], - "parserOptions": { - "project": "./tsconfig.eslint.json", - "tsconfigRootDir": __dirname, - }, - "rules": { - "react/no-unknown-property": "off", - "react/destructuring-assignment": "off", - "no-unused-expressions": "off" - } -}; diff --git a/examples/astro-demo/astro.config.mjs b/examples/astro-demo/astro.config.mjs index daee6c7..a096cad 100644 --- a/examples/astro-demo/astro.config.mjs +++ b/examples/astro-demo/astro.config.mjs @@ -1,7 +1,7 @@ import { defineConfig } from 'astro/config'; // https://astro.build/config -import solidJs from "@astrojs/solid-js"; +import solidJs from '@astrojs/solid-js'; import solidStyled from 'unplugin-solid-styled'; // https://astro.build/config @@ -14,8 +14,8 @@ export default defineConfig({ filter: { include: 'src/**/*.tsx', exclude: 'node_modules/**/*.{ts,js}', - } + }, }), ], }, -}); \ No newline at end of file +}); diff --git a/examples/astro-demo/package.json b/examples/astro-demo/package.json index 8e8502a..bf6f86b 100644 --- a/examples/astro-demo/package.json +++ b/examples/astro-demo/package.json @@ -9,15 +9,13 @@ "preview": "astro preview" }, "devDependencies": { - "astro": "^3.3.2", - "eslint": "^8.54.0", - "eslint-config-lxsmnsyc": "^0.6.5", - "typescript": "^5.3.2", + "astro": "^4.1.2", + "typescript": "^5.3.3", "unplugin-solid-styled": "0.10.0" }, "dependencies": { - "@astrojs/solid-js": "^3.0.2", - "solid-js": "^1.8.1", + "@astrojs/solid-js": "^4.0.1", + "solid-js": "^1.8.11", "solid-styled": "0.10.0" } } diff --git a/examples/astro-demo/src/components/App.tsx b/examples/astro-demo/src/components/App.tsx index 6ee37ec..e6947e9 100644 --- a/examples/astro-demo/src/components/App.tsx +++ b/examples/astro-demo/src/components/App.tsx @@ -1,4 +1,5 @@ -import { createSignal, JSX, Show } from 'solid-js'; +import { createSignal, Show } from 'solid-js'; +import type { JSX } from 'solid-js'; import { css } from 'solid-styled'; function ShowButton(): JSX.Element { diff --git a/examples/astro-demo/tsconfig.eslint.json b/examples/astro-demo/tsconfig.eslint.json deleted file mode 100644 index 69a4d50..0000000 --- a/examples/astro-demo/tsconfig.eslint.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "ESNext", - "lib": ["ESNext", "DOM"], - "moduleResolution": "Node", - "strict": true, - "sourceMap": true, - "resolveJsonModule": true, - "esModuleInterop": true, - "noEmit": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noImplicitReturns": true, - "types": [ - "astro/client" - ], - "jsx": "preserve", - "jsxImportSource": "solid-js", - }, - "include": ["./src"] -} diff --git a/examples/demo/.eslintrc.js b/examples/demo/.eslintrc.js deleted file mode 100644 index e3492ad..0000000 --- a/examples/demo/.eslintrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - "root": true, - "extends": [ - "lxsmnsyc/typescript/react" - ], - "parserOptions": { - "project": "./tsconfig.eslint.json", - "tsconfigRootDir": __dirname, - }, - "rules": { - "react/no-unknown-property": "off", - "react/destructuring-assignment": "off", - "no-unused-expressions": "off" - } -}; diff --git a/examples/demo/index.html b/examples/demo/index.html index 78ed111..b1c352e 100644 --- a/examples/demo/index.html +++ b/examples/demo/index.html @@ -1,13 +1,16 @@ -
- - - -