Commit Graph

23 Commits

Author SHA1 Message Date
Jens Vannerum
6182e222d3 Merge remote-tracking branch 'origin/dspace-8_x' into w2p-117544_support-for-disabled-elements-for-screen-readers-8.0 2025-01-24 10:14:41 +01:00
Jens Vannerum
2380d4e751 fix bug in lint rule, add docs for rule and update name so it's clear this is only for buttons currently 2024-09-20 16:45:05 +02:00
Jens Vannerum
7ade453218 lint rule with autofix to disallow the disabled input on button elements 2024-09-18 13:07:56 +02:00
Alan Orth
3626cdf699 lint/src/util: fix TS2314
Fix error in lint:

> lint/src/util/structure.ts:16:20 - error TS2314: Generic type 'RuleMetaData<MessageIds, Options>' requires 2 type argument(s).
>
> 16 export type Meta = RuleMetaData<string>;
2024-09-09 08:07:54 +03:00
Alexandre Vryghem
e561d1a469 Remove webpack@5.90.3 since it causes issues with the tests
This automatically removed some old eslint dependencies, which caused some conflicts in the custom linting plugin

(cherry picked from commit 5f922c06e0)
2024-09-03 21:38:00 +00:00
Yury Bondarenko
3a0c964a49 Upgrade @angular-eslint & get rid of warning in tests 2024-04-25 12:50:38 +02:00
Yury Bondarenko
348dcc47fd Generated docs should use Unix line endings on Windows 2024-04-25 12:30:53 +02:00
Yury Bondarenko
145a0a04b6 Fix lint plugins & tests on Windows 2024-04-25 11:52:12 +02:00
Yury Bondarenko
63090b501b Update README 2024-04-18 15:08:08 +02:00
Yury Bondarenko
dc1053e3f9 Resolve lint issues due to new default rules
We could turn these rules off, but it seems that they indicate some important inconsistencies.

A few cases have been ignored inline because they should be investigated in more detail, which is out of scope for this PR:
- Metadata representation components compare `BrowseByDataType` to a `ResourceType`. Could be related to #2949.
- We assume that dynamic form dates are always represented by strings, but they can also be `Date` or `object` according to the library (see da1742ce05/projects/ng-dynamic-forms/core/src/lib/model/dynamic-date-control.model.ts (L5))
2024-04-18 11:02:04 +02:00
Yury Bondarenko
14a19b2000 Upgrade TSESLint to support TypeScript 5.3.3 2024-04-18 11:02:04 +02:00
Yury Bondarenko
c4b32febc1 Explain themed-component-classes rule 2024-03-29 10:52:55 +01:00
Yury Bondarenko
515e5f00cf Improve documentation 2024-03-29 10:46:20 +01:00
Yury Bondarenko
2c68589416 Move generated documentation to docs/lint/ 2024-03-29 10:12:57 +01:00
Yury Bondarenko
6051b82821 Automatically migrate to new themeable component convention 2024-03-28 18:33:46 +01:00
Yury Bondarenko
e40b6ae612 Update plugins to support standalone components
- ThemedComponent wrappers should always import their base component. This ensures that it's always enough to only import the wrapper when we use it.
- This implies that all themeable components must be standalone

→ added rules to enforce this
→ updated usage rule to improve declaration/import handling
2024-03-28 18:33:46 +01:00
Yury Bondarenko
568574585b Workaround/document edge case where node can't be found by token 2024-03-21 10:35:04 +01:00
Yury Bondarenko
6e22b5376a Make rules more type-safe 2024-03-21 10:11:04 +01:00
Yury Bondarenko
b0758c23e5 Enforce plugin structure and generate documentation 2024-03-21 10:11:04 +01:00
Yury Bondarenko
e83a0cd741 Fix lint lint issues 2024-03-21 10:11:04 +01:00
Yury Bondarenko
9a27db3835 Lint e2e tests, enforce selectors 2024-03-21 10:11:04 +01:00
Yury Bondarenko
13e9808df2 Don't enforce ThemedComponent selectors in test HTML 2024-03-21 10:11:04 +01:00
Yury Bondarenko
3937be13f2 Custom ESLint rules to enforce new ThemedComponent selector convention
The following cases are covered:
- ThemedComponent wrapper selectors must not start with ds-themed-
- Base component selectors must start with ds-base-
- Themed component selectors must start with ds-themed-
- The ThemedComponent wrapper must always be used in HTML
- The ThemedComponent wrapper must be used in TypeScript _where appropriate_:
  - Required
    - Explicit usages (e.g. modal instantiation, routing modules, ...)
    - By.css selector queries (in order to align with the HTML rule)
  - Unchecked
    - Non-routing modules (to ensure the components can be declared)
    - ViewChild hooks (since they need to attach to the underlying component)

All rules work with --fix to automatically migrate to the new convention
This covers most of the codebase, but minor manual adjustment are needed afterwards
2024-03-21 10:11:04 +01:00