Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
'use strict';
const fs = require('fs');
const globalDirs = require('global-dirs');
const isPathInside = require('is-path-inside');
module.exports =
isPathInside(__dirname, globalDirs.yarn.packages) ||
isPathInside(__dirname, fs.realpathSync(globalDirs.npm.packages));
}
const getPackagesFrom = (path, includedStr) => {
if (existsSync(path)) {
return readdirSync(path).filter(f => {
const fullPath = resolve(path, f);
return statSync(fullPath).isDirectory() && fullPath.includes(includedStr);
});
}
return [];
};
const pkgListPaths = [
globalDirs.npm.packages,
globalDirs.npm.packages !== globalDirs.yarn.packages &&
globalDirs.yarn.packages,
resolve(process.cwd(), 'node_modules'),
].filter(Boolean);
const externalPlugins = pkgListPaths.reduce((acc, pkgListPath) => {
const orgPluginPath = resolve(pkgListPath, '@mamba');
return [
...acc,
...getPackagesFrom(pkgListPath, 'mamba-cli-plugin-'),
...getPackagesFrom(orgPluginPath, 'cli-plugin-').map(
pkg => `@mamba/${pkg}`,
),
];
}, []);
module.exports = externalPlugins.reduce((acc, moduleName) => {
const pluginModule = loadCommand(moduleName);
const resolveGlobal = moduleId => {
try {
return require.resolve(path.join(globalDirs.yarn.packages, moduleId));
} catch (_) {
return require.resolve(path.join(globalDirs.npm.packages, moduleId));
}
};
return plugin;
}
const getPackagesFrom = (path, includedStr) => {
if (existsSync(path)) {
return readdirSync(path).filter(f => {
const fullPath = resolve(path, f);
return statSync(fullPath).isDirectory() && fullPath.includes(includedStr);
});
}
return [];
};
const pkgListPaths = [
globalDirs.npm.packages,
globalDirs.npm.packages !== globalDirs.yarn.packages &&
globalDirs.yarn.packages,
resolve(process.cwd(), 'node_modules'),
].filter(Boolean);
const externalPlugins = pkgListPaths.reduce((acc, pkgListPath) => {
const orgPluginPath = resolve(pkgListPath, '@mamba');
return [
...acc,
...getPackagesFrom(pkgListPath, 'mamba-cli-plugin-'),
...getPackagesFrom(orgPluginPath, 'cli-plugin-').map(
pkg => `@mamba/${pkg}`,
),
];
}, []);
module.exports = externalPlugins.reduce((acc, moduleName) => {