fla-final/crud.ts

57 lines
1.9 KiB
TypeScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import * as promptSync from 'prompt-sync';
interface Item {
  id: number;
  nome: string;
  descricao: string;
}
const prompt = promptSync();
let itens: Item[] = [];
let idAtual = 1;
const exibirMenu = () => {
  console.log("\n1. Criar\n2. Listar\n3. Atualizar\n4. Excluir\n5.
Sair\nEscolha uma opção:");
};
const criar = () => {
  const nome = prompt("Nome do item: ");
  const descricao = prompt("Descrição do item: ");
  itens.push({ id: idAtual++, nome, descricao });
  console.log("Item criado com sucesso!");
};
const listar = () => {
  if (itens.length === 0) return console.log("Nenhum item cadastrado.");
  itens.forEach(i => console.log(`ID: ${i.id}, Nome: ${i.nome},
Descrição: ${i.descricao}`));
};
const atualizar = () => {
  const id = parseInt(prompt("ID do item a atualizar: "));
  const item = itens.find(i => i.id === id);
  if (!item) return console.log("Item não encontrado.");
  item.nome = prompt(`Novo nome (atualmente: ${item.nome}): `);
  item.descricao = prompt(`Nova descrição (atualmente:
${item.descricao}): `);
  console.log("Item atualizado com sucesso!");
};
const excluir = () => {
  const id = parseInt(prompt("ID do item a excluir: "));
  const index = itens.findIndex(i => i.id === id);
  if (index === -1) return console.log("Item não encontrado.");
  itens.splice(index, 1);
  console.log("Item excluído com sucesso!");
};
const main = () => {
  let opcao: number;
  do {
    exibirMenu();
    opcao = parseInt(prompt("> "));
    switch (opcao) {
      case 1: criar(); break;
      case 2: listar(); break;
      case 3: atualizar(); break;
      case 4: excluir(); break;
      case 5: console.log("Saindo..."); break;
      default: console.log("Opção inválida.");
    }
  } while (opcao !== 5);
};
main();