stack/packages/init-stack
Shridhar Deshmukh 85698aed70
ref: use commander for arguments parsing (#531)
- fixes https://github.com/stack-auth/stack-auth/issues/530

Adding [commander](https://github.com/tj/commander.js) to parse CLI
arguments and options. Commander auto generates a help section based on
configured options.

Both `npx @stackframe/init-stack` and `npx @stacframe/init-stack --next`
both should initialize auth in working directory


```bash
➜  init-stack git:(dev) ✗ node dist/index.js --version
2.7.25
➜  init-stack git:(dev) ✗ node dist/index.js --help
Usage: @stackframe/init-stack [project-path] [options]

Stack Auth Initialization Tool

Arguments:
  project-path   Path to your project

Options:
  -V, --version  output the version number
  --dry-run      Run without making any changes
  --neon         Use Neon database
  --js           Initialize for JavaScript project
  --next         Initialize for Next.js project
  --npm          Use npm as package manager
  --yarn         Use yarn as package manager
  --pnpm         Use pnpm as package manager
  --bun          Use bun as package manager
  --client       Initialize client-side only
  --server       Initialize server-side only
  --no-browser   Don't open browser for environment variable setup
  -h, --help     display help for command

For more information, please visit https://docs.stack-auth.com/getting-started/setup
```

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Replaces manual CLI argument parsing with `commander` in `init-stack`,
simplifying code and auto-generating help text.
> 
>   - **Behavior**:
> - Replaces manual CLI argument parsing with `commander` in `index.ts`.
> - Automatically generates help and version output using `commander`.
> - Supports options like `--dry-run`, `--neon`, `--js`, `--next`,
`--npm`, `--yarn`, `--pnpm`, `--bun`, `--client`, `--server`,
`--no-browser`.
>   - **Dependencies**:
> - Adds `commander` as a dependency in `package.json` and
`packages/init-stack/package.json`.
>   - **Code Cleanup**:
>     - Removes manual argument parsing logic from `index.ts`.
> - Simplifies `main()` function by using `commander` to handle options.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=stack-auth%2Fstack-auth&utm_source=github&utm_medium=referral)<sup>
for 4d4e2a8324. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Konsti Wohlwend <n2d4xc@gmail.com>
Co-authored-by: Zai Shi <zaishi00@outlook.com>
2025-03-12 22:17:19 +01:00
..
src ref: use commander for arguments parsing (#531) 2025-03-12 22:17:19 +01:00
.eslintrc.cjs Convert packages/init-stack to TypeScript (#465) 2025-02-25 23:02:25 +00:00
.gitignore Support create-next-app@15 with the setup wizard (#340) 2024-11-13 13:58:42 +01:00
CHANGELOG.md chore: update package versions 2025-03-12 10:28:45 -07:00
LICENSE Setup wizard 2024-04-24 12:20:31 +02:00
package.json ref: use commander for arguments parsing (#531) 2025-03-12 22:17:19 +01:00
README.md Allows for --no-browser in Stack Auth init command (#521) 2025-03-10 04:53:36 +01:00
tsconfig.json Convert packages/init-stack to TypeScript (#465) 2025-02-25 23:02:25 +00:00
tsup.config.ts Convert packages/init-stack to TypeScript (#465) 2025-02-25 23:02:25 +00:00
vitest.config.ts In-source unit tests (#429) 2025-02-14 11:47:52 -08:00

Stack Auth Initialization Tool

This package provides a command-line tool to initialize Stack Auth in your project.

Usage

npx init-stack [project-path] [options]

Options

  • --help, -h: Show help message
  • --dry-run: Run without making any changes
  • --neon: Use Neon database
  • --js: Initialize for JavaScript project
  • --next: Initialize for Next.js project
  • --npm: Use npm as package manager
  • --yarn: Use yarn as package manager
  • --pnpm: Use pnpm as package manager
  • --bun: Use bun as package manager
  • --client: Initialize client-side only
  • --server: Initialize server-side only
  • --no-browser: Don't open browser for environment variable setup

Environment Variables

  • STACK_DISABLE_INTERACTIVE: Set to any value to disable interactive prompts. Useful for CI/CD environments.

Examples

Initialize Stack Auth in a Next.js project without opening the browser:

npx init-stack --next --no-browser

Initialize Stack Auth in a JavaScript project with npm:

npx init-stack --js --npm

For more information, please visit Stack Auth Documentation.