Skip to content

Distribution (npm)

pdsa is published to npm as @webnori/pdsa using an esbuild-style optionalDependencies layout.

  • The main package holds a tiny Node launcher (bin/pdsa.js) and depends on three platform packages.
  • The platform packages each carry one native binary, gated by os / cpu:
    • @webnori/pdsa-win32-x64
    • @webnori/pdsa-linux-x64
    • @webnori/pdsa-darwin-arm64

On install, npm resolves optionalDependencies against your platform and fetches only the matching binary — there’s no postinstall step and no network access beyond the package download. The launcher then execs the platform binary.

A GitHub Actions workflow (.github/workflows/release.yml) builds all three binaries — each on its own runner where host = target — and publishes the packages on a v* tag.

Terminal window
git tag v0.0.6
git push origin v0.0.6 # → CI builds win/linux/macOS, publishes to npm

See the packaging sources under npm/ in the repository.