<commit_before>const R = require('ramda');
const inquirer = require('inquirer');
const validate = require('./validate');
const compileProject = require('./compileProject');

const questions = [
  {
    type: 'input',
    name: 'projectName',
    message: 'What is the name of the project?',
    validate: validate.name
  },
  {
    type: 'input',
    name: 'projectSummary',
    message: 'Could you provide a short description for this project?'
  },
  {
    type: 'list',
    name: 'projectType',
    message: 'What type of project is this?',
    choices: [
      { name: 'Static Site', value: 'site' },
      { name: 'Application / Service', value: 'app' },
      { name: 'Library', value: 'lib' },
    ]
  },
  // {
  //   type: 'list',
  //   name: 'appType',
  //   message: 'What type of application are you building?',
  //   choices: [
  //     { name: 'Single Page App (Frontend)', value: 'frontend' },
  //     { name: 'Web Service', value: 'backend' },
  //     { name: 'Full-Stack Application', value: 'fullstack' }
  //   ],
  //   when: R.where({ projectType: R.equals('app') })
  // },
  {
    type: 'list',
    name: 'libType',
    message: 'What type of library are you building?',
    choices: [
      { name: 'Front-end Javascript', value: 'frontend' },
      { name: 'Back-end Javascript (Node)', value: 'node' },
      // { name: 'Go', value: 'go' }
    ],
    when: R.where({ projectType: R.equals('lib') })
  },
  {
    type: 'list',
    name: 'frontend',
    message: 'What front-end set up are you planning on using?',
    choices: [
      { name: 'No Frontend', value: false },
      { name: 'Vanilla JS (ES2015)', value: 'es' },
      { name: 'React + Redux', value: 'react' },
      // { name: 'Preact + Redux', value: 'preact' },
    ],
    when: R.where({ projectType: R.equals('app') })
  },
  {
    type: 'list',
    name: 'backend',
    message: 'What back-end set up are you planning on using?',
    choices: [
      { name: 'No Backend', value: false },
      { name: 'Vanilla Node', value: 'node' },
      { name: 'ExpressJS (Node)', value: 'express' },
    ],
    when: R.where({ projectType: R.equals('app') })
  },
  // {
  //   type: 'list',
  //   name: 'templating',
  //   message: 'What templating engine would you like to use?',
  //   choices: [
  //     { name: 'None', value: false },
  //     { name: 'Pug / Jade', value: 'pug' },
  //     { name: 'Nunjucks', value: 'nunjucks' }
  //   ],
  //   when: R.where({ projectType: R.complement(R.equals('lib')) })
  // },
  {
    type: 'checkbox',
    name: 'jsLibs',
    message: 'Would you like to add any of these common Javascript libraries to your project?',
    choices: function (input) {
      return [].concat.apply([], [
        (input.projectType === 'site' ? ['jquery'] : []),
        ['lodash', 'ramda', 'async', 'rx', 'classnames'],
        (input.frontend === 'react' ? ['redux-session', 'react-addons-update'] : ['portals'])
      ]);
    },
    when: R.anyPass([
      R.where({ projectType: R.anyPass([ R.equals('site'), R.equals('app') ])}),
      R.where({ libType: R.anyPass([ R.complement(R.equals('go')) ]) })
    ])
  },
  {
    type: 'list',
    name: 'targetEnv',
    message: 'What is your target deployment environment?',
    choices: [
      { name: 'Heroku', value: 'foreman' },
      { name: 'Docker', value: 'docker' }
    ],
    when: R.where({ projectType: R.equals('app') })
  }
];
<commit_msg>Allowing target environment to be omitted<commit_after>const R = require('ramda');
const inquirer = require('inquirer');
const validate = require('./validate');
const compileProject = require('./compileProject');

const questions = [
  {
    type: 'input',
    name: 'projectName',
    message: 'What is the name of the project?',
    validate: validate.name
  },
  {
    type: 'input',
    name: 'projectSummary',
    message: 'Could you provide a short description for this project?'
  },
  {
    type: 'list',
    name: 'projectType',
    message: 'What type of project is this?',
    choices: [
      { name: 'Static Site', value: 'site' },
      { name: 'Application / Service', value: 'app' },
      { name: 'Library', value: 'lib' },
    ]
  },
  // {
  //   type: 'list',
  //   name: 'appType',
  //   message: 'What type of application are you building?',
  //   choices: [
  //     { name: 'Single Page App (Frontend)', value: 'frontend' },
  //     { name: 'Web Service', value: 'backend' },
  //     { name: 'Full-Stack Application', value: 'fullstack' }
  //   ],
  //   when: R.where({ projectType: R.equals('app') })
  // },
  {
    type: 'list',
    name: 'libType',
    message: 'What type of library are you building?',
    choices: [
      { name: 'Front-end Javascript', value: 'frontend' },
      { name: 'Back-end Javascript (Node)', value: 'node' },
      // { name: 'Go', value: 'go' }
    ],
    when: R.where({ projectType: R.equals('lib') })
  },
  {
    type: 'list',
    name: 'frontend',
    message: 'What front-end set up are you planning on using?',
    choices: [
      { name: 'No Frontend', value: false },
      { name: 'Vanilla JS (ES2015)', value: 'es' },
      { name: 'React + Redux', value: 'react' },
      // { name: 'Preact + Redux', value: 'preact' },
    ],
    when: R.where({ projectType: R.equals('app') })
  },
  {
    type: 'list',
    name: 'backend',
    message: 'What back-end set up are you planning on using?',
    choices: [
      { name: 'No Backend', value: false },
      { name: 'Vanilla Node', value: 'node' },
      { name: 'ExpressJS (Node)', value: 'express' },
    ],
    when: R.where({ projectType: R.equals('app') })
  },
  // {
  //   type: 'list',
  //   name: 'templating',
  //   message: 'What templating engine would you like to use?',
  //   choices: [
  //     { name: 'None', value: false },
  //     { name: 'Pug / Jade', value: 'pug' },
  //     { name: 'Nunjucks', value: 'nunjucks' }
  //   ],
  //   when: R.where({ projectType: R.complement(R.equals('lib')) })
  // },
  {
    type: 'checkbox',
    name: 'jsLibs',
    message: 'Would you like to add any of these common Javascript libraries to your project?',
    choices: function (input) {
      return [].concat.apply([], [
        (input.projectType === 'site' ? ['jquery'] : []),
        ['lodash', 'ramda', 'async', 'rx', 'classnames'],
        (input.frontend === 'react' ? ['redux-session', 'react-addons-update'] : ['portals'])
      ]);
    },
    when: R.anyPass([
      R.where({ projectType: R.anyPass([ R.equals('site'), R.equals('app') ])}),
      R.where({ libType: R.anyPass([ R.complement(R.equals('go')) ]) })
    ])
  },
  {
    type: 'list',
    name: 'targetEnv',
    message: 'What is your target deployment environment?',
    choices: [
      { name: 'None', value: false },
      { name: 'Heroku', value: 'foreman' },
      { name: 'Docker', value: 'docker' }
    ],
    when: R.where({ projectType: R.equals('app') })
  }
];

{'fraction_non_alphanumeric': 0.1996527777777778, 'fraction_numerical': 0.0011574074074074073, 'mean_word_length': 2.5414959016393444, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1166449', 'n_tokens_mistral': 2348, 'n_tokens_neox': 2338, 'n_words': 631}