Generate nextjs components and related artifacts based on HTML templates using Kodyfire.
π Homepage
nextjs-kodyfire requires the kodyfire-cli to be installed
npm install -g kodyfire-clinpm install nextjs-kodyfireIn order to generate your artifacts, run the generate command. The syntax is kody generate|g [kody] [concept]. If you ommit kody and concept the assistant will prompt you to select them. As an example, run the following command from your terminal:
kody generate nextjs componentRefer to the kodyfire generate your artifact section.
Once your project is initialized and ready for kody,
generate your nextjs concept using the kody ride command or manually. As an example, A declaration for a nextjs concept might look like the following:
{
"name": "Bird",
"template": "class.ts.template",
"outputDir": "classes",
"extends": "Animal",
"implements": "",
"hasConstructor": true,
"args": [
{
"name": "name",
"type": "string"
}
],
"methods": [
{
"name": "fly",
"returnType": "void"
}
],
"properties": [
{
"name": "family",
"type": "string",
"optional": false
},
{
"name": "weight",
"type": "number",
"optional": true
}
]
}After adding your concept(s) definitions, run the following command to generate your assets.
kody run -s kody-nextjs.jsonGenerates a react component
namestring - Component name. Default filenametemplateenum - template name to use. Only one by default.extensionenum - file extension. Possible values: js, ts, jsx, tsxisFolderboolean - If the component will be placed in a folder. This will add an index file for imports.ccsModuleboolean - if a css module file should be created.outputDirstring - The output directory
Generates a nextjs page
namestring - Component name. Default filenameisFolderboolean - If the component will be placed in a folder. This will add an index file for imports.ccsModuleboolean - if a css module file should be created.isDynamicRouteboolean - if the page uses a dynamic route.routerParamstring - Required if isDynamicRoute istrue. This will generate a dynamic page. Example: [id].jsxoutputDirstring - The output directory
Generates a nextjs api endpoint
namestring - Name of the file/folderisFolderboolean - If the component will be placed in a folder.isDynamicRouteboolean - if the endpoint uses a dynamic route.routerParamstring - Required ifisDynamicRouteistrue. This will generate a filename as [routerParam].tsoutputDirstring - The output directory. Default issrc/pages/api
Generates a typescript class
namestring - class name. Default filenametemplateenum - template name to use. Only one by default.implementsstring - Interface(s) to implementextendsstring - class(es) to extend.propertiesProperty[] - list of propertiesmethodsMethod[] - list of methodshasConstructorboolean - if class should have a constructorargs{name: string, type: string} - List of argument to pass to the constructor.hasConstructormust be true.outputDirstring - The output directory
Generates a typescript interface
namestring - class name. Default filenametemplateenum - template name to use. Only one by default.extendsstring - class(es) to extend.propertiesProperty[] - list of propertiesoutputDirstring - The output directory
Generates a tsconfig file
nameenum - The tsconfig configuration nameoutputDirstring - The output directory
Refer to this reference for a list of available tsconfig templates
namestring - property nametypestring - property typeoptionalboolean - if the property is optional when constructing an object
namestring - method nameparams{name: string, type: string} - list of method arguments. Leave empty if nonereturnTypestring - Return type (example: string, number, void)
Add the following params to your generated concepts using the kody ride command or manually. As an example, A declaration for a class might look like the following:
- Generate
component - Generate
page - Generate
api
TODOπ€ Anis Marrouchi
- Website: https://noqta.tn
- Twitter: @anis_marrouchi
- GitHub: @anis-marrouchi
- LinkedIn: @marrouchi
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a βοΈ if this project helped you!
Copyright Β© 2022 Anis Marrouchi.
This project is MIT licensed.
This README was generated with β€οΈ by readme-kodyfire