Files
simple-scaffold/docs/docs/usage/examples.md

2.4 KiB

title
title
Examples

Example files

Input

  • Input file path:

    project → scaffold → {{Name}}.js → src → components
    
  • Input file contents:

    /**
     * Author: {{ author }}
     * Date: {{ now "yyyy-MM-dd" }}
     */
    import React from 'react'
    
    export default {{camelCase name}}: React.FC = (props) => {
      return (
        <div className="{{className}}">{{camelCase name}} Component</div>
      )
    }
    

Output

  • Output file path:

    • With subdir = false (default):

      project → src → components → MyComponent.js
      
    • With subdir = true:

      project → src → components → MyComponent → MyComponent.js
      
    • With subdir = true and subdirHelper = 'upperCase':

      project → src → components → MYCOMPONENT → MyComponent.js
      
  • Output file contents:

    /**
     * Author: My Name
     * Date: 2077-01-01
     */
    import React from 'react'
    
    export default MyComponent: React.FC = (props) => {
      return (
        <div className="myClassName">MyComponent Component</div>
      )
    }
    

Example run commands

Command Example

simple-scaffold \
    -t project/scaffold/**/* \
    -o src/components \
    -d '{"className": "myClassName","author": "My Name"}'
    MyComponent

Equivalent Node Module Example

import Scaffold from "simple-scaffold"

async function main() {
  await Scaffold({
    name: "MyComponent",
    templates: ["project/scaffold/**/*"],
    output: ["src/components"],
    data: {
      className: "myClassName",
      author: "My Name",
    },
  })
  console.log("Done.")
}

Re-usable config

Shell

# cjs
simple-scaffold -c scaffold.cjs MyComponent \
    -d '{"className": "myClassName","author": "My Name"}'
# mjs
simple-scaffold -c scaffold.mjs MyComponent \
    -d '{"className": "myClassName","author": "My Name"}'

scaffold.cjs

module.exports = (config) => ({
  default: {
    templates: ["project/scaffold/**/*"],
    output: ["src/components"],
    data: {
      className: "myClassName",
      author: "My Name",
    },
  },
})

scaffold.mjs

export default (config) => ({
  default: {
    templates: ["project/scaffold/**/*"],
    output: ["src/components"],
    data: {
      className: "myClassName",
      author: "My Name",
    },
  },
})