From 46bbd477e3c7663ddfc96e2d7b469a56ba782c74 Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Tue, 1 Oct 2019 11:08:28 +0700 Subject: [PATCH] Do not include peerDependencies in dependency list --- packages/image-upload/package.json | 2 +- packages/scripts/src/scripts/imports.ts | 29 ++++++++++++++++++++----- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/packages/image-upload/package.json b/packages/image-upload/package.json index 6f91903..d2b2fc3 100644 --- a/packages/image-upload/package.json +++ b/packages/image-upload/package.json @@ -9,4 +9,4 @@ "main": "lib/index.js", "types": "lib/index.d.ts", "module": "esm/index.js" -} \ No newline at end of file +} diff --git a/packages/scripts/src/scripts/imports.ts b/packages/scripts/src/scripts/imports.ts index 29558d9..c85f105 100644 --- a/packages/scripts/src/scripts/imports.ts +++ b/packages/scripts/src/scripts/imports.ts @@ -8,8 +8,9 @@ import {join} from 'path' interface Package { name: string version: string - dependencies: Record - devDependencies: Record + peerDependencies?: Record + dependencies?: Record + devDependencies?: Record } interface Dependencies { @@ -168,8 +169,8 @@ export function imports(...argv: string[]) { .map(resolveModuleName) .reduce((obj, mod) => { const versionString = - rootPackage.dependencies[mod] || - rootPackage.devDependencies[mod] + (rootPackage.dependencies || {})[mod] || + (rootPackage.devDependencies || {})[mod] const resolvedModule = resolveModule(mod, versionString) obj[resolvedModule.name] = resolvedModule.version return obj @@ -182,7 +183,25 @@ export function imports(...argv: string[]) { const imports = collectImports(pkgDir, 'tsconfig.json') const packageFile = join(pkgDir, 'package.json') const targetPackage = readPackage(packageFile) - targetPackage.dependencies = resolveDependencies(imports.dependencies) + const dependencies = resolveDependencies(imports.dependencies) + if (targetPackage.peerDependencies) { + const peerDependencyNames = new Set( + Object.keys(targetPackage.peerDependencies), + ) + const depsWithoutPeers = Object + .keys(dependencies) + .reduce((obj, dep) => { + if (!peerDependencyNames.has(dep)) { + obj[dep] = dependencies[dep] + } else { + error('Skipping peer dependency "%s"', dep) + } + return obj + }, {} as Record) + targetPackage.dependencies = depsWithoutPeers + } else { + targetPackage.dependencies = dependencies + } targetPackage.devDependencies = resolveDependencies(imports.devDependencies) debug('dependencies: %o', targetPackage.dependencies) debug('devDependencies: %o', targetPackage.devDependencies)