AngelMunoz / Perla

A cross-platform tool for unbundled front-end development that doesn't depend on Node or requires you to install a complex toolchain
https://perla-docs.web.app/
MIT License
131 stars 12 forks source link

Scaffolding Overhaul #107

Closed AngelMunoz closed 1 year ago

AngelMunoz commented 1 year ago

This PR addresses some of the issues found in #103, #95 and #102

It is mainly aimed to enrich template related operations from creating new projects to add and show information related to existing template in perla.

This also will help to improve the workflow related to create new projects e.g.

perla new sample --template-name AngelMunoz/perla-templates/fable-feliz
perla new sample -id perla.templates.fable.feliz
perla new sample -t ff

where -id is an android-like that should be a unique identifier for each template in a repository and ff is a short name defined in the template's configuration

These changes require a little bit more of work on the template authoring experience (writing a json file) but I think it is worth it.

Also as a new option, using perla new without flags features a wizard-like experience where it will show you the existing templates in the system and which one you can pick up, it will also share with you the short command syntax for the next time you create a project

perla new sample

https://user-images.githubusercontent.com/8684875/231566225-57bebad3-3ad3-4eed-8295-fedbe3cbf05a.mp4

Lastly we've refactored a bit the contents of the Commands and separated handlers from inputs and commands themselves so we can start testing that our inputs get parsed as we intend them to use e.g. being able to parse add package -s esm.sh and ensure we can use -s esm.sh or -s unpkg or any other alternatives we support