mirror of
https://github.com/status-im/react-native.git
synced 2025-01-15 03:56:03 +00:00
Fixes #9168
Summary: Imports missing commit from the rnpm master. Closes https://github.com/facebook/react-native/pull/9179 Differential Revision: D3661909 fbshipit-source-id: 23ebd3b96f236ab140f91eb4ed9f456d7c925027
This commit is contained in:
parent
cb778aa543
commit
4fce8ea4f4
@ -8,13 +8,29 @@ const flatten = require('lodash').flatten;
|
|||||||
* @param {String} dependency Name of the dependency
|
* @param {String} dependency Name of the dependency
|
||||||
* @return {Boolean} If dependency is a rnpm plugin
|
* @return {Boolean} If dependency is a rnpm plugin
|
||||||
*/
|
*/
|
||||||
const isPlugin = (dependency) => dependency.indexOf('rnpm-plugin-') === 0;
|
const isRNPMPlugin = (dependency) => dependency.indexOf('rnpm-plugin-') === 0;
|
||||||
|
const isReactNativePlugin = (dependency) => dependency.indexOf('react-native-') === 0;
|
||||||
|
|
||||||
|
const readPackage = (folder) => {
|
||||||
|
try {
|
||||||
|
return require(path.join(folder, 'package.json'));
|
||||||
|
} catch (e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const findPluginsInReactNativePackage = (pjson) => {
|
||||||
|
if (!pjson.rnpm || !pjson.rnpm.plugin) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return path.join(pjson.name, pjson.rnpm.plugin);
|
||||||
|
};
|
||||||
|
|
||||||
const findPluginInFolder = (folder) => {
|
const findPluginInFolder = (folder) => {
|
||||||
var pjson;
|
const pjson = readPackage(folder);
|
||||||
try {
|
|
||||||
pjson = require(path.join(folder, 'package.json'));
|
if (!pjson) {
|
||||||
} catch (e) {
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -23,7 +39,22 @@ const findPluginInFolder = (folder) => {
|
|||||||
Object.keys(pjson.devDependencies || {})
|
Object.keys(pjson.devDependencies || {})
|
||||||
);
|
);
|
||||||
|
|
||||||
return deps.filter(isPlugin);
|
return deps.reduce(
|
||||||
|
(acc, pkg) => {
|
||||||
|
if (isRNPMPlugin(pkg)) {
|
||||||
|
return acc.concat(pkg);
|
||||||
|
}
|
||||||
|
if (isReactNativePlugin(pkg)) {
|
||||||
|
const pkgJson = readPackage(path.join(folder, 'node_modules', pkg));
|
||||||
|
if (!pkgJson) {
|
||||||
|
return acc;
|
||||||
|
}
|
||||||
|
return acc.concat(findPluginsInReactNativePackage(pkgJson));
|
||||||
|
}
|
||||||
|
return acc;
|
||||||
|
},
|
||||||
|
[]
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user