mirror of
https://github.com/vector-im/element-web.git
synced 2025-11-08 04:01:07 +01:00
* Move shared components to a packages/ directory so they can be publish more sensibly * Iterate towards split out shared-components module * Move shared component source into src/ subdir * Fix up imports * Include shared components in babel-ing (again) * Remove now unused dependencies * Update import in storybook preview * ...except of course they aren't unused if we import the shared components by source * Ignore shared components deps * Add shared-components to i18n paths and upgrade web-i18n to version that supports doing so * Move storybook stuff to shared-components * Seems we don't need this anymore... * Remove unused deps and remove storybook plugin from eslint * Presumably working-directory is only valid on run steps * Ignore dep & run prettier * Prettier on knips.ts * Hopefully run in right dir * Remember how to software write * Okay... how about THIS way? * Oh right, they were git ignored. Sigh. * Add concurrently * Ignore in knip * Better? * Paaaaaaaackageeeeeeees * More packages * Move playwright snapshots * Still need a custom snapshots dir * Add eslint back * Oh, now knip sees them * Fix another import * Don't lint shared-components with everything else Okay, eslint & tsconfig are tied too closely for this to work and running tsc on the shared components will need its deps installing * Maybe lint shared components please? * Not quite * Remove storybook again Re-check if it does work without it * Remove storybook eslint plugin as we're not linting storybook here anymore * Remove this too * We do need it here though
64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
module.exports = {
|
|
plugins: ["matrix-org", "eslint-plugin-react-compiler"],
|
|
extends: [
|
|
"plugin:matrix-org/babel",
|
|
"plugin:matrix-org/react",
|
|
"plugin:matrix-org/a11y",
|
|
"plugin:storybook/recommended",
|
|
],
|
|
parserOptions: {
|
|
project: ["./tsconfig.json"],
|
|
},
|
|
env: {
|
|
browser: true,
|
|
node: true,
|
|
},
|
|
rules: {
|
|
// Bind or arrow functions in props causes performance issues (but we
|
|
// currently use them in some places).
|
|
// It's disabled here, but we should using it sparingly.
|
|
"react/jsx-no-bind": "off",
|
|
"react/jsx-key": ["error"],
|
|
"matrix-org/require-copyright-header": "error",
|
|
"react-compiler/react-compiler": "error",
|
|
},
|
|
overrides: [
|
|
{
|
|
files: ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}"],
|
|
extends: ["plugin:matrix-org/typescript", "plugin:matrix-org/react"],
|
|
rules: {
|
|
"@typescript-eslint/explicit-function-return-type": [
|
|
"error",
|
|
{
|
|
allowExpressions: true,
|
|
},
|
|
],
|
|
|
|
// Remove Babel things manually due to override limitations
|
|
"@babel/no-invalid-this": ["off"],
|
|
|
|
// We're okay being explicit at the moment
|
|
"@typescript-eslint/no-empty-interface": "off",
|
|
// We disable this while we're transitioning
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
// We'd rather not do this but we do
|
|
"@typescript-eslint/ban-ts-comment": "off",
|
|
// We're okay with assertion errors when we ask for them
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
"@typescript-eslint/no-empty-object-type": [
|
|
"error",
|
|
{
|
|
// We do this sometimes to brand interfaces
|
|
allowInterfaces: "with-single-extends",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
settings: {
|
|
react: {
|
|
version: "detect",
|
|
},
|
|
},
|
|
};
|