Ingredient.js 1.7 KB

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