open-index/open-npm huggingface dataset:
npm package: @hloth/scaffold
Description: NPX tool for me to easily scaffold new project, containing TypeScript config for modern ES, eslint with my favorite code style and Jest tests with ts support
Author: vityaschel
Latest version: 1.0.7

# Scaffold

NPX tool for me to easily scaffold new project, containing TypeScript config for modern ES, eslint with my favorite code style and Jest tests with TS support.

Moreover, this tool was scaffolded with itself! It tests itself automatically with Jest after each build by creating simple test project and testing Jest with Jest's test.

This project is mostly for demonstrating which defaults I use, it is not intended to be used by anyone, simply because everyone has it's own preferences, so don't judge me for using X here. Though I'm still accepting any criticism that may help me improve this setup to work faster and better :)

**Size of generated project is just 142 MB with all dependencies**

I think there is a better alternatives to some things I use here, so suggest me alternative tools in the Issues tab if you know:
- ~~Append .js extension to imports during build~~
  - ~~Currently is done using external `@zoltu/typescript-transformer-append-js-extension` plugin with `ttypescript`~~
- ~~Build replacing process~~
  - ~~Currently ./out dir is removed via external `del-cli` package and then files are copied via `cpy-cli` which may pose threat with security vulnerabilities. Maybe change to native commands such as `rm` and `cp`?~~
- Add support for Yarn when installing dependencies

## Tool usage

```
npx @hloth/scaffold project-name --tests
```

or

```
git clone https://github.com/VityaSchel/scaffold && cd scaffold && npm i && npm run set && sf project-name
```

## Generated project usage

### Project structure

```
.
├── src
│   ├── .env.ts
│   └── index.ts
├── out
├── test
│   └── index.test.ts
├── .env
├── babel.config.cjs
├── jest.config.js
├── tsconfig.json
├── .swcrc
├── LICENSE.md
├── package.json
└── package-lock.json
```

### Scripts

Build: `npm run build`
Run: `npm start` or `node out/index.js`
Test (with TypeScript): `npm test`

### Building

Previusly building was done with ttsc which is a postprocessor for Typescript with plugins support. In v1.0.1 it was replaced with esbuild and then swc. swc was faster, so now we're using it.