Commit Graph

22 Commits

Author SHA1 Message Date
Jens Vannerum
ee83beae94 fix bug in lint rule, add docs for rule and update name so it's clear this is only for buttons currently
(cherry picked from commit 2380d4e751)
2024-09-20 16:45:48 +02:00
Jens Vannerum
c249afdb3f lint rule with autofix to disallow the disabled input on button elements 2024-09-18 13:09:25 +02:00
Alan Orth
e29a6a3c0a 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-05 14:56:23 +03:00
Alexandre Vryghem
5f922c06e0 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
2024-08-30 22:42:47 +02: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