{"ast":null,"code":"const data={lastId:2,resources:[{id:1,label:'First resource'},{id:2,label:'Second resource'}],liked:false,likeCount:42,todos:['Buy groceries','Walk the dog'],users:{1:{id:1,name:'Alice Johnson',email:'alice@example.com'},2:{id:2,name:'Bob Smith',email:'bob@example.com'},3:{id:3,name:'Carol White',email:'carol@example.com'}},fruits:['Apple','Apricot','Avocado','Banana','Blueberry','Cherry','Coconut','Date','Elderberry','Fig','Grape','Guava','Kiwi','Lemon','Lime','Mango','Melon','Nectarine','Orange','Papaya','Peach','Pear','Pineapple','Plum','Raspberry','Strawberry','Watermelon']};/**\n * @param {Function} result\n * @param {number} delay\n */const simulateRequest=function(result){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Math.random()*1e3;return new Promise(resolve=>setTimeout(()=>resolve(result()),delay));};const simulateFailure=function(error){let delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Math.random()*1e3;return new Promise((_,reject)=>setTimeout(()=>reject(error),delay));};const api={get:()=>simulateRequest(()=>data.resources),post:resource=>simulateRequest(()=>{const newResource={...resource,id:++data.lastId};data.resources.push(newResource);return newResource;}),put:(id,resource)=>simulateRequest(()=>{const oldResource=data.resources.find(resource=>resource.id===id);if(!oldResource)return undefined;const updatedResource={...resource,id};data.resources=data.resources.map(resource=>resource.id===id?updatedResource:resource);return updatedResource;}),delete:id=>simulateRequest(()=>{const{length}=data.resources;data.resources=data.resources.filter(resource=>resource.id!==id);return data.resources.length!==length;}),getLikeStatus:()=>simulateRequest(()=>({liked:data.liked,count:data.likeCount})),toggleLike:liked=>simulateRequest(()=>{data.liked=liked;data.likeCount+=liked?1:-1;return{liked:data.liked,count:data.likeCount};},800+Math.random()*700),getUser:id=>simulateRequest(()=>data.users[id],600+Math.random()*600),getTodos:()=>simulateRequest(()=>[...data.todos]),addTodo:text=>simulateRequest(()=>{data.todos.push(text);return[...data.todos];}),addTodoFail:()=>simulateFailure('Server error: could not save',800),search:query=>simulateRequest(()=>data.fruits.filter(f=>f.toLowerCase().includes(query.toLowerCase())),200+Math.random()*1300)};export default api;","map":{"version":3,"names":["data","lastId","resources","id","label","liked","likeCount","todos","users","name","email","fruits","simulateRequest","result","delay","arguments","length","undefined","Math","random","Promise","resolve","setTimeout","simulateFailure","error","_","reject","api","get","post","resource","newResource","push","put","oldResource","find","updatedResource","map","delete","filter","getLikeStatus","count","toggleLike","getUser","getTodos","addTodo","text","addTodoFail","search","query","f","toLowerCase","includes"],"sources":["/root/.openclaw/workspace/projects/termosa-use-request/example/src/api.js"],"sourcesContent":["const data = {\n  lastId: 2,\n  resources: [\n    { id: 1, label: 'First resource' },\n    { id: 2, label: 'Second resource' },\n  ],\n  liked: false,\n  likeCount: 42,\n  todos: ['Buy groceries', 'Walk the dog'],\n  users: {\n    1: { id: 1, name: 'Alice Johnson', email: 'alice@example.com' },\n    2: { id: 2, name: 'Bob Smith', email: 'bob@example.com' },\n    3: { id: 3, name: 'Carol White', email: 'carol@example.com' },\n  },\n  fruits: ['Apple', 'Apricot', 'Avocado', 'Banana', 'Blueberry', 'Cherry', 'Coconut', 'Date', 'Elderberry', 'Fig', 'Grape', 'Guava', 'Kiwi', 'Lemon', 'Lime', 'Mango', 'Melon', 'Nectarine', 'Orange', 'Papaya', 'Peach', 'Pear', 'Pineapple', 'Plum', 'Raspberry', 'Strawberry', 'Watermelon'],\n}\n\n/**\n * @param {Function} result\n * @param {number} delay\n */\nconst simulateRequest = (result, delay = Math.random() * 1e3) =>\n  new Promise((resolve) => setTimeout(() => resolve(result()), delay))\n\nconst simulateFailure = (error, delay = Math.random() * 1e3) =>\n  new Promise((_, reject) => setTimeout(() => reject(error), delay))\n\nconst api = {\n  get: () => simulateRequest(() => data.resources),\n  post: (resource) =>\n    simulateRequest(() => {\n      const newResource = { ...resource, id: ++data.lastId }\n      data.resources.push(newResource)\n      return newResource\n    }),\n  put: (id, resource) =>\n    simulateRequest(() => {\n      const oldResource = data.resources.find((resource) => resource.id === id)\n      if (!oldResource) return undefined\n\n      const updatedResource = { ...resource, id }\n      data.resources = data.resources.map((resource) => (resource.id === id ? updatedResource : resource))\n      return updatedResource\n    }),\n  delete: (id) =>\n    simulateRequest(() => {\n      const { length } = data.resources\n      data.resources = data.resources.filter((resource) => resource.id !== id)\n      return data.resources.length !== length\n    }),\n  getLikeStatus: () => simulateRequest(() => ({ liked: data.liked, count: data.likeCount })),\n  toggleLike: (liked) =>\n    simulateRequest(() => {\n      data.liked = liked\n      data.likeCount += liked ? 1 : -1\n      return { liked: data.liked, count: data.likeCount }\n    }, 800 + Math.random() * 700),\n  getUser: (id) => simulateRequest(() => data.users[id], 600 + Math.random() * 600),\n  getTodos: () => simulateRequest(() => [...data.todos]),\n  addTodo: (text) =>\n    simulateRequest(() => {\n      data.todos.push(text)\n      return [...data.todos]\n    }),\n  addTodoFail: () => simulateFailure('Server error: could not save', 800),\n  search: (query) =>\n    simulateRequest(\n      () => data.fruits.filter((f) => f.toLowerCase().includes(query.toLowerCase())),\n      200 + Math.random() * 1300\n    ),\n}\n\nexport default api\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}