feat(ts): ban cjs exports in ts file (#167)

This commit is contained in:
曾明健
2023-05-19 16:29:54 +08:00
committed by GitHub
parent 96dd9a1797
commit 3ca0e7ea8b
6 changed files with 136 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import { createEslintRule } from '../utils'
export const RULE_NAME = 'no-ts-export-equal'
export type MessageIds = 'noTsExportEqual'
export type Options = []
export default createEslintRule<Options, MessageIds>({
name: RULE_NAME,
meta: {
type: 'problem',
docs: {
description: 'Do not use `exports =`',
recommended: false,
},
schema: [],
messages: {
noTsExportEqual: 'Use ESM `export default` instead',
},
},
defaultOptions: [],
create: (context) => {
const extension = context.getFilename().split('.').pop()
if (!['ts', 'tsx', 'mts', 'cts'].includes(extension))
return {}
return {
TSExportAssignment(node) {
context.report({
node,
messageId: 'noTsExportEqual',
})
},
}
},
})