UNPKG

kopi.js

Version:

API for ordering Singaporean Coffee

1 lines 1.29 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Kopi=t()}(this,function(){"use strict";var e={parse:function(e){e=e.trim().toLowerCase();var t=0,i=0,o=0,s=0,a=0,n="warm";if(/^kopi/.test(e))if(s=1,/^kopi\s(c|si|see)\b/.test(e)?(o=.2,a=.4,t=.4):/^kopi\soh?\b/.test(e)?(a=.5,t=.5):(i=.2,a=.4,t=.4),/\b(peng|bing)\b/.test(e)?n="iced":/\bpua sio\b/.test(e)&&(n="lukewarm"),/\bpoh?\b/.test(e)?(a+=.1,t-=.1):/\b(g|k)a(u|o)\b/.test(e)?(a-=.1,t+=.1):/\bdi\slo\b/.test(e)&&(t+=a,a=0),/\bkosong\b/.test(e)){if(i)throw new Error("Invalid Kopi. Condensed milk contains sugar.");s=0}else/\b(ga|ka)h?\s(d|t)ai\b/.test(e)?(i>0?(i+=.1,a-=.05,t-=.05):o>0&&(o+=.1,a-=.05,t-=.05),s=1.5):/\b(siu|siew|xiu)\s(t|d)ai\b/.test(e)&&(s=.5);else/^water$/.test(e)&&(a=1);return{water:a,coffee:t,sugar:s,condensed_milk:i,evaporated_milk:o,state:n}},stringify:function(e){void 0===e&&(e={});var t=e.condensed_milk,i=e.evaporated_milk,o=e.state,s=e.sugar,a=e.coffee,n=e.water,r="",d="",u="",b="";return i>0?u=" C":t<=0&&(u=" O"),"iced"==o?d=" Peng":"lukewarm"==o&&(d=" Pua Sio"),a>n?0==n?r=" Di Lo":t>n?b=" Gah Dai":r=" Gao":a<n&&(r=" Po"),0==s&&t<=0?b=" Kosong":s<1?b=" Siew Dai":s>1&&(b=" Gah Dai"),"Kopi"+u+d+r+b}};return e});