mirror of
https://github.com/pnpm/pnpm.git
synced 2026-03-27 11:31:45 -04:00
refactor: create @pnpm/node.resolver
This commit is contained in:
5
.changeset/big-moons-jump.md
Normal file
5
.changeset/big-moons-jump.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/node.resolver": major
|
||||
---
|
||||
|
||||
Initial release.
|
||||
15
packages/node.resolver/README.md
Normal file
15
packages/node.resolver/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# @pnpm/node.resolver
|
||||
|
||||
> Resolves a Node.js version specifier to an exact Node.js version
|
||||
|
||||
[](https://www.npmjs.com/package/@pnpm/node.resolver)
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
pnpm add @pnpm/node.resolver
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
3
packages/node.resolver/jest.config.js
Normal file
3
packages/node.resolver/jest.config.js
Normal file
@@ -0,0 +1,3 @@
|
||||
const config = require('../../jest.config.js')
|
||||
|
||||
module.exports = config
|
||||
48
packages/node.resolver/package.json
Normal file
48
packages/node.resolver/package.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"name": "@pnpm/node.resolver",
|
||||
"version": "0.0.0",
|
||||
"description": "Resolves a Node.js version specifier to an exact Node.js version",
|
||||
"funding": "https://opencollective.com/pnpm",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"files": [
|
||||
"lib",
|
||||
"!*.map"
|
||||
],
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.6"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint src/**/*.ts test/**/*.ts",
|
||||
"_test": "jest",
|
||||
"test": "pnpm run compile && pnpm run _test",
|
||||
"prepublishOnly": "pnpm run compile",
|
||||
"compile": "tsc --build && pnpm run lint --fix"
|
||||
},
|
||||
"repository": "https://github.com/pnpm/pnpm/blob/main/packages/node.resolver",
|
||||
"keywords": [
|
||||
"pnpm7",
|
||||
"pnpm",
|
||||
"env",
|
||||
"node.js"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/pnpm/pnpm/issues"
|
||||
},
|
||||
"homepage": "https://github.com/pnpm/pnpm/blob/main/packages/node.resolver#readme",
|
||||
"dependencies": {
|
||||
"@pnpm/fetching-types": "workspace:3.0.0",
|
||||
"@pnpm/node.fetcher": "workspace:0.0.0",
|
||||
"semver": "^7.3.4",
|
||||
"version-selector-type": "^3.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@pnpm/fetch": "workspace:5.0.3",
|
||||
"@pnpm/node.resolver": "workspace:0.0.0",
|
||||
"@types/semver": "^7.3.4"
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { FetchFromRegistry } from '@pnpm/fetch'
|
||||
import { FetchFromRegistry } from '@pnpm/fetching-types'
|
||||
import semver from 'semver'
|
||||
import versionSelectorType from 'version-selector-type'
|
||||
|
||||
@@ -7,7 +7,7 @@ interface NodeVersion {
|
||||
lts: false | string
|
||||
}
|
||||
|
||||
export default async function resolveNodeVersion (fetch: FetchFromRegistry, versionSpec: string, nodeMirrorBaseUrl: string): Promise<string | null> {
|
||||
export async function resolveNodeVersion (fetch: FetchFromRegistry, versionSpec: string, nodeMirrorBaseUrl: string): Promise<string | null> {
|
||||
const response = await fetch(`${nodeMirrorBaseUrl}index.json`)
|
||||
const allVersions = (await response.json()) as NodeVersion[]
|
||||
if (versionSpec === 'latest') {
|
||||
@@ -1,5 +1,5 @@
|
||||
import { createFetchFromRegistry } from '@pnpm/fetch'
|
||||
import resolveNodeVersion from '../lib/resolveNodeVersion'
|
||||
import { resolveNodeVersion } from '@pnpm/node.resolver'
|
||||
|
||||
const fetch = createFetchFromRegistry({})
|
||||
|
||||
22
packages/node.resolver/tsconfig.json
Normal file
22
packages/node.resolver/tsconfig.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"extends": "@pnpm/tsconfig",
|
||||
"compilerOptions": {
|
||||
"outDir": "lib",
|
||||
"rootDir": "src"
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"../../typings/**/*.d.ts"
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"path": "../fetch"
|
||||
},
|
||||
{
|
||||
"path": "../fetching-types"
|
||||
},
|
||||
{
|
||||
"path": "../node.fetcher"
|
||||
}
|
||||
]
|
||||
}
|
||||
8
packages/node.resolver/tsconfig.lint.json
Normal file
8
packages/node.resolver/tsconfig.lint.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"test/**/*.ts",
|
||||
"../../typings/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@@ -34,14 +34,12 @@
|
||||
"@pnpm/config": "workspace:15.3.0",
|
||||
"@pnpm/error": "workspace:3.0.1",
|
||||
"@pnpm/fetch": "workspace:5.0.3",
|
||||
"@pnpm/fetcher-base": "workspace:12.1.0",
|
||||
"@pnpm/node.fetcher": "workspace:0.0.0",
|
||||
"@pnpm/node.resolver": "workspace:0.0.0",
|
||||
"@pnpm/store-path": "workspace:6.0.0",
|
||||
"@zkochan/cmd-shim": "^5.2.2",
|
||||
"load-json-file": "^6.2.0",
|
||||
"render-help": "^1.0.1",
|
||||
"semver": "^7.3.4",
|
||||
"version-selector-type": "^3.0.0",
|
||||
"write-json-file": "^4.3.0"
|
||||
},
|
||||
"funding": "https://opencollective.com/pnpm",
|
||||
@@ -49,7 +47,6 @@
|
||||
"@pnpm/plugin-commands-env": "workspace:2.1.12",
|
||||
"@pnpm/prepare": "workspace:*",
|
||||
"@types/adm-zip": "^0.4.34",
|
||||
"@types/semver": "^7.3.4",
|
||||
"adm-zip": "^0.5.5",
|
||||
"execa": "npm:safe-execa@^0.1.1",
|
||||
"nock": "12.0.3",
|
||||
|
||||
@@ -3,11 +3,11 @@ import path from 'path'
|
||||
import { docsUrl } from '@pnpm/cli-utils'
|
||||
import PnpmError from '@pnpm/error'
|
||||
import { createFetchFromRegistry } from '@pnpm/fetch'
|
||||
import { resolveNodeVersion } from '@pnpm/node.resolver'
|
||||
import cmdShim from '@zkochan/cmd-shim'
|
||||
import renderHelp from 'render-help'
|
||||
import { getNodeDir, NvmNodeCommandOptions } from './node'
|
||||
import getNodeMirror from './getNodeMirror'
|
||||
import resolveNodeVersion from './resolveNodeVersion'
|
||||
import { parseNodeEditionSpecifier } from './parseNodeEditionSpecifier'
|
||||
|
||||
export function rcOptionsTypes () {
|
||||
|
||||
@@ -25,10 +25,10 @@
|
||||
"path": "../fetch"
|
||||
},
|
||||
{
|
||||
"path": "../fetcher-base"
|
||||
"path": "../node.fetcher"
|
||||
},
|
||||
{
|
||||
"path": "../node.fetcher"
|
||||
"path": "../node.resolver"
|
||||
},
|
||||
{
|
||||
"path": "../store-path"
|
||||
|
||||
29
pnpm-lock.yaml
generated
29
pnpm-lock.yaml
generated
@@ -1737,6 +1737,25 @@ importers:
|
||||
'@types/adm-zip': 0.4.34
|
||||
node-fetch: 3.0.0-beta.9
|
||||
|
||||
packages/node.resolver:
|
||||
specifiers:
|
||||
'@pnpm/fetch': workspace:5.0.3
|
||||
'@pnpm/fetching-types': workspace:3.0.0
|
||||
'@pnpm/node.fetcher': workspace:0.0.0
|
||||
'@pnpm/node.resolver': workspace:0.0.0
|
||||
'@types/semver': ^7.3.4
|
||||
semver: ^7.3.4
|
||||
version-selector-type: ^3.0.0
|
||||
dependencies:
|
||||
'@pnpm/fetching-types': link:../fetching-types
|
||||
'@pnpm/node.fetcher': link:../node.fetcher
|
||||
semver: 7.3.7
|
||||
version-selector-type: 3.0.0
|
||||
devDependencies:
|
||||
'@pnpm/fetch': link:../fetch
|
||||
'@pnpm/node.resolver': 'link:'
|
||||
'@types/semver': 7.3.9
|
||||
|
||||
packages/normalize-registries:
|
||||
specifiers:
|
||||
'@pnpm/normalize-registries': workspace:3.0.3
|
||||
@@ -2132,13 +2151,12 @@ importers:
|
||||
'@pnpm/config': workspace:15.3.0
|
||||
'@pnpm/error': workspace:3.0.1
|
||||
'@pnpm/fetch': workspace:5.0.3
|
||||
'@pnpm/fetcher-base': workspace:12.1.0
|
||||
'@pnpm/node.fetcher': workspace:0.0.0
|
||||
'@pnpm/node.resolver': workspace:0.0.0
|
||||
'@pnpm/plugin-commands-env': workspace:2.1.12
|
||||
'@pnpm/prepare': workspace:*
|
||||
'@pnpm/store-path': workspace:6.0.0
|
||||
'@types/adm-zip': ^0.4.34
|
||||
'@types/semver': ^7.3.4
|
||||
'@zkochan/cmd-shim': ^5.2.2
|
||||
adm-zip: ^0.5.5
|
||||
execa: npm:safe-execa@^0.1.1
|
||||
@@ -2147,28 +2165,23 @@ importers:
|
||||
node-fetch: 3.0.0-beta.9
|
||||
path-name: ^1.0.0
|
||||
render-help: ^1.0.1
|
||||
semver: ^7.3.4
|
||||
version-selector-type: ^3.0.0
|
||||
write-json-file: ^4.3.0
|
||||
dependencies:
|
||||
'@pnpm/cli-utils': link:../cli-utils
|
||||
'@pnpm/config': link:../config
|
||||
'@pnpm/error': link:../error
|
||||
'@pnpm/fetch': link:../fetch
|
||||
'@pnpm/fetcher-base': link:../fetcher-base
|
||||
'@pnpm/node.fetcher': link:../node.fetcher
|
||||
'@pnpm/node.resolver': link:../node.resolver
|
||||
'@pnpm/store-path': link:../store-path
|
||||
'@zkochan/cmd-shim': 5.2.2
|
||||
load-json-file: 6.2.0
|
||||
render-help: 1.0.2
|
||||
semver: 7.3.7
|
||||
version-selector-type: 3.0.0
|
||||
write-json-file: 4.3.0
|
||||
devDependencies:
|
||||
'@pnpm/plugin-commands-env': 'link:'
|
||||
'@pnpm/prepare': link:../../privatePackages/prepare
|
||||
'@types/adm-zip': 0.4.34
|
||||
'@types/semver': 7.3.9
|
||||
adm-zip: 0.5.9
|
||||
execa: /safe-execa/0.1.1
|
||||
nock: 12.0.3
|
||||
|
||||
Reference in New Issue
Block a user