about summary refs log tree commit diff
path: root/eslint/use-prefixed-imports.js
blob: 141d5364846099909c3c7c77fdfb8df297b2d0e6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const BANNED_IMPORT_PREFIXES = [
  'alf/',
  'components/',
  'lib/',
  'locale/',
  'logger/',
  'platform/',
  'state/',
  'storage/',
  'view/',
]

module.exports = {
  meta: {
    type: 'suggestion',
    fixable: 'code',
  },
  create(context) {
    return {
      ImportDeclaration(node) {
        const source = node.source
        if (typeof source.value !== 'string') {
          return
        }
        if (
          BANNED_IMPORT_PREFIXES.some(banned => source.value.startsWith(banned))
        ) {
          context.report({
            node: source,
            message: `Use '#/${source.value}'`,
            fix(fixer) {
              return fixer.replaceText(source, `'#/${source.value}'`)
            },
          })
        }
      },
    }
  },
}