mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-24 18:11:39 -04:00
refactor(move isInnerLink() to separate file):
This commit is contained in:
@@ -5,7 +5,7 @@ import pLimit = require('p-limit')
|
||||
import npa = require('npm-package-arg')
|
||||
import symlinkDir from 'symlink-dir'
|
||||
import pFilter = require('p-filter')
|
||||
import getLinkTarget = require('get-link-target')
|
||||
import isInnerLink from '../isInnerLink'
|
||||
import {PnpmOptions, StrictPnpmOptions, Dependencies} from '../types'
|
||||
import createGot from '../network/got'
|
||||
import getContext, {PnpmContext} from './getContext'
|
||||
@@ -236,23 +236,6 @@ async function installInContext (
|
||||
}
|
||||
}
|
||||
|
||||
async function isInnerLink (modules: string, depName: string) {
|
||||
let linkTarget: string
|
||||
try {
|
||||
const linkPath = path.join(modules, depName)
|
||||
linkTarget = await getLinkTarget(linkPath)
|
||||
} catch (err) {
|
||||
if (err.code === 'ENOENT') return true
|
||||
throw err
|
||||
}
|
||||
|
||||
if (linkTarget.startsWith(modules)) {
|
||||
return true
|
||||
}
|
||||
logger.info(`${depName} is linked to ${modules} from ${linkTarget}`)
|
||||
return false
|
||||
}
|
||||
|
||||
async function createInstallCmd (opts: StrictPnpmOptions, shrinkwrap: Shrinkwrap): Promise<InstallContext> {
|
||||
return {
|
||||
installs: {},
|
||||
|
||||
20
src/isInnerLink.ts
Normal file
20
src/isInnerLink.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
import logger from 'pnpm-logger'
|
||||
import path = require('path')
|
||||
import getLinkTarget = require('get-link-target')
|
||||
|
||||
export default async function isInnerLink (modules: string, depName: string) {
|
||||
let linkTarget: string
|
||||
try {
|
||||
const linkPath = path.join(modules, depName)
|
||||
linkTarget = await getLinkTarget(linkPath)
|
||||
} catch (err) {
|
||||
if (err.code === 'ENOENT') return true
|
||||
throw err
|
||||
}
|
||||
|
||||
if (linkTarget.startsWith(modules)) {
|
||||
return true
|
||||
}
|
||||
logger.info(`${depName} is linked to ${modules} from ${linkTarget}`)
|
||||
return false
|
||||
}
|
||||
@@ -60,8 +60,10 @@
|
||||
"src/index.ts",
|
||||
"src/install/fetch.ts",
|
||||
"src/install/fetchResolution.ts",
|
||||
"src/install/getIsInstallable.ts",
|
||||
"src/install/installMultiple.ts",
|
||||
"src/install/postInstall.ts",
|
||||
"src/isInnerLink.ts",
|
||||
"src/link/index.ts",
|
||||
"src/link/linkBins.ts",
|
||||
"src/link/linkPeers.ts",
|
||||
|
||||
Reference in New Issue
Block a user