All files / eslint-config-eloquence resolver.js

0% Statements 0/13
0% Branches 0/6
0% Functions 0/2
0% Lines 0/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                                     
'use strict'
 
const fs = require('fs')
const path = require('path')
const nodeResolver = require('eslint-import-resolver-node')
 
exports.interfaceVersion = 2
 
const defaultAliases = {
  '@': path.resolve(fs.realpathSync(process.cwd()), 'src'),
}
 
exports.resolve = function resolve(source, file, config) {
  const aliases = config && config.aliases ? config.aliases : defaultAliases
  let dealiasedSource = source
 
  Object.keys(aliases).forEach((alias) => {
    // Use the alias plus a directory separator to make sure we don't match
    // package names that start with some alias
    const osAlias = alias + path.sep
 
    if (dealiasedSource.startsWith(osAlias)) {
      dealiasedSource = dealiasedSource.replace(
        new RegExp(osAlias),
        aliases[alias] + path.sep,
      )
    }
  })
 
  return nodeResolver.resolve(dealiasedSource, file, {
    extensions: ['.mjs', '.js', '.jsx', '.json', '.ts', '.tsx'],
    ...config,
  })
}