Ingredient.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. class Ingredient{
  2. constructor(id, name, category, unitType, unit, parent, unitSize = undefined){
  3. this.id = id;
  4. this.name = name;
  5. this.category = category;
  6. this.unitType = unitType;
  7. this.unit = unit;
  8. this.parent = parent;
  9. if(unitSize){
  10. this.unitSize = unitSize;
  11. }
  12. }
  13. convert(quantity){
  14. if(this.unitType === "mass"){
  15. switch(this.unit){
  16. case "g": break;
  17. case "kg": quantity /= 1000; break;
  18. case "oz": quantity /= 28.3495; break;
  19. case "lb": quantity /= 453.5924; break;
  20. }
  21. }else if(this.unitType === "volume"){
  22. switch(this.unit){
  23. case "ml": quantity *= 1000; break;
  24. case "l": break;
  25. case "tsp": quantity *= 202.8842; break;
  26. case "tbsp": quantity *= 67.6278; break;
  27. case "ozfl": quantity *= 33.8141; break;
  28. case "cup": quantity *= 4.1667; break;
  29. case "pt": quantity *= 2.1134; break;
  30. case "qt": quantity *= 1.0567; break;
  31. case "gal": quantity /= 3.7854; break;
  32. }
  33. }else if(this.unitType === "length"){
  34. switch(this.unit){
  35. case "mm": quantity *= 1000; break;
  36. case "cm": quantity *= 100; break;
  37. case "m": break;
  38. case "in": quantity *= 39.3701; break;
  39. case "ft": quantity *= 3.2808; break;
  40. }
  41. }
  42. return quantity;
  43. }
  44. }
  45. module.exports = Ingredient;