mylisabox/generator-lisa

View on GitHub
generators/plugin/steps/writing.js

Summary

Maintainability
A
0 mins
Test Coverage
'use strict'
/**
 * Step 5
 * Where you write the generator specific files (routes, controllers, etc)
 */

const path = require('path')
const TEMPLATE = path.join(path.dirname(require.resolve('lisa-plugin')), 'archetype')

String.prototype.capitalize = function () {
  return this.charAt(0).toUpperCase() + this.slice(1)
}

module.exports = function () {
  const parts = this.options['plugin-name'].split(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g) // eslint-disable-line no-useless-escape
  for (let i = 0; i < parts.length; i++) {
    parts[i] = parts[i].capitalize()
  }

  // Copy all files
  this.fs.copyTpl(path.resolve(TEMPLATE, '**', '*'), this.destinationRoot(), {
    name: this.options['plugin-name'].toLowerCase(),
    nameNormalized: parts.join()
  })

  // Copy all dotfiles
  this.fs.copyTpl(
    path.resolve(TEMPLATE, '**', '.*'),
    this.destinationRoot()
  )
}