1 | import { PackageManifest } from '../types/package-manifest';
|
2 | import { RawPackageManifest } from '../types/raw-package-manifest';
|
3 | import { RawPackument } from '../types/raw-packument';
|
4 | import { getDefinitelyTypedName } from './get-definitely-typed-name';
|
5 | import { getUntypedName } from './get-untyped-name';
|
6 | import { normalizeRawLicense } from './normalize-raw-license';
|
7 | import { normalizeRawRepository } from './normalize-raw-repository';
|
8 |
|
9 | export 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 | }
|