Skip to content

Commit

Permalink
Fixes #9168
Browse files Browse the repository at this point in the history
Summary:
Imports missing commit from the rnpm master.
Closes #9179

Differential Revision: D3661909

fbshipit-source-id: 23ebd3b96f236ab140f91eb4ed9f456d7c925027
  • Loading branch information
grabbou authored and Facebook Github Bot 4 committed Aug 3, 2016
1 parent cb778aa commit 4fce8ea
Showing 1 changed file with 36 additions and 5 deletions.
41 changes: 36 additions & 5 deletions local-cli/rnpm/core/src/findPlugins.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,29 @@ const flatten = require('lodash').flatten;
* @param {String} dependency Name of the dependency
* @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 findPluginInFolder = (folder) => {
var pjson;
const readPackage = (folder) => {
try {
pjson = require(path.join(folder, 'package.json'));
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 pjson = readPackage(folder);

if (!pjson) {
return [];
}

Expand All @@ -23,7 +39,22 @@ const findPluginInFolder = (folder) => {
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;
},
[]
);
};

/**
Expand Down

0 comments on commit 4fce8ea

Please sign in to comment.