UNPKG

pizza-maker

Version:
169 lines (146 loc) 4.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _templateObject = _taggedTemplateLiteral(['Select {bold ', '}:'], ['Select {bold ', '}:']), _templateObject2 = _taggedTemplateLiteral(['{bold.green Saved!} Now you can order this pizza in menu :) \n'], ['{bold.green Saved!} Now you can order this pizza in menu :) \\n']), _templateObject3 = _taggedTemplateLiteral(['{bold.red Cancel}'], ['{bold.red Cancel}']), _templateObject4 = _taggedTemplateLiteral(['{bold.green ', ' Ordered! ;)} \n'], ['{bold.green ', ' Ordered! ;)} \\n']), _templateObject5 = _taggedTemplateLiteral(['{bold.red Deleted!} \n'], ['{bold.red Deleted!} \\n']), _templateObject6 = _taggedTemplateLiteral(['{bold.blue Till next time! :)}'], ['{bold.blue Till next time! :)}']); var _inquirer = require('inquirer'); var _inquirer2 = _interopRequireDefault(_inquirer); var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } var data = { pizzas: [{ name: "Margherita", components: ["sauce", "cheese"] }, { name: "Bacon", components: ["sauce", "cheese", "bacon"] }], content: [{ type: "Dought", components: ["Normal", "Double", "Skin"] }, { type: "Sauce", components: ["Tomato", "Mexican", "Garlic"] }, { type: "Cheeses", components: ["Mozzarella", "Cheddar", "Provolone", "Parmesan"] }, { type: "Meats", components: ["Ham", "Bacon", "Chicken", "Pepperoni", "Beef"] }, { type: "Toppings", components: ["Onion", "Chili", "Pineapple", "Pepper", "Tomato", "Basil", "Oregano", "Tabasco", "Shrimp", "Champignon"] }] }; exports.default = { new: async function _new(showMenu) { var content = data.content; var name = await _inquirer2.default.prompt([{ type: 'input', name: 'name', message: 'How do you want to name your pizza?', validate: function validate(value) { if (value.length < 4) { return 'Minimum 4 letters'; } return true; } }]); var components = []; for (var i in content) { var cb = await _inquirer2.default.prompt([{ type: 'checkbox', name: 'components', message: (0, _chalk2.default)(_templateObject, content[i].type), choices: content[i].components }]); components.push(cb.components); } var flatComponents = components.reduce(function (acc, val) { return acc.concat(val); }, []); // or components.flat() var pizza = { name: name.name, components: flatComponents }; data.pizzas.push(pizza); console.log((0, _chalk2.default)(_templateObject2)); return showMenu(); }, get: async function get(showMenu) { var choices = []; data.pizzas.forEach(function (pizza) { choices.push({ name: 'Pizza ' + pizza.name + ' (' + pizza.components + ')', value: pizza }); }); var answer = await _inquirer2.default.prompt([{ type: 'list', name: 'option', message: 'Choose pizza:', choices: choices }]); return this.action(answer.option, showMenu); }, action: async function action(pizza, showMenu) { var answer = await _inquirer2.default.prompt([{ type: 'list', name: 'option', message: 'Choose action:', choices: [{ name: 'Order', value: 'order' }, { name: 'Delete', value: 'delete' }, new _inquirer2.default.Separator(), { name: (0, _chalk2.default)(_templateObject3), value: 'cancel' }] }]); if (answer.option === 'order') { return this.order(pizza, showMenu); } else if (answer.option === 'delete') { return this.delete(showMenu, pizza); } showMenu(); }, order: function order(pizza, showMenu) { var spinner = (0, _ora2.default)('Ordering...').start(); var pizzaFull = pizza.name + '(' + pizza.components + ')'; setTimeout(function () { spinner.stop(); console.log((0, _chalk2.default)(_templateObject4, pizzaFull)); return showMenu(); }, 2500); }, delete: async function _delete(showMenu, pizza) { var index = data.pizzas.indexOf(pizza); data.pizzas.splice(index, 1); console.log((0, _chalk2.default)(_templateObject5)); return showMenu(); }, exit: async function exit(showMenu) { var answer = await _inquirer2.default.prompt([{ type: 'confirm', name: 'exit', message: 'Are you sure want to exit?', default: false }]); if (answer.exit) { console.log((0, _chalk2.default)(_templateObject6)); process.exit(1); } showMenu(); } };