Skip to content

Commit 7b025b8

Browse files
committed
fix: allow decorated template-tag only classes
…in `no-empty-glimmer-component-classes`, as it already allows decorated empty glimmer classes (w/o the tag template)
1 parent ffd48b3 commit 7b025b8

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

docs/rules/no-empty-glimmer-component-classes.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,16 @@ import MyDecorator from 'my-decorator';
7070
class MyComponent extends Component {}
7171
```
7272

73+
```js
74+
import Component from '@glimmer/component';
75+
import MyDecorator from 'my-decorator';
76+
77+
@MyDecorator
78+
class MyComponent extends Component {
79+
<template>foo</template>
80+
}
81+
```
82+
7383
```js
7484
import Component from '@glimmer/component';
7585

lib/rules/no-empty-glimmer-component-classes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module.exports = {
4040
} else if (
4141
node.body.body.length === 1 &&
4242
node.body.body[0].type === 'GlimmerTemplate' &&
43+
!node.decorators?.length &&
4344
!subClassHasTypeDefinition
4445
) {
4546
context.report({ node, message: ERROR_MESSAGE_TEMPLATE_TAG });

tests/lib/rules/no-empty-glimmer-component-classes.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const { ERROR_MESSAGE } = rule;
1212
//------------------------------------------------------------------------------
1313

1414
const ruleTester = new RuleTester({
15-
parser: require.resolve('@babel/eslint-parser'),
15+
parser: require.resolve('ember-eslint-parser'),
1616
parserOptions: {
1717
ecmaVersion: 2022,
1818
sourceType: 'module',
@@ -34,6 +34,13 @@ ruleTester.run('no-empty-glimmer-component-classes', rule, {
3434
3535
@MyDecorator
3636
class MyComponent extends Component {}`,
37+
`import Component from '@glimmer/component';
38+
import MyDecorator from 'my-decorator';
39+
40+
@MyDecorator
41+
class MyComponent extends Component {
42+
<template>foo</template>
43+
}`,
3744
{
3845
code: `
3946
import Component from '@glimmer/component';

0 commit comments

Comments
 (0)