npm_registry.ts

view source

Declarations
#

5 declarations

check_package_available
#

npm_registry.ts view source

(pkg: string, version: string, options?: { log?: Logger | undefined; }, deps?: NpmRegistryDeps): Promise<boolean> import {check_package_available} from '@fuzdev/fuz_repos/npm_registry.js';

Checks whether pkg@version is on the npm registry, by npm view.

pkg

type string

version

type string

options

type { log?: Logger | undefined; }
default {}

deps

default default_npm_registry_deps

returns

Promise<boolean>

true when the registry reports that exact version, false when it doesn't or npm couldn't run

default_npm_registry_deps
#

NpmRegistryDeps
#

npm_registry.ts view source

NpmRegistryDeps import type {NpmRegistryDeps} from '@fuzdev/fuz_repos/npm_registry.js';

The side effects of the registry checks — running npm, sleeping, and reading the clock — injected so tests drive them with plain objects.

run_npm

Runs npm with args and resolves to what it wrote to stdout — empty when nothing, or when npm couldn't run. A throw counts as unavailable too.

type (args: string[]): Promise<string>

args

type string[]
returns Promise<string>

wait

Sleeps for ms milliseconds.

type (ms: number): Promise<void>

ms

type number
returns Promise<void>

now

The current time in milliseconds, as Date.now.

type (): number

returns number

wait_for_package
#

npm_registry.ts view source

(pkg: string, version: string, options?: WaitOptions, deps?: NpmRegistryDeps): Promise<void> import {wait_for_package} from '@fuzdev/fuz_repos/npm_registry.js';

Waits for package version to propagate to NPM registry.

Uses exponential backoff with jitter to avoid hammering registry. Logs progress every 5 attempts. Respects timeout to avoid infinite waits.

Critical for multi-repo publishing: ensures published packages are available before updating dependent packages.

pkg

type string

version

type string

options

default {}

deps

default default_npm_registry_deps

returns

Promise<void>

throws

  • Error - if timeout reached or max attempts exceeded

WaitOptions
#

npm_registry.ts view source

WaitOptions import type {WaitOptions} from '@fuzdev/fuz_repos/npm_registry.js';

log?

type Logger

max_attempts?

type number

initial_delay?

type number

max_delay?

type number

timeout?

type number

Imported by
#