UNPKG

scaffolding-nextjs

Version:

Templates that aid in the development of NextJS applications.

40 lines (34 loc) 1.01 kB
/* Enables scaffolding of new FC items (e.g. components, tags) using the dopl templating library. See the stateless-component folder for the template source files. */ const chalk = require('chalk'); const dopl = require('dopl'); module.exports = ({ name, src, dest }) => { // if(!/^[A-Z][A-Za-z]+$/.test(name)) { // console.error(chalk.bgRed('The name should be in PascalCase.')); // process.exit(1); // } return dopl({ output: dest, src: src, data: { name, pageName: name[0].toUpperCase() + name.substring(1, name.length), className: createClassName(name) } }); } const createClassName = name => { // Force uppercase to build the className const cleanName = `${name[0].toUpperCase()}${name.slice(1,name.length)}` console.log(cleanName) // transforms PascalCase into slug-case for the CSS class name return cleanName .replace(/[A-Z]/g, word => '_' + word.toLowerCase()) .substring(1); // trim off leading - from the first capital }