<!-- title -->

# @kitschpatrol/create-project

<!-- /title -->

<!-- badges -->

[![NPM Package @kitschpatrol/create-project](https://img.shields.io/npm/v/@kitschpatrol/create-project.svg)](https://npmjs.com/package/@kitschpatrol/create-project)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![CI](https://github.com/kitschpatrol/create-project/actions/workflows/ci.yml/badge.svg)](https://github.com/kitschpatrol/create-project/actions/workflows/ci.yml)

<!-- /badges -->

<!-- short-description -->

**Kitschpatrol's TypeScript project templates.**

<!-- /short-description -->

## Overview

This repository contains very basic starter templates for TypeScript projects integrating [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config).

The lint tools and rules that come along with [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config) are opinionated and draconian, and won't be to everyone's taste.

The templates use [tsdown](https://tsdown.dev/) for building TypeScript libraries and Node-based CLI tools, and [Vite](https://vite.dev/) for web projects. [Bingo](https://www.create.bingo/) is used for the project templating system itself.

## Getting started

### Dependencies

[Node.js](https://nodejs.org/) 20.19.0 or higher and [pnpm](https://pnpm.io/) are required.

## Usage

### Create a new project

```sh
pnpm create @kitschpatrol/project@latest
```

### CLI options

```txt
Bingo template options:

  --directory (string): What local directory path to run under
      npx @kitschpatrol/create-project --directory my-fancy-project

  --help (string): Prints help text.
      npx @kitschpatrol/create-project --help

  --mode ("setup" | "transition"): Which mode to run in.
      npx @kitschpatrol/create-project --mode setup
      npx @kitschpatrol/create-project --mode transition

  --offline (boolean): Whether to run in an "offline" mode that skips network requests.
      npx @kitschpatrol/create-project --offline

  --version (boolean): Prints package versions.
      npx @kitschpatrol/create-project --version

Create Kitschpatrol Project options:

  --type (enum): The type of project to create.
  --author-name (string): The name of the author.
  --author-email (string): The email of the author.
  --author-url (string): The URL of the author.
  --cli-command-name (string): CLI command name (if applicable).
  --github-owner (string): The owner of the repository.
  --github-repository (string): The name of the repository / package.
  --npm-auth-command (string): A shell command that sets the NPM_AUTH_TOKEN env variable with a granular token for publishing to npm.
```

## Development Notes

```sh
./dist/index.js --directory ~/Desktop/test
```

## Maintainers

[@kitschpatrol](https://github.com/kitschpatrol)

## Acknowledgments

Thanks to [Josh Goldberg](https://www.joshuakgoldberg.com/) for creating the [Bingo](https://www.create.bingo/) template system.

<!-- contributing -->

## Contributing

[Issues](https://github.com/kitschpatrol/create-project/issues) and pull requests are welcome.

<!-- /contributing -->

<!-- license -->

## License

[MIT](license.txt) © Eric Mika

<!-- /license -->
