fla-final/crud.ts

57 lines
1.9 KiB
TypeScript
Raw 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();