UNPKG

2.17 kBJavaScriptView Raw
1import { extractRawPackageManifest } from '../utils/extract-package-manifest.esm.js';
2import { normalizeRawPackageManifest } from '../utils/normalize-raw-package-manifest.esm.js';
3import { getRawPackument } from './get-raw-packument.esm.js';
4
5/**
6 * `getPackageManifest` returns the manifest describing
7 * a specific version of a package.
8 *
9 * @param name - package name
10 * @param version - package version (default: `latest`)
11 * @param registry - URL of the registry (default: npm registry)
12 * @param mirrors - URLs of the registry mirrors (default: npm registry mirrors)
13 * @param cached - accept cached responses (default: `true`)
14 *
15 * @example
16 * Get the latest manifest for package `query-registry` from the npm registry:
17 *
18 * ```typescript
19 * import { getPackageManifest } from 'query-registry';
20 *
21 * (async () => {
22 * const manifest = await getPackageManifest({ name: 'query-registry' });
23 *
24 * // Output: 'query-registry'
25 * console.log(manifest.name);
26 * })();
27 * ```
28 *
29 * @example
30 * Get the manifest for package `query-registry@1.0.0` from the npm registry:
31 *
32 * ```typescript
33 * import { getPackageManifest } from 'query-registry';
34 *
35 * (async () => {
36 * const manifest = await getPackageManifest({ name: 'query-registry', version: '1.0.0' });
37 *
38 * // Output: 'query-registry'
39 * console.log(manifest.name);
40 *
41 * // Output: '1.0.0'
42 * console.log(manifest.version);
43 * })();
44 * ```
45 *
46 * @see {@link PackageManifest}
47 * @see {@link RawPackageManifest}
48 * @see {@link npmRegistry}
49 * @see {@link npmRegistryMirrors}
50 */
51
52async function getPackageManifest({
53 name,
54 version,
55 registry,
56 mirrors,
57 cached
58}) {
59 const rawPackument = await getRawPackument({
60 name,
61 registry,
62 mirrors,
63 cached
64 });
65 const rawPackageManifest = extractRawPackageManifest({
66 rawPackument,
67 version
68 });
69 const packageManifest = await normalizeRawPackageManifest({
70 rawPackageManifest,
71 rawPackument,
72 registry,
73 mirrors,
74 cached
75 });
76 return packageManifest;
77}
78
79export { getPackageManifest };
80//# sourceMappingURL=get-package-manifest.esm.js.map