refactor: create @pnpm/node.resolver

This commit is contained in:
Zoltan Kochan
2022-06-21 23:06:29 +03:00
parent 228dcc3c9c
commit badbab1540
12 changed files with 129 additions and 18 deletions

View File

@@ -0,0 +1,5 @@
---
"@pnpm/node.resolver": major
---
Initial release.

View File

@@ -0,0 +1,15 @@
# @pnpm/node.resolver
> Resolves a Node.js version specifier to an exact Node.js version
[![npm version](https://img.shields.io/npm/v/@pnpm/node.resolver.svg)](https://www.npmjs.com/package/@pnpm/node.resolver)
## Installation
```sh
pnpm add @pnpm/node.resolver
```
## License
MIT

View File

@@ -0,0 +1,3 @@
const config = require('../../jest.config.js')
module.exports = config

View 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"
}
}

View File

@@ -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') {

View File

@@ -1,5 +1,5 @@
import { createFetchFromRegistry } from '@pnpm/fetch'
import resolveNodeVersion from '../lib/resolveNodeVersion'
import { resolveNodeVersion } from '@pnpm/node.resolver'
const fetch = createFetchFromRegistry({})

View 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"
}
]
}

View File

@@ -0,0 +1,8 @@
{
"extends": "./tsconfig.json",
"include": [
"src/**/*.ts",
"test/**/*.ts",
"../../typings/**/*.d.ts"
]
}

View File

@@ -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",

View File

@@ -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 () {

View File

@@ -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
View File

@@ -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