@pnpm/pkg-manifest.utils 1100.0.0 → 1100.1.0

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.
@@ -1,2 +1,3 @@
1
1
  import type { DependenciesField, ProjectManifest } from '@pnpm/types';
2
2
  export declare function convertEnginesRuntimeToDependencies(manifest: ProjectManifest, enginesFieldName: 'devEngines' | 'engines', dependenciesFieldName: DependenciesField): void;
3
+ export declare function applyRuntimeOnFailOverride(manifest: ProjectManifest, onFailOverride: 'ignore' | 'warn' | 'error' | 'download'): void;
@@ -1,6 +1,7 @@
1
1
  import { globalWarn } from '@pnpm/logger';
2
+ const RUNTIME_NAMES = ['node', 'deno', 'bun'];
2
3
  export function convertEnginesRuntimeToDependencies(manifest, enginesFieldName, dependenciesFieldName) {
3
- for (const runtimeName of ['node', 'deno', 'bun']) {
4
+ for (const runtimeName of RUNTIME_NAMES) {
4
5
  const enginesFieldRuntime = manifest[enginesFieldName]?.runtime;
5
6
  if (enginesFieldRuntime == null || manifest[dependenciesFieldName]?.[runtimeName]) {
6
7
  continue;
@@ -10,6 +11,10 @@ export function convertEnginesRuntimeToDependencies(manifest, enginesFieldName,
10
11
  if (runtime?.onFail !== 'download') {
11
12
  continue;
12
13
  }
14
+ if (!runtime.version) {
15
+ globalWarn(`Cannot download ${runtimeName} because no version is specified in ${enginesFieldName}.runtime`);
16
+ continue;
17
+ }
13
18
  if ('webcontainer' in process.versions) {
14
19
  globalWarn(`Installation of ${runtimeName} versions is not supported in WebContainer`);
15
20
  }
@@ -19,4 +24,31 @@ export function convertEnginesRuntimeToDependencies(manifest, enginesFieldName,
19
24
  }
20
25
  }
21
26
  }
27
+ export function applyRuntimeOnFailOverride(manifest, onFailOverride) {
28
+ for (const [enginesFieldName, dependenciesFieldName] of [
29
+ ['devEngines', 'devDependencies'],
30
+ ['engines', 'dependencies'],
31
+ ]) {
32
+ const enginesFieldRuntime = manifest[enginesFieldName]?.runtime;
33
+ if (enginesFieldRuntime == null)
34
+ continue;
35
+ const runtimes = Array.isArray(enginesFieldRuntime) ? enginesFieldRuntime : [enginesFieldRuntime];
36
+ for (const runtime of runtimes) {
37
+ runtime.onFail = onFailOverride;
38
+ }
39
+ if (onFailOverride !== 'download') {
40
+ const deps = manifest[dependenciesFieldName];
41
+ if (deps) {
42
+ for (const runtimeName of RUNTIME_NAMES) {
43
+ if (typeof deps[runtimeName] === 'string' && deps[runtimeName].startsWith('runtime:')) {
44
+ delete deps[runtimeName];
45
+ }
46
+ }
47
+ }
48
+ }
49
+ else {
50
+ convertEnginesRuntimeToDependencies(manifest, enginesFieldName, dependenciesFieldName);
51
+ }
52
+ }
53
+ }
22
54
  //# sourceMappingURL=convertEnginesRuntimeToDependencies.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/pkg-manifest.utils",
3
- "version": "1100.0.0",
3
+ "version": "1100.1.0",
4
4
  "description": "Utils for dealing with package manifest",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -25,18 +25,18 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "semver": "^7.7.2",
28
- "@pnpm/core-loggers": "1100.0.0",
28
+ "@pnpm/core-loggers": "1100.0.1",
29
29
  "@pnpm/deps.peer-range": "1100.0.0",
30
- "@pnpm/error": "1100.0.0",
31
- "@pnpm/types": "1100.0.0"
30
+ "@pnpm/types": "1101.0.0",
31
+ "@pnpm/error": "1100.0.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "@pnpm/logger": ">=1001.0.0 <1002.0.0"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/semver": "7.7.1",
38
- "@pnpm/pkg-manifest.utils": "1100.0.0",
39
- "@pnpm/logger": "1100.0.0"
38
+ "@pnpm/logger": "1100.0.0",
39
+ "@pnpm/pkg-manifest.utils": "1100.1.0"
40
40
  },
41
41
  "engines": {
42
42
  "node": ">=22.13"