-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.js
39 lines (32 loc) · 1.04 KB
/
index.js
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
var findRoot = require('find-root');
var nodeResolver = require('eslint-import-resolver-node');
var path = require('path');
var log = require('debug')('eslint-plugin-import:resolver:reactnative');
function pluginSettings(settings) {
return Object.assign(
{
extensions: ['.js', '.json', '.android.js', '.ios.js'],
},
settings
);
}
exports.interfaceVersion = 2;
exports.resolve = function (source, file, userSettings) {
log('Resolving:', source, 'from:', file);
var settings = pluginSettings(userSettings);
try {
var appRoot = findRoot(file);
var package = require(path.join(appRoot, 'package.json'));
if (package.name) {
var namePath = package.name + '/';
if (source.indexOf(namePath) === 0) {
var absSource = path.join(appRoot, source.replace(namePath, ''));
return nodeResolver.resolve(absSource, file, settings);
}
}
} catch (err) {
log('Error:', err);
log('Fall back to eslint-import-resolver-node');
}
return nodeResolver.resolve(source, file, settings);
};