|
2 | 2 |
|
3 | 3 | // eslint-disable-next-line fp/no-events
|
4 | 4 | const { once } = require('events')
|
5 |
| - |
6 | 5 | const _ = require('lodash')
|
7 | 6 | const cint = require('cint')
|
8 | 7 | const semver = require('semver')
|
9 | 8 | const spawn = require('spawn-please')
|
10 |
| -const pacote = require('pacote') |
11 | 9 | const libnpmconfig = require('libnpmconfig')
|
12 |
| - |
13 | 10 | const jsonlines = require('jsonlines')
|
14 |
| - |
15 | 11 | const versionUtil = require('../version-util')
|
| 12 | +const { viewOne, viewMany } = require('./npm.js') |
16 | 13 |
|
17 | 14 | const TIME_FIELDS = ['modified', 'created']
|
18 | 15 |
|
@@ -75,44 +72,6 @@ async function parseJsonLines(result) {
|
75 | 72 |
|
76 | 73 | }
|
77 | 74 |
|
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 |
| - |
116 | 75 | /**
|
117 | 76 | * @param versions Array of all available versions
|
118 | 77 | * @param pre Enabled prerelease?
|
|
0 commit comments