Skip to content

Commit 22648fd

Browse files
committed
yarn: Use viewOne and viewMany from npm adapter.
1 parent 76deaed commit 22648fd

File tree

2 files changed

+4
-43
lines changed

2 files changed

+4
-43
lines changed

lib/package-managers/npm.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,5 +346,7 @@ module.exports = {
346346
},
347347

348348
defaultPrefix,
349-
packageAuthorChanged
349+
packageAuthorChanged,
350+
viewOne,
351+
viewMany,
350352
}

lib/package-managers/yarn.js

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,14 @@
22

33
// eslint-disable-next-line fp/no-events
44
const { once } = require('events')
5-
65
const _ = require('lodash')
76
const cint = require('cint')
87
const semver = require('semver')
98
const spawn = require('spawn-please')
10-
const pacote = require('pacote')
119
const libnpmconfig = require('libnpmconfig')
12-
1310
const jsonlines = require('jsonlines')
14-
1511
const versionUtil = require('../version-util')
12+
const { viewOne, viewMany } = require('./npm.js')
1613

1714
const TIME_FIELDS = ['modified', 'created']
1815

@@ -75,44 +72,6 @@ async function parseJsonLines(result) {
7572

7673
}
7774

78-
/**
79-
* Returns the value of one of the properties retrieved by yarn view.
80-
*
81-
* @param packageName Name of the package
82-
* @param field Field such as "versions" or "dist-tags.latest" are parsed from the pacote result (https://www.yarnjs.com/package/pacote#packument)
83-
* @param currentVersion
84-
* @returns Promised result
85-
*/
86-
async function viewOne(packageName, field, currentVersion, { timeout } = {}) {
87-
const result = await viewMany(packageName, [field], currentVersion, { timeout })
88-
return result && result[field]
89-
}
90-
91-
/**
92-
* Returns an object of specified values retrieved by yarn view.
93-
*
94-
* @param packageName Name of the package
95-
* @param fields Array of fields like versions, time, version
96-
* @param currentVersion
97-
* @returns Promised result
98-
*/
99-
async function viewMany(packageName, fields, currentVersion, { timeout } = {}) {
100-
if (currentVersion && (!semver.validRange(currentVersion) ||
101-
versionUtil.isWildCard(currentVersion))) {
102-
return Promise.resolve({})
103-
}
104-
105-
yarnConfig.fullMetadata = fields.includes('time')
106-
107-
const result = await pacote.packument(packageName, { ...yarnConfig, timeout })
108-
return fields.reduce((accum, field) => ({
109-
...accum,
110-
[field]: field.startsWith('dist-tags.') && result.versions ?
111-
result.versions[_.get(result, field)] :
112-
result[field],
113-
}), {})
114-
}
115-
11675
/**
11776
* @param versions Array of all available versions
11877
* @param pre Enabled prerelease?

0 commit comments

Comments
 (0)