rlsbl v0.40.1 /rlsbl.npm_wrapper
On this page

Platform models and helpers for npm binary wrapper packages, providing job generation for publish workflows and scaffold template mappings.

#rlsbl.npm_wrapper

#rlsbl.npm_wrapper

Platform models and helpers for npm binary wrapper packages, providing job generation for publish workflows and scaffold template mappings.

#PlatformSpec

Partial platform descriptor (target-agnostic).

Contains only the npm/OS/CPU identifiers -- no archive or binary details, since those depend on the build target (Go, Rust, etc.).

#PlatformArtifact

Fully resolved platform artifact ready for package generation.

Combines platform identifiers with target-specific archive and binary information.

#load_platform_config

python
def load_platform_config(config: dict) -> list[PlatformSpec]

Return platform specs, optionally filtered by config.

If config contains npm_wrapper.platforms (a list of npm_platform strings like ["linux-x64", "darwin-arm64"]), only matching entries from DEFAULT_PLATFORMS are returned. Otherwise all DEFAULT_PLATFORMS are returned.

#build_artifacts

python
def build_artifacts(specs: list[PlatformSpec], name: str, archive_fn: Callable[[PlatformSpec, str], tuple[str, str | None, str]]) -> list[PlatformArtifact]

Combine platform specs with target-specific archive details.

archive_fn(spec, name) must return a tuple of (asset_pattern, extract_cmd, binary_name) for each platform.

#build_npm_publish_jobs

python
def build_npm_publish_jobs(npm_scope: str, bin_command: str, artifacts: list[PlatformArtifact], depends_on: str='goreleaser') -> str

Generate YAML for npm wrapper publish jobs in a publish workflow.

Returns a multi-line string injected at the jobs: level via the {{npmPublishJobs}} template variable in publish.yml.tpl.

artifacts provides the per-platform archive details (asset pattern, extract command, binary name) so this function is target-agnostic.

depends_on is the name of the job that must complete before npm-publish runs (e.g. "goreleaser" for Go, "build-and-upload" for Zig).

#npm_wrapper_template_mappings

python
def npm_wrapper_template_mappings() -> list[dict[str, str]]

Return template mappings for npm wrapper shared templates.

Each mapping has "template" (relative to the shared template dir) and "target" (destination path in the project).