@tuentyfaiv/cli
v0.0.11
Published
A CLI to generate base code for React, Svelte and Vanilla JS projects, like boilerplates, components, pages, etc.
Downloads
40
Maintainers
Readme
Generate CLI
With this CLI you can generate base code to start to program fast. Also you can personalize the base code to generate.
Options
A command line interface for Frontend development
Usage: tfverse [OPTIONS] [NAME]
Arguments:
[NAME] Project name
Options:
-t, --tool <TOOL> Template tool to choose
-a, --arch <ARCH> Frontend piece or project template
-l, --language <LANGUAGE> TypeScript or JavaScript
-s, --styles <STYLES> Styles type
-p, --path <PATH> Template path to generate
-y, --sure Accept all questions
-g, --global Set configuration
-c, --config <FILE> Config file to customize this CLI
-h, --help Print help
-V, --version Print version
Config file
To personalize the cli you must create a .json
file. And use the following schema.
The commented paths are the default values.
Exmaple tfverse_config.json
{
"$schema": "https://gvtmpjzawvdhojsxlece.supabase.co/storage/v1/object/public/cli/schema/config.json",
"repository": "[email protected]:YOUR_ORG_OR_YOUR_USER",
"root": "", // The project root, default is "./"
"paths": { // The modules paths
"globals": {
"contexts": null, // "./src/logic/contexts"
"schemas": null, // "./src/logic/schemas"
"services": null, // "./src/logic/services"
"types": null, // "./src/logic/typing"
"ui": null // "./src/ui"
},
"react": {
"hocs": null, // "./src/logic/hocs"
"hooks": {
"global": null, // "./src/logic/hooks"
"internal": null // "hooks"
},
"locales": null, // "./public/locales"
"routes": null // "./src/logic/routes"
},
"svelte": {
"actions": null, // "./src/logic/actions"
"layouts": null, // "./src/routes"
"locales": null, // "./static/locales"
"pages": null, // "./src/routes"
"stores": null // "./src/logic/stores"
},
"vanilla": {
"classes": null, // "./src/logic/classes"
"functions": null // "./src/logic/functions"
}
},
"tools_type": { // The list to generate libraries and projects boilerplates
"vanilla": [
[
"base", // Name to show in the list
{
"name": "REPOSITORY_NAME",
"project": "main",
"library": null
}
]
],
"react": [
[
"base", // Name to show in the list
{
"name": "REPOSITORY_NAME",
"project": "main",
"library": null
}
]
],
"svelte": [
[
"base", // Name to show in the list
{
"name": "REPOSITORY_NAME",
"project": "main",
"library": null
}
]
]
},
"templates": { // The paths to your custom templates, all paths are concat with "$HOME"
"react": {
"component": null, // Example: "path/to/your/folder/component"
"context": null,
"hoc": null,
"hook": null,
"layout": null,
"page": null,
"schema": null,
"service": null
},
"svelte": {
"action": null,
"context": null,
"layout": null,
"page": null,
"schema": null,
"service": null,
"store": null,
"component": null
},
"vanilla": {
"class": null,
"component": null,
"function": null,
"layout": null,
"page": null,
"schema": null,
"service": null
}
}
}
Templates paths
If you want to personalize this CLI you must create the following files inside the folders that you set in the templates
option.
React Component
| Path | To |
| --- | --- |
| /component.(ts\|js)x
| Component |
| /import.(ts\|js)
| Component imports |
| /proptypes.ts
| Component props |
| /styles.(ts\|js)
| Component styles |
| /styles.responsive.(ts\|js)
| Component responsive |
Svelte Component
| Path | To |
| --- | --- |
| /component.svelte
| Component |
| /script.(ts\|js).svelte
| Component script |
| /import.(ts\|js)
| Component imports |
| /proptypes.ts
| Component props |
| /styles.(ts\|js)
| Component styles |
| /styles.responsive.(ts\|js)
| Component responsive |
Vanilla Component
Not ready yet
React Layout
| Path | To |
| --- | --- |
| /layout.(ts\|js)x
| Layout |
| /layout.styles.(ts\|js)x
| Layout barrel styles |
| /proptypes.ts
| Layout props |
| /styles.(ts\|js)
| Layout styles |
| /styles.responsive.(ts\|js)
| Layout responsive |
Svelte Layout
| Path | To |
| --- | --- |
| /layout.svelte
| Layout |
| /layout.styles.(ts\|js)x
| Layout barrel styles |
| /script.(ts\|js).svelte
| Layout script |
| /proptypes.ts
| Layout props |
| /styles.(ts\|js)
| Layout styles |
| /styles.responsive.(ts\|js)
| Layout responsive |
Vanilla Layout
Not ready yet
React Page
| Path | To |
| --- | --- |
| /page.(ts\|js)x
| Page |
| /proptypes.ts
| Page props |
| /locale.json
| Locale for i18n |
| /i18n.(ts\|js)
| i18n context |
| /styles.(ts\|js)
| Page styles |
| /styles.responsive.(ts\|js)
| Page responsive |
| /router.(ts\|js)
| Router |
| /route.(ts\|js)
| Route |
| /config.(ts\|js)
| Config file project |
| /config.aliases.(ts\|js)
| Project aliases |
| /tsconfig.json
| TSConfig file project |
| /tsconfig.aliases.json
| TSConfig aliases |
Svelte Page
| Path | To |
| --- | --- |
| /page.svelte
| Page |
| /script.(ts\|js).svelte
| Page script |
| /locale.json
| Locale for i18n |
| /i18n.(ts\|js)
| i18n store |
| /proptypes.ts
| Page props |
| /styles.(ts\|js)
| Page styles |
| /styles.responsive.(ts\|js)
| Page responsive |
| /config.(ts\|js)
| Svelte config |
| /config.aliases.(ts\|js)
| Svelte config aliases |
Vanilla Page
Not ready yet
React Schema
| Path | To |
| --- | --- |
| /schema.(ts\|js)x
| Schema |
| /proptypes.ts
| Schema props |
Svelte Schema
| Path | To |
| --- | --- |
| /schema.(ts\|js)x
| Schema |
| /proptypes.ts
| Schema props |
| /proptypes.imports.ts
| Schema props imports |
Vanilla Schema
Not ready yet
Templates keywords
| Keyword | Description |
| --- | --- |
| NAME_CAMEL
| Camel case name |
| NAME_PASCAL
| Pascal case name |
| NAME_DASH
| Dash case name |
| NAME_CONSTANT
| Constant case name |
| NAME_SNAKE
| Snake case name |
| NAME_LOWER
| Lowercase name |
| NAME
| User input name |
| NAMESPACE
| User input namespace |
| EXT_STYLES
| Styles extension |
Templates keywords for svelte
| Keyword | Description |
| --- | --- |
| SCRIPT
| Script tag |
Templates keywords for schemas
| Keyword | Description |
| --- | --- |
| /* NEXT_TYPE */
| Next type |
| /* PROPTYPES */
| PropTypes |
Tempaltes keywords for pages
| Keyword | Description |
| --- | --- |
| /* NEXT_ALIAS */
| Alias for next page |
| /* NEXT_LOCALE */
| Locale for next page |
| /* NEXT_ROUTE */
| Route for next page (Only ReactJS) |
Templates keywords for pages and schemas
| Keyword | Description |
| --- | --- |
| /* NEXT_IMPORT */
| Next import |