Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Node API? #362

Open
JoshuaKGoldberg opened this issue Aug 7, 2023 · 0 comments
Open

Node API? #362

JoshuaKGoldberg opened this issue Aug 7, 2023 · 0 comments

Comments

@JoshuaKGoldberg
Copy link
Contributor

Is your feature request related to a problem? Please describe.

I've started running npx all-contributors add as part of scripts in a few places that automate contributor attribution (https://github.com/JoshuaKGoldberg/all-contributors-auto-action, JoshuaKGoldberg/create-typescript-app#639). Right now those tools generally use https://github.com/sindresorhus/execa to run the CLI as part of Node scripts. That works, but has a couple of drawbacks:

  • Performance: although the overhead of running scripts is a little slow, each script can only add one contributor at a time (https://allcontributors.org/docs/en/cli/usage). It'd be nice to be able to provide an object with multiple contributors, each matched to an array of contribution types.
  • Type safety: CLI usage is all string concatenation. It'd be nice to have .d.ts-described types.

Describe the solution you'd like

Could there be a Node package that exports an async function or two? Vaguely...

import { addContributor, addContributors } from "all-contributors";

await addContributor("MyName", ["bug", "tool"]);

await addContributors({
  MyName: ["bug", "tool"],
  OtherName: ["design"],
});

Describe alternatives you've considered

🤷 Can't think of anything else.

Additional context

Reusing the all-contributors package name feels like a good idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant