{"version":3,"file":"index-node.js","sources":["../src/element.js"],"sourcesContent":["'use strict';\r\nimport Generator from 'yeoman-generator';\r\nimport chalk from 'chalk';\r\nimport yosay from 'yosay';\r\nimport utils from 'backed-utils';\r\nimport path from 'path';\r\nimport os from 'os';\r\nconst platform = os.platform();\r\n\r\nexport default class extends Generator {\r\n  constructor(args, opts) {\r\n    super(args, opts);\r\n\r\n    // This method adds support for a `--coffee` flag\r\n    this.option('default');\r\n    this.argument('name', {type: 'string', required: false});\r\n  }\r\n\r\n  initializing() {\r\n    const name = this.options.name || path.win32.basename(process.cwd());\r\n    const _className = utils.toJsProp(name);\r\n    const className = _className.charAt(0).toUpperCase() + _className.slice(1);\r\n    this.props = {\r\n      name: name,\r\n      className: className\r\n    };\r\n  }\r\n\r\n  prompting() {\r\n    var prompts = [{\r\n      type: 'input',\r\n      name: 'name',\r\n      message: 'Whats the name for your component?',\r\n      default: this.props.name,\r\n      when: !this.options.name\r\n    }, {\r\n      type: 'input',\r\n      name: 'version',\r\n      message: 'Version',\r\n      default: '0.0.0'\r\n    }, {\r\n      type: 'input',\r\n      name: 'description',\r\n      message: 'Description',\r\n      when: !this.props.description\r\n    }, {\r\n      type: 'input',\r\n      name: 'homepage',\r\n      message: 'Project homepage url',\r\n      when: !this.props.homepage\r\n    }, {\r\n      type: 'input',\r\n      store: true,\r\n      name: 'authorName',\r\n      message: 'Author\\'s Name',\r\n      default: this.user.git.name()\r\n    }, {\r\n      type: 'input',\r\n      store: true,\r\n      name: 'authorEmail',\r\n      message: 'Author\\'s Email',\r\n      default: this.user.git.email()\r\n    }, {\r\n      type: 'input',\r\n      store: true,\r\n      name: 'authorUrl',\r\n      message: 'Author\\'s Homepage',\r\n      default: ''\r\n    }, {\r\n      type: 'confirm',\r\n      store: true,\r\n      name: 'license',\r\n      message: 'Include license?',\r\n      default: true\r\n    }, {\r\n      type: 'input',\r\n      name: 'keywords',\r\n      message: 'Package keywords (comma to split)'\r\n    }];\r\n\r\n    if (this.options.default) return;\r\n    else return this.prompt(prompts).then(props => {\r\n      // To access props later use this.props.someAnswer;\r\n      this.props = props;\r\n    });\r\n  }\r\n\r\n  configuring() {\r\n    this.composeWith(require.resolve('generator-node/generators/git'), {\r\n      name: this.props.name || this.options.name,\r\n      githubAccount: this.props.authorEmail\r\n    });\r\n\r\n    if (this.props.license) {\r\n      this.composeWith(require.resolve('generator-license/app'), {\r\n        name: this.props.authorName,\r\n        email: this.props.authorEmail,\r\n        website: this.props.authorUrl\r\n      });\r\n    }\r\n  }\r\n\r\n  writing() {\r\n    this.fs.copy(\r\n      this.templatePath('.*'),\r\n      this.destinationPath('./')\r\n    );\r\n\r\n    this.fs.copyTpl(\r\n      this.templatePath('package.json'),\r\n      this.destinationPath('package.json'),\r\n      {\r\n        name: this.props.name || this.options.name,\r\n        version: this.props.version,\r\n        authorName: this.props.authorName,\r\n        authorEmail: this.props.authorEmail,\r\n        authorUrl: this.props.authorUrl\r\n      }\r\n    );\r\n\r\n    this.fs.copyTpl(\r\n      this.templatePath('backed.json'),\r\n      this.destinationPath('backed.json'),\r\n      {\r\n        name: this.props.name || this.options.name\r\n      }\r\n    );\r\n\r\n    this.fs.copyTpl(\r\n      this.templatePath('backed-element.js'),\r\n      this.destinationPath(`src/${this.props.name || this.options.name}.js`),\r\n      {\r\n        className: this.props.className\r\n      }\r\n    );\r\n\r\n    this.fs.copyTpl(\r\n      this.templatePath('backed-element.html'),\r\n      this.destinationPath(`${this.props.name || this.options.name}.html`),\r\n      {\r\n        name: this.props.name || this.options.name\r\n      }\r\n    );\r\n\r\n    this.fs.copyTpl(\r\n      this.templatePath('demo.html'),\r\n      this.destinationPath('demo/index.html'),\r\n      {\r\n        name: this.props.name || this.options.name\r\n      }\r\n    );\r\n  }\r\n\r\n  install() {\r\n    try {\r\n      console.log(chalk.yellow('backed version'))\r\n      this.spawnCommandSync('backed', ['version']);\r\n      console.log();\r\n    } catch (e) {\r\n      if (platform === 'win32') {\r\n        this.spawnCommandSync('yarn', ['global', 'add', 'backed-cli']);\r\n      } else {\r\n        this.spawnCommandSync('sudo', ['yarn', 'global', 'add', 'backed-cli']);\r\n      }\r\n    }\r\n    this.log('Swiping things up');\r\n    this.spawnCommand('rm', ['-rf', 'node_modules']);\r\n\r\n    this.installDependencies({\r\n      bower: false,\r\n      npm: false,\r\n      yarn: true\r\n    });\r\n  }\r\n}\r\n"],"names":["platform","os","args","opts","option","argument","type","required","name","options","path","win32","basename","process","cwd","_className","utils","toJsProp","className","charAt","toUpperCase","slice","props","prompts","description","homepage","user","git","email","default","prompt","then","composeWith","require","resolve","authorEmail","license","authorName","authorUrl","fs","copy","templatePath","destinationPath","copyTpl","version","log","chalk","yellow","spawnCommandSync","e","spawnCommand","installDependencies","Generator"],"mappings":"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"}