lib/rules/only-tsx-files.js (35 lines of code) (raw):
'use strict';
module.exports = {
meta: {
docs: {
category: 'TypeScript',
description:
'Enforce `.tsx` file extensions (definition files are ignored by this rule)',
githubIssue: 'https://github.com/mozilla/addons-code-manager/issues/75',
recommended: true,
typescript: true,
},
messages: {
error: 'Only use `.tsx` file extensions in a TypeScript project.',
},
fixable: null,
schema: [],
},
create: (context) => {
const FILENAME = context.filename ?? context.getFilename();
return {
Program: (node) => {
const name = FILENAME;
if (name.endsWith('.d.ts')) {
return;
}
if (!name.endsWith('.tsx')) {
context.report({
node,
messageId: 'error',
});
}
},
};
},
};