UNPKG

1.51 kBPlain TextView Raw
1import { PackageManifest } from '../types/package-manifest';
2import { RawPackageManifest } from '../types/raw-package-manifest';
3import { RawPackument } from '../types/raw-packument';
4import { getDefinitelyTypedName } from './get-definitely-typed-name';
5import { getUntypedName } from './get-untyped-name';
6import { normalizeRawLicense } from './normalize-raw-license';
7import { normalizeRawRepository } from './normalize-raw-repository';
8
9export async function normalizeRawPackageManifest({
10 rawPackageManifest,
11 rawPackument,
12 registry,
13 mirrors,
14 cached,
15}: {
16 rawPackageManifest: RawPackageManifest;
17 rawPackument: RawPackument;
18 registry?: string;
19 mirrors?: string[];
20 cached?: boolean;
21}): Promise<PackageManifest> {
22 const {
23 _id: id,
24 name,
25 version,
26 license: rawLicense,
27 repository: rawRepository,
28 _npmUser: publisher,
29 } = rawPackageManifest;
30
31 const createdAt = rawPackument.time[version]!;
32 const license = normalizeRawLicense({ rawLicense });
33 const gitRepository = normalizeRawRepository({ rawRepository });
34 const definitelyTypedName = await getDefinitelyTypedName({
35 rawPackageManifest,
36 registry,
37 mirrors,
38 cached,
39 });
40 const untypedName = getUntypedName({ name });
41
42 return {
43 ...rawPackageManifest,
44 id,
45 createdAt,
46 publisher,
47 license,
48 gitRepository,
49 definitelyTypedName,
50 untypedName,
51 };
52}