New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

depstr

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

depstr - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

2

package.json
{
"name": "depstr",
"version": "1.0.1",
"version": "1.0.2",
"description": "Bulk linking of packages and bulk updated for dependencies",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -54,20 +54,22 @@ import RainbowConfig from '@rainbow-industries/rainbow-config';

const dependenciesMap = new Map();
const dependenciesArray = [];
if (this.config.get('dependencies')) {
await this.resolveDependencies(this.config.get('dependencies'), this.packageJSON.dependencies || {}, dependenciesMap);
const toBeInstalledDependencies = await this.resolveDependencies(this.config.get('dependencies'), this.packageJSON.dependencies || {});
dependenciesArray.push(...toBeInstalledDependencies);
}
if (this.config.get('dev-dependencies')) {
await this.resolveDependencies(this.config.get('dev-dependencies'), this.packageJSON.devDependencies || {}, dependenciesMap);
const toBeInstalledDependencies = await this.resolveDependencies(this.config.get('dev-dependencies'), this.packageJSON.devDependencies || {});
dependenciesArray.push(...toBeInstalledDependencies);
}
const packages = await this.resolvePackages(dependenciesMap);
const localPackages = await this.collectLocalPackages();
for (const packageName of dependenciesMap.keys()) {
if (!packages.has(packageName)) {
for (const packageName of (new Set(dependenciesArray).keys())) {
if (!localPackages.has(packageName)) {
throw new Error(`Cannot link package ${packageName} from ${this.cwd}: Package not found in the ${path.join(this.cwd, '../')} directory!`);
}
await this.linkDependency(packages.get(packageName));
await this.linkDependency(localPackages.get(packageName));

@@ -78,3 +80,3 @@ if (!this.linkedDependencies.has(packageName)) {

const linker = new Linker({
cwd: packages.get(packageName),
cwd: localPackages.get(packageName),
linkedDependencies: this.linkedDependencies,

@@ -92,7 +94,7 @@ isDryRun: this.isDryRun,

async resolvePackages(dependenciesMap) {
const packages = await glob(path.join(this.cwd, '../'), '*/package.json');
async collectLocalPackages() {
const localPackages = await glob(path.join(this.cwd, '../'), '*/package.json');
const packageMap = new Map();
for (const packageName of packages) {
for (const packageName of localPackages) {
const json = await this.loadPackageJSON(packageName);

@@ -108,5 +110,13 @@ packageMap.set(json.name, path.dirname(packageName));

async resolveDependencies(dependencyList, packageDependencies, dependenciesMap) {
/**
* checks which dependencies should be linked
*
* @param {array} dependencyList lsit of to be linked dependencies form the depstr
* config file
* @param {object} packageDependencies all dependencies that are part of th
* epackage.json file
*/
async resolveDependencies(dependencyList, packageDependencies) {
const packageDependenciesSet = new Set(Object.keys(packageDependencies));
const toBeInstalledDependencies = [];

@@ -118,11 +128,14 @@ for (const dependency of dependencyList) {

for (const dep of packageDependenciesSet.keys()) {
reg.lastIndex = 0;
if (reg.test(dep)) {
dependenciesMap.set(dep, null);
toBeInstalledDependencies.push(dep);
}
}
} else if (packageDependenciesSet.has(dependency)) {
toBeInstalledDependencies.push(dependency);
}
else if (packageDependenciesSet.has(dependency)) {
dependenciesMap.set(dependency, null);
}
}
return toBeInstalledDependencies;
}

@@ -129,0 +142,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc