1.0.1 • Published 16 days ago

list-dependents v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
16 days ago

list-dependents

Lists all dependents of a project, using npm and ecosyste.ms

npm version npm downloads js-semistandard-style Module type: ESM Types in JS Follow @voxpelli@mastodon.social

Usage

Simple

import { fetchEcosystemDependents } from 'list-dependents';

const result = fetchEcosystemDependents(name);

for await (const { downloads, name, pkg } of fetchEcosystemDependents('npm-run-all2')) {
  console.log(downloads, name, pkg.description);
}

Advanced

See examples/cli.js

API

fetchEcosystemDependents()

Uses the ecosyste.ms API to resolve packages of dependents

Syntax

fetchEcosystemDependents(name, [options]) => AsyncGenerator<EcosystemDependentsItem>

Arguments

  • name: The name of the package to do the lookup for
  • options: Type EcosystemDependentsOptions – optional options

Options

  • logger – a BunyanLite compatible logger instance
  • maxAge – the maximum age of latest release to uinclude
  • maxPages – the maximum number of source pages to fetch (there are perPage items per page)
  • minDownloadsLastMonth = 400 – the minimum amount of downloads needed to be returned
  • perPage = 36 – how many items per page to lookup
  • skipPkg – when set skips resolving package.json

Types

import type { NormalizedPackageJson } from 'read-pkg';

interface DependentsItem {
  downloads: number;
  name: string;
  pkg?: NormalizedPackageJson | undefined,
}

interface EcosystemDependentsItem extends DependentsItem {
  dependentCount: number | undefined,
  firstRelease: string | undefined,
  latestRelease: string | undefined,
}

fetchNpmDependents()

Uses the npm website, registry API and download count API to resolve packages of dependents

Syntax

fetchNpmDependents(name, [options]) => AsyncGenerator<DependentsItem>

Arguments

  • name: The name of the package to do the lookup for
  • options: Type NpmDependentsOptions – optional options

Options

  • logger – a BunyanLite compatible logger instande
  • maxPages – the maximum number of source pages to fetch (there are 36 items per page)
  • minDownloadsLastWeek = 100 – the minimum amount of downloads needed to be returned
  • skipPkg – when set skips resolving package.json

Types

import type { NormalizedPackageJson } from 'read-pkg';

interface DependentsItem = {
  downloads: number;
  name: string;
  pkg?: NormalizedPackageJson | undefined,
}

fetchNpmDependentList()

Uses the npm website to resolve dependent names. Used internally by fetchNpmDependents()

Syntax

fetchNpmDependentList(name, [options]) => AsyncGenerator<string>

Arguments

  • name: The name of the package to do the lookup for
  • options: Type NpmDependentListOptions – optional options

Options

  • logger – a BunyanLite compatible logger instande
  • maxPages – the maximum number of source pages to fetch (there are 36 items per page)

Similar modules