UNPKG

3.35 kBSource Map (JSON)View Raw
1{"version":3,"file":"get-daily-package-downloads.esm.js","sources":["../../src/endpoints/get-daily-package-downloads.ts"],"sourcesContent":["import { DownloadPeriod } from '../types/download-period';\nimport { DailyPackageDownloads } from '../types/downloads';\nimport { assertValidPackageName } from '../utils/assert-valid-package-name';\nimport { fetchDownloadsFromRegistry } from '../utils/fetch-downloads-from-registry';\nimport { normalizeRawDownloadPeriod } from '../utils/normalize-download-period';\n\n/**\n * `getDailyPackageDownloads` returns the number of downloads for a package\n * for each day in a given time period.\n *\n * @param name - package name\n * @param period - time period in which downloads happened (default: `last-week`)\n * @param registryDownloadsAPI - URL of the registry's downloads API (default: npm registry)\n * @param cached - accept cached responses (default: `true`)\n *\n * @example\n * Get the day by day weekly downloads for package `query-registry` from the npm registry:\n *\n * ```typescript\n * import { getDailyPackageDownloads } from 'query-registry';\n *\n * (async () => {\n * const downloads = await getDailyPackageDownloads({ name: 'query-registry' });\n *\n * // Output: 'query-registry'\n * console.log(downloads.package);\n *\n * // Output: 'number'\n * console.log(typeof downloads.downloads[0].downloads);\n * })();\n * ```\n *\n * @example\n * Get the day by day monthly downloads for package `query-registry` from the npm registry:\n *\n * ```typescript\n * import { getDailyPackageDownloads } from 'query-registry';\n *\n * (async () => {\n * const downloads = await getDailyPackageDownloads({ name: 'query-registry', period: 'last-month' });\n *\n * // Output: 'query-registry'\n * console.log(downloads.package);\n *\n * // Output: 'number'\n * console.log(typeof downloads.downloads[0].downloads);\n * })();\n * ```\n *\n * @see {@link DailyPackageDownloads}\n * @see {@link DownloadPeriod}\n * @see {@link npmRegistryDownloadsAPI}\n * @see {@link https://github.com/npm/registry/blob/master/docs/download-counts.md#ranges}\n */\nexport async function getDailyPackageDownloads({\n name,\n period: rawDownloadPeriod,\n registryDownloadsAPI,\n cached,\n}: {\n name: string;\n period?: DownloadPeriod;\n registryDownloadsAPI?: string;\n cached?: boolean;\n}): Promise<DailyPackageDownloads> {\n assertValidPackageName({ name });\n\n const period = normalizeRawDownloadPeriod({ rawDownloadPeriod });\n const endpoint = `/downloads/range/${period}/${name}`;\n return fetchDownloadsFromRegistry({\n endpoint,\n registryDownloadsAPI,\n cached,\n });\n}\n"],"names":["getDailyPackageDownloads","name","period","rawDownloadPeriod","registryDownloadsAPI","cached","assertValidPackageName","normalizeRawDownloadPeriod","endpoint","fetchDownloadsFromRegistry"],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDO,eAAeA,wBAAf,CAAwC;AAC3CC,EAAAA,IAD2C;AAE3CC,EAAAA,MAAM,EAAEC,iBAFmC;AAG3CC,EAAAA,oBAH2C;AAI3CC,EAAAA;AAJ2C,CAAxC;AAWHC,EAAAA,sBAAsB,CAAC;AAAEL,IAAAA;AAAF,GAAD,CAAtB;AAEA,QAAMC,MAAM,GAAGK,0BAA0B,CAAC;AAAEJ,IAAAA;AAAF,GAAD,CAAzC;AACA,QAAMK,QAAQ,uBAAuBN,UAAUD,MAA/C;AACA,SAAOQ,0BAA0B,CAAC;AAC9BD,IAAAA,QAD8B;AAE9BJ,IAAAA,oBAF8B;AAG9BC,IAAAA;AAH8B,GAAD,CAAjC;AAKH;;;;"}
\No newline at end of file