ci: Introduce lint rule no-type-unsafe-event-emitter (no-changelog) (#10254)

This commit is contained in:
Iván Ovejero
2024-08-02 12:01:42 +02:00
committed by GitHub
parent 432ac1da59
commit dc8c94d036
3 changed files with 39 additions and 0 deletions

View File

@@ -448,6 +448,36 @@ module.exports = {
};
},
},
'no-type-unsafe-event-emitter': {
meta: {
type: 'problem',
docs: {
description: 'Disallow extending from `EventEmitter`, which is not type-safe.',
recommended: 'error',
},
messages: {
noExtendsEventEmitter: 'Extend from the type-safe `TypedEmitter` class instead.',
},
},
create(context) {
return {
ClassDeclaration(node) {
if (
node.superClass &&
node.superClass.type === 'Identifier' &&
node.superClass.name === 'EventEmitter' &&
node.id.name !== 'TypedEmitter'
) {
context.report({
node: node.superClass,
messageId: 'noExtendsEventEmitter',
});
}
},
};
},
},
};
const isJsonParseCall = (node) =>