https://github.com/maticzav/creato
👨🏻🏭 create-app for any occasion
https://github.com/maticzav/creato
cli create-app npm yarn
Last synced: about 1 year ago
JSON representation
👨🏻🏭 create-app for any occasion
- Host: GitHub
- URL: https://github.com/maticzav/creato
- Owner: maticzav
- Created: 2018-12-11T15:31:52.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-13T09:32:43.000Z (about 1 year ago)
- Last Synced: 2025-04-13T10:31:49.428Z (about 1 year ago)
- Topics: cli, create-app, npm, yarn
- Language: TypeScript
- Homepage: https://github.com/maticzav/creato
- Size: 1.78 MB
- Stars: 25
- Watchers: 1
- Forks: 1
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README

# creato
[](https://circleci.com/gh/maticzav/creato/tree/master)
[](https://codecov.io/gh/maticzav/creato)
[](https://badge.fury.io/js/creato)
> create-app for any occasion.
`creato` helps you build `create-app` tool to help your customers scaffold their project more easily and more quickly.
## Overview
- ✂️ **Flexible:** Packs core functions as well as the out-of-the-box solution.
- 🌈 **Easy to use:** Exposes intuitive API!
- 🐶 **Friendly UI:** Question and Answer flow leads thorough template installation!
## Installation
```bash
yarn add creato
```
## Example

```ts
import { creato, Template } from 'creato'
import * as meow from 'meow'
const cli = meow(
`
create-boilerplates
> Helps you start with the project more quickly and more easily.
Options:
--force Force the installation in directory.
`,
{
flags: {
force: {
type: 'boolean',
default: false,
},
},
},
)
const templates: Template[] = [
{
name: 'json',
description: 'JSON template with basic CircleCI config.',
repo: {
uri: 'https://github.com/maticzav/label-sync',
branch: 'master',
path: '/examples/with-circleci',
},
},
]
creato(templates, {
force: cli.flags.force,
})
```
## API
```ts
/* templates */
interface Template {
name: string
description: string
repo: TemplateRepository
}
interface TemplateRepository {
uri: string
branch: string
path: string
}
/* creato */
interface Options {
force: boolean
}
function creato(templates: Template[], options: Options): Promise
/* core */
function loadTemplate(
template: Template,
output: string,
): Promise<
{ status: 'ok'; message: string } | { status: 'err'; message: string }
>
```
## License
MIT @ Matic Zavadlal