{"id":15598370,"url":"https://github.com/fluffynuts/node-nuget-client","last_synced_at":"2025-09-13T19:32:46.649Z","repository":{"id":38448233,"uuid":"261265480","full_name":"fluffynuts/node-nuget-client","owner":"fluffynuts","description":"A NuGet client for Node","archived":false,"fork":false,"pushed_at":"2024-11-07T13:48:52.000Z","size":803,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-02T14:05:36.592Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fluffynuts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-04T18:33:26.000Z","updated_at":"2024-11-07T13:48:53.000Z","dependencies_parsed_at":"2024-06-22T04:57:51.106Z","dependency_job_id":"ee9ca29e-6d43-4408-a906-929ddea036c8","html_url":"https://github.com/fluffynuts/node-nuget-client","commit_stats":{"total_commits":38,"total_committers":2,"mean_commits":19.0,"dds":0.4736842105263158,"last_synced_commit":"c04bcfd1d73b656de2e04158bcf3c7f680c8fa4c"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fnode-nuget-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fnode-nuget-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fnode-nuget-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluffynuts%2Fnode-nuget-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluffynuts","download_url":"https://codeload.github.com/fluffynuts/node-nuget-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232905764,"owners_count":18594799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T01:38:27.781Z","updated_at":"2025-01-07T16:56:48.732Z","avatar_url":"https://github.com/fluffynuts.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# node-nuget-client\n\n## What?\nA NuGet client for Node\n\n## Why?\nI'd like to wrap a CLI nuget package with a node package\nso I need a client\n\n## Why the silly name?\nLike so many npm package names, the most obvious / best one\n(`nuget-client`) _was already taken, **and abandoned**_\n\n## It's not complete tho?\n\nCorrect. Currently you can use the api or cli client to do:\n\n### CLI\n- query package info (cli: `npx node-nuget-client info \u003cpackageId\u003e`)\n- search for packages (cli: `npx node-nuget-client search [words...]`)\n- download a package (cli: `npx node-nuget-client download \u003cpackageId\u003e`)\n\n### API\n\n```typescript\nimport { NugetClient } from \"./nuget-client\";\nconst client = new NugetClient();\nconst info = await client.fetchPackageInfo(\"nunit.consolerunner\")\n```\n\n\n## WHY IT TAKES SO LONG?!\n\nHonestly, it's all up to the nuget api.\n\nBecause the nuget api is a web of indirections. To get to\ndownloading a package is (eventually) going to take 4\nhttp calls. And I'm not (yet) even trying to resolve\ndependencies.\n\nFor extra fun, packages which have a long history will\ntake even longer because the query interface doesn't seem\nto allow asking a simple question like \"what's the info\non the current version of package [X]\". Instead, you have to\nfetch the entire history of that package and trawl it.\nSo, in addition to multiple http latencies, you may\nspend time downloading and parsing 65k of json just to get\na few hundred bytes of useful information. This client\ncaches what it can (and will cache more in the near future),\nso perhaps some of that cost is mitigated; I think that\nthe official nuget clients bootstrap their package queries\nfrom the top every time.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluffynuts%2Fnode-nuget-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluffynuts%2Fnode-nuget-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluffynuts%2Fnode-nuget-client/lists"}