Skip to content

vikassarkar/fs-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fs-generator

Package to create folder/copy folder updating its filename/contents as per configurations provided to it.

Contains

Getting started

Before you start, make sure you have a recent version of NodeJS environment >=6.0 with NPM 3 or Yarn.

install folder structure generator

npm install --save-dev fs-generator

Use

You need to define a refrence directory stucture with contents in it and keys to be updated before copyng it inside destination directory. Should also define a temporary directory, to process files and folder before copyng it inside destination directory. And a last thing, Define a destination directory.

NOTE: you need to define a folder name in camelcase format e.g WidgetName for naming folder, files and content. path of folder should be absolute path.

Configurations example

    {
        //type of directory for user 
        "type": "widget",
        //base name of directory passed by command line
        "input": "",
        //base name configuration of root directory 
        "folderName": [
            //font-case
            "lowercaseHyphenSeprated", 
            //name prefix
            "example-",
            //name suffix
            "-widget"
        ],
        //temporary directory path
        "tempFolderPath": "../build-utils/fs-generator/temp/",
        //refrence directory path
        "refrenceSourcePath": "../build-utils/fs-generator/widget/widget/",
        //destination directory path
        "destinationSourcePath": "../web/widgets/",
        //folder structure with files and its configuration
        "replaceFileName": {
            //sub directory
            "app": {
                //subdirectory file, require no updation
                "index.html": "",
                //subdirectory file, require no updation
                "index.tsx": ""
            },
            //sub directory
            "components": {
                //subdirectory file, require updation, defining configs
                "ComponentName.tsx": [
                    //font-case
                    "camelUpperCase",
                    //prefix
                    "",
                    //suffix
                    ""
                ]
            },
            "models": {
                "ComponentName.ts": [
                    "camelUpperCase",
                    "I",
                    ""
                ]
            },
            "styles": {
                "ComponentName.scss": [
                    "camelLowerCase",
                    "_",
                    ""
                ],
                "main.scss": ""
            },
            "WidgetName.tsx": [
                "camelUpperCase",
                "Example",
                "Widget"
            ]
        },
        //contents existing in all directories and replacement configs
        "replaceContent": {
            //content key
            "ComponentName": [
                //font-key
                "camelUpperCase",
                //prefix
                "",
                //suffix
                ""
            ],
            "componentName": [
                "camelLowerCase",
                "",
                ""
            ],
            "widget-folder-name": [
                "lowercaseHyphenSeprated",
                "example-",
                "-widget"
            ],
            "WidgetName": [
                "camelUpperCase",
                "",
                ""
            ],
            "widgetName": [
                "camelLowerCase",
                "",
                ""
            ]
        }
    }, ......

Available font-cases

  • camelLowerCase
  • camelUpperCase
  • lowercaseHyphenSeprated
  • uppercaseHyphenSeprated

Todo

  • Add a example
  • Add webpack scripts in package.json

About

Folder structure generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published