@pnpm/node.resolver 1.0.19 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +1 -0
- package/lib/index.js +37 -11
- package/lib/index.js.map +1 -1
- package/package.json +9 -9
package/lib/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { FetchFromRegistry } from '@pnpm/fetching-types';
|
|
2
2
|
export declare function resolveNodeVersion(fetch: FetchFromRegistry, versionSpec: string, nodeMirrorBaseUrl?: string): Promise<string | null>;
|
|
3
|
+
export declare function resolveNodeVersions(fetch: FetchFromRegistry, versionSpec?: string, nodeMirrorBaseUrl?: string): Promise<string[]>;
|
package/lib/index.js
CHANGED
|
@@ -3,26 +3,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.resolveNodeVersion = void 0;
|
|
6
|
+
exports.resolveNodeVersions = exports.resolveNodeVersion = void 0;
|
|
7
7
|
const semver_1 = __importDefault(require("semver"));
|
|
8
8
|
const version_selector_type_1 = __importDefault(require("version-selector-type"));
|
|
9
|
+
const SEMVER_OPTS = {
|
|
10
|
+
includePrerelease: true,
|
|
11
|
+
loose: true,
|
|
12
|
+
};
|
|
9
13
|
async function resolveNodeVersion(fetch, versionSpec, nodeMirrorBaseUrl) {
|
|
10
|
-
const
|
|
11
|
-
const allVersions = (await response.json());
|
|
14
|
+
const allVersions = await fetchAllVersions(fetch, nodeMirrorBaseUrl);
|
|
12
15
|
if (versionSpec === 'latest') {
|
|
13
|
-
return allVersions[0].version
|
|
16
|
+
return allVersions[0].version;
|
|
14
17
|
}
|
|
15
18
|
const { versions, versionRange } = filterVersions(allVersions, versionSpec);
|
|
16
|
-
|
|
17
|
-
if (!pickedVersion)
|
|
18
|
-
return null;
|
|
19
|
-
return pickedVersion.substring(1);
|
|
19
|
+
return semver_1.default.maxSatisfying(versions, versionRange, SEMVER_OPTS) ?? null;
|
|
20
20
|
}
|
|
21
21
|
exports.resolveNodeVersion = resolveNodeVersion;
|
|
22
|
+
async function resolveNodeVersions(fetch, versionSpec, nodeMirrorBaseUrl) {
|
|
23
|
+
const allVersions = await fetchAllVersions(fetch, nodeMirrorBaseUrl);
|
|
24
|
+
if (!versionSpec) {
|
|
25
|
+
return allVersions.map(({ version }) => version);
|
|
26
|
+
}
|
|
27
|
+
if (versionSpec === 'latest') {
|
|
28
|
+
return [allVersions[0].version];
|
|
29
|
+
}
|
|
30
|
+
const { versions, versionRange } = filterVersions(allVersions, versionSpec);
|
|
31
|
+
return versions.filter(version => semver_1.default.satisfies(version, versionRange, SEMVER_OPTS));
|
|
32
|
+
}
|
|
33
|
+
exports.resolveNodeVersions = resolveNodeVersions;
|
|
34
|
+
async function fetchAllVersions(fetch, nodeMirrorBaseUrl) {
|
|
35
|
+
const response = await fetch(`${nodeMirrorBaseUrl ?? 'https://nodejs.org/download/release/'}index.json`);
|
|
36
|
+
return (await response.json()).map(({ version, lts }) => ({
|
|
37
|
+
version: version.substring(1),
|
|
38
|
+
lts,
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
22
41
|
function filterVersions(versions, versionSelector) {
|
|
23
42
|
if (versionSelector === 'lts') {
|
|
24
43
|
return {
|
|
25
|
-
versions: versions
|
|
44
|
+
versions: versions
|
|
45
|
+
.filter(({ lts }) => lts !== false)
|
|
46
|
+
.map(({ version }) => version),
|
|
26
47
|
versionRange: '*',
|
|
27
48
|
};
|
|
28
49
|
}
|
|
@@ -30,10 +51,15 @@ function filterVersions(versions, versionSelector) {
|
|
|
30
51
|
if (vst?.type === 'tag') {
|
|
31
52
|
const wantedLtsVersion = vst.normalized.toLowerCase();
|
|
32
53
|
return {
|
|
33
|
-
versions: versions
|
|
54
|
+
versions: versions
|
|
55
|
+
.filter(({ lts }) => typeof lts === 'string' && lts.toLowerCase() === wantedLtsVersion)
|
|
56
|
+
.map(({ version }) => version),
|
|
34
57
|
versionRange: '*',
|
|
35
58
|
};
|
|
36
59
|
}
|
|
37
|
-
return {
|
|
60
|
+
return {
|
|
61
|
+
versions: versions.map(({ version }) => version),
|
|
62
|
+
versionRange: versionSelector,
|
|
63
|
+
};
|
|
38
64
|
}
|
|
39
65
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,oDAA2B;AAC3B,kFAAuD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pnpm/node.resolver",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Resolves a Node.js version specifier to an exact Node.js version",
|
|
5
5
|
"funding": "https://opencollective.com/pnpm",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"engines": {
|
|
16
16
|
"node": ">=14.6"
|
|
17
17
|
},
|
|
18
|
-
"repository": "https://github.com/pnpm/pnpm/blob/main/
|
|
18
|
+
"repository": "https://github.com/pnpm/pnpm/blob/main/env/node.resolver",
|
|
19
19
|
"keywords": [
|
|
20
20
|
"pnpm7",
|
|
21
21
|
"pnpm",
|
|
@@ -26,17 +26,17 @@
|
|
|
26
26
|
"bugs": {
|
|
27
27
|
"url": "https://github.com/pnpm/pnpm/issues"
|
|
28
28
|
},
|
|
29
|
-
"homepage": "https://github.com/pnpm/pnpm/blob/main/
|
|
29
|
+
"homepage": "https://github.com/pnpm/pnpm/blob/main/env/node.resolver#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@pnpm/fetching-types": "4.0.0",
|
|
32
|
-
"@pnpm/node.fetcher": "2.0.3",
|
|
33
31
|
"semver": "^7.3.8",
|
|
34
|
-
"version-selector-type": "^3.0.0"
|
|
32
|
+
"version-selector-type": "^3.0.0",
|
|
33
|
+
"@pnpm/fetching-types": "4.0.0",
|
|
34
|
+
"@pnpm/node.fetcher": "2.0.4"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@pnpm/
|
|
39
|
-
"@
|
|
37
|
+
"@types/semver": "7.3.13",
|
|
38
|
+
"@pnpm/fetch": "6.0.4",
|
|
39
|
+
"@pnpm/node.resolver": "1.1.1"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"lint": "eslint src/**/*.ts test/**/*.ts",
|