An open API service indexing awesome lists of open source software.

https://github.com/namesmt/config-rocket

Easily create and deploy configurable config packs!
https://github.com/namesmt/config-rocket

config configurable cookiecutter template typescript

Last synced: 4 months ago
JSON representation

Easily create and deploy configurable config packs!

Awesome Lists containing this project

README

          

Config Rocket

Easily create and deploy configurable config packs!


Project's branding image

# config-rocket ![TypeScript heart icon](https://img.shields.io/badge/♡-%23007ACC.svg?logo=typescript&logoColor=white)

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]
[![Codecov][codecov-src]][codecov-href]

* [config-rocket ](#config-rocket-)
* [Overview \& Features](#overview--features)
* [`CR` for users:](#cr-for-users)
* [`CR` for creators:](#cr-for-creators)
* [`CR` for developers / communities:](#cr-for-developers--communities)
* [Usage](#usage)
* [For users](#for-users)
* [For creators](#for-creators)
* [License](#license)
* [Notes \& References](#notes--references)
* [Ecosystem Terms / Dictionary Explained](#ecosystem-terms--dictionary-explained)
* [cookiecutter](#cookiecutter)

## Overview & Features

**`config-rocket`** is a toolkit/engine that helps you create or install configurable `config-pack`s, which can range anywhere from some configuration files, a component, or even a full library template!

### `CR` for users:
+ **Cross-platform** 🪟🍏🐧
+ **Easy, interactive, safe install** of any `config pack` and zip archives, whether its a public one shared by your friend, or your own, privately-stored.
+ `config-rocket` does not allow any code execution, so the installation of a `config pack` is safe, but you should verify that the archive contains the files that you expect.

### `CR` for creators:
+ **Config type-safety**: `config-rocket` is powered by `Typescript (TS)`, and provides type-safety, autocompletion, typedoc documentation right in your IDE while crafting your configs.
+ **Powerful creator candies**:
+ `parameters` that works interactively with your users.
+ `variables`, `excludes`, `filesBuilder` helps you conditionally customize your assemble process without code execution.
+ `fuel` context support that help you reduces duplication work in multiple files.
+ `frame` template for the quick file-to-file base bones.
+ `snapshot` that helps simulating of an existing user project, ensuring your configs will deploy correctly. (Intended for more advanced use case like testing AI agents) (TBA)
+ **Easy shipping**: Bundle your `config pack`, or just create a zip archive, create a GitHub release, or upload it somewhere, and everyone can use it via `config-rocket` CLI!

### `CR` for developers / communities:
+ **Easily extendable**: tailor your own rules and functionalities via exported functions and hooks support, for example: [Roo Rocket](https://github.com/NamesMT/roo-rocket)

## Usage

### For users

```sh
npx config-rocket --repo="NamesMT/config-packs"
# Or by url: `npx config-rocket --url=https://direct.url/to-config.zip`

# Interactively configure the installation parameters (if any)
# Nothing more, enjoy :)
```

### For creators

* Generate a repo from [`config-packs-template`](https://github.com/NamesMT/config-packs-template)
* It's a template to create your own `config packs` for `config-rocket` ecosystem.
* Start shipping!

## License

[![License][license-src]][license-href]

## Notes & References

### [Ecosystem Terms / Dictionary Explained](./TERMS_EXPLANATION.md)

### [cookiecutter](https://github.com/cookiecutter/cookiecutter)

This project is similar to `cookiecutter` (I didn't know of it's existence while creating `config-rocket`).

But I'm proud to say that in the current early stage, `config-rocket` can pretty much match the functionalities of `cookiecutter`, with some notes/feats:
+ Targets for broader adaptation and safety, no script execution from config packs.
+ Provides development toolings and type-safety.
+ For serious creators / communities, it's more flexible and easier to create your own extends of `config-rocket` with more rules and features, you are in FULL POWER of using the inner toolings to control/build the FULL PROCESS: CLI invoke, fetching, unpack, assemble,...

[npm-version-src]: https://img.shields.io/npm/v/config-rocket?labelColor=18181B&color=F0DB4F
[npm-version-href]: https://npmjs.com/package/config-rocket
[npm-downloads-src]: https://img.shields.io/npm/dm/config-rocket?labelColor=18181B&color=F0DB4F
[npm-downloads-href]: https://npmjs.com/package/config-rocket
[codecov-src]: https://img.shields.io/codecov/c/gh/namesmt/config-rocket/main?labelColor=18181B&color=F0DB4F
[codecov-href]: https://codecov.io/gh/namesmt/config-rocket
[license-src]: https://img.shields.io/github/license/namesmt/config-rocket.svg?labelColor=18181B&color=F0DB4F
[license-href]: https://github.com/namesmt/config-rocket/blob/main/LICENSE