UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 640 B
function createSelectOptionCodec(e){let t=new Map,n=new Map,r=0,encodeOptions=e=>{let i=new Set;return e.map((e,a)=>{if(i.has(e.value))throw Error(`Select option values must be unique; duplicate at index ${a}.`);i.add(e.value);let o=n.get(e.value);return o===void 0&&(o=`option-${r}`,r+=1,n.set(e.value,o),t.set(o,e.value)),{...e,value:o}})};return{options:encodeOptions(e),encode(e){let t=n.get(e);if(t===void 0)throw Error(`Select initial value does not match an option.`);return t},encodeOptions,decode(e){let n=t.get(e);if(n===void 0)throw Error(`Select returned an unknown option key: ${e}`);return n}}}export{createSelectOptionCodec};