Commit Graph

29 Commits

Author SHA1 Message Date
Alexandre Vryghem
598471913e 117616: Fixed unique-decorators rule to work across multiple files
Also moved the logic to filter out unwanted decorators to the ESLint's selector and fixed a typo
2025-05-16 18:13:50 +02:00
Yury Bondarenko
8ff5a23c40 117616: Fix rule creator call & add structure test case 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
01c8c60624 117616: Ported unique-decorators rule 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
4200357100 117616: Ported themed-wrapper-no-input-defaults rule 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
39fec7ce64 117616: Replace all the usages of the import 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
f10447b8d3 117616: Fixed alias-imports edge case where duplicate imports with different aliases were both kept 2025-05-16 18:13:49 +02:00
Alexandre Vryghem
abb03799e0 117616: Ported alias-imports rule 2025-05-16 18:13:48 +02:00
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