UNPKG

832 BPlain TextView Raw
1import { RawPackageManifest } from '../types/raw-package-manifest';
2import { RawPackument } from '../types/raw-packument';
3import { InvalidPackageVersionError } from './errors';
4import { log } from './log';
5
6export function extractRawPackageManifest({
7 rawPackument,
8 version = 'latest',
9}: {
10 rawPackument: RawPackument;
11 version?: string;
12}): RawPackageManifest {
13 const { name, 'dist-tags': distTags, versions } = rawPackument;
14 const versionNumber = distTags[version] ?? version;
15 const manifest = versions[versionNumber];
16 if (!manifest) {
17 log('getPackageManifest: invalid package version: %O', {
18 name,
19 version,
20 });
21 throw new InvalidPackageVersionError(
22 `invalid package version: '${name}@${version}'`
23 );
24 }
25
26 return manifest;
27}