pizza-maker
Version:
Best Pizza Maker
169 lines (146 loc) • 4.98 kB
JavaScript
;
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();
}
};