|
|
|
{"version":3,"file":"api.js","sources":["api/api.js"],"sourcesContent":["// api/index.js\nimport http from './http.js'\nimport utils from '../utils/utils.js'\nimport config from './config.js'\n\nconst limit = new Map()\nconst debounce = new Map()\n\n\n\n// 动态导入 models\nconst modules = import.meta.glob('./model/*.js', { eager: true })\nObject.entries(modules).forEach(([path, mod]) => {\n const model = mod.default || mod\n const key = path.match(/\\/([^/]+)\\.js$/)[1]\n for (const k in model) {\n if (config[k]) {\n console.error(`重名api------model=${key},key=${k}`)\n // 这里建议用全局弹窗或通知\n continue\n }\n config[k] = model[k]\n }\n})\n\n/**\n * 通用API请求\n * @param {string} key\n * @param {object} data\n * @param {function} [callback]\n * @param {string} [loadingTitle]\n * @returns {Promise}\n */\nexport function api(key, data = {}, callback, loadingTitle) {\n const req = config[key]\n\n if (!req) {\n console.error('无效key: ' + key)\n return Promise.reject(new Error('无效key'))\n }\n\n // 参数重载\n if (typeof callback === 'string') {\n loadingTitle = callback\n callback = undefined\n }\n if (typeof data === 'function') {\n callback = data\n data = {}\n }\n\n // 限流\n if (req.limit) {\n const last = limit.get(req.url)\n if (last && Date.now() - last < req.limit) {\n return Promise.reject(new Error('请求过于频繁'))\n }\n limit.set(req.url, Date.now())\n }\n // console.log(!uni.getStorageSync('token'),'status');\n // 必须登录\n if (req.auth && !uni.getStorageSync('token')) {\n // utils.toLogin()\n return Promise.reject(new Error('需要登录'))\n }\n\n // 防抖\n if (req.debounce) {\n const prev = debounce.get(req.url)\n if (prev) clearTimeout(prev)\n debounce.set(\n req.url,\n setTimeout(() => {\n debounce.delete(req.url)\n http.http(\n req.url,\n data,\n callback,\n req.method,\n loadingTitle || req.showLoading,\n loadingTitle || req.loadingTitle\n )\n }, req.debounce)\n )\n return Promise.reject(new Error('请求防抖中'))\n }\n\n // 正常请求\n\n return http.http(\n req.url,\n data,\n callback,\n req.method,\n loadingTitle || req.showLoading,\n loadingTitle || req.loadingTitle\n )\n}\n\nexport default api"],"names":["__vite_glob_0_0","__vite_glob_0_1","__vite_glob_0_2","__vite_glob_0_3","__vite_glob_0_4","config","uni","http"],"mappings":";;;;;;;;;AAKA,MAAM,QAAQ,oBAAI,IAAK;AACvB,MAAM,WAAW,oBAAI,IAAK;AAK1B,MAAM,UAA2D,uBAAA,OAAA,EAAA,sBAAAA,kBAAA,iBAAA,oBAAAC,gBAAA,iBAAA,mBAAAC,eAAA,iBAAA,oBAAAC,gBAAA,iBAAA,kBAAAC,cAAA,gBAAA,CAAA;AACjE,OAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM;AAC/C,QAAM,QAAQ,IAAI,WAAW;AAC7B,QAAM,MAAM,KAAK,MAAM,gBAAgB,EAAE,CAAC;AAC1C,aAAW,KAAK,OAAO;AACrB,QAAIC,WAAAA,OAAO,CAAC,GAAG;AACbC,0BAAA,MAAA,SAAA,oBAAc,oBAAoB,GAAG,QAAQ,CAAC,EAAE;AAEhD;AAAA,IACD;AACDD,eAAAA,OAAO,CAAC,IAAI,MAAM,CAAC;AAAA,EACpB;AACH,CAAC;AAUM,SAAS,IAAI,KAAK,OAAO,CAAA,GAAI,UAAU,cAAc;AAC1D,QAAM,MAAMA,WAAM,OAAC,GAAG;AAEtB,MAAI,CAAC,KAAK;AACRC,kBAAAA,yCAAc,YAAY,GAAG;AAC7B,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACzC;AAGD,MAAI,OAAO,aAAa,UAAU;AAChC,mBAAe;AACf,eAAW;AAAA,EACZ;AACD,MAAI,OAAO,SAAS,YAAY;AAC9B,eAAW;AACX,WAAO,CAAE;AAAA,EACV;AAGD,MAAI,IAAI,OAAO;AACb,UAAM,OAAO,MAAM,IAAI,IAAI,GAAG;AAC9B,QAAI,QAAQ,KAAK,IAAK,IAAG,OAAO,IAAI,OAAO;AACzC,aAAO,QAAQ,OAAO,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC1C;AACD,UAAM,IAAI,IAAI,KAAK,KAAK,IAAG,CAAE;AAAA,EAC9B;AAGD,MAAI,IAAI,QAAQ,CAACA,cAAG,MAAC,eAAe,OAAO,GAAG;AAE5C,WAAO,QAAQ,OAAO,IAAI,MAAM,MAAM,CAAC;AAAA,EACxC;AAGD,MAAI,IAAI,UAAU;AAChB,UAAM,OAAO,SAAS,IAAI,IAAI,GAAG;AACjC,QAAI;AAAM,mBAAa,IAAI;AAC3B,aAAS;AAAA,MACP,IAAI;AAAA,MACJ,WAAW,MAAM;AACf,iBAAS,OAAO,IAAI,GAAG;AACvBC,iBAAAA,KAAK;AAAA,UACH,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACJ,gBAAgB,IAAI;AAAA,UACpB,gBAAgB,IAAI;AAAA,QACrB;AAAA,MACT,GAAS,IAAI,QAAQ;AAAA,IAChB;AACD,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACzC;AAID,SAAOA,SAAI,KAAC;AAAA,IACV,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,gBAAgB,IAAI;AAAA,IACpB,gBAAgB,IAAI;AAAA,EACrB;AACH;;"} |
|
|
|
{"version":3,"file":"api.js","sources":["api/api.js"],"sourcesContent":["// api/index.js\r\nimport http from './http.js'\r\nimport utils from '../utils/utils.js'\r\nimport config from './config.js'\r\n\r\nconst limit = new Map()\r\nconst debounce = new Map()\r\n\r\n\r\n\r\n// 动态导入 models\r\nconst modules = import.meta.glob('./model/*.js', { eager: true })\r\nObject.entries(modules).forEach(([path, mod]) => {\r\n const model = mod.default || mod\r\n const key = path.match(/\\/([^/]+)\\.js$/)[1]\r\n for (const k in model) {\r\n if (config[k]) {\r\n console.error(`重名api------model=${key},key=${k}`)\r\n // 这里建议用全局弹窗或通知\r\n continue\r\n }\r\n config[k] = model[k]\r\n }\r\n})\r\n\r\n/**\r\n * 通用API请求\r\n * @param {string} key\r\n * @param {object} data\r\n * @param {function} [callback]\r\n * @param {string} [loadingTitle]\r\n * @returns {Promise}\r\n */\r\nexport function api(key, data = {}, callback, loadingTitle) {\r\n const req = config[key]\r\n\r\n if (!req) {\r\n console.error('无效key: ' + key)\r\n return Promise.reject(new Error('无效key'))\r\n }\r\n\r\n // 参数重载\r\n if (typeof callback === 'string') {\r\n loadingTitle = callback\r\n callback = undefined\r\n }\r\n if (typeof data === 'function') {\r\n callback = data\r\n data = {}\r\n }\r\n\r\n // 限流\r\n if (req.limit) {\r\n const last = limit.get(req.url)\r\n if (last && Date.now() - last < req.limit) {\r\n return Promise.reject(new Error('请求过于频繁'))\r\n }\r\n limit.set(req.url, Date.now())\r\n }\r\n // console.log(!uni.getStorageSync('token'),'status');\r\n // 必须登录\r\n if (req.auth && !uni.getStorageSync('token')) {\r\n // utils.toLogin()\r\n return Promise.reject(new Error('需要登录'))\r\n }\r\n\r\n // 防抖\r\n if (req.debounce) {\r\n const prev = debounce.get(req.url)\r\n if (prev) clearTimeout(prev)\r\n debounce.set(\r\n req.url,\r\n setTimeout(() => {\r\n debounce.delete(req.url)\r\n http.http(\r\n req.url,\r\n data,\r\n callback,\r\n req.method,\r\n loadingTitle || req.showLoading,\r\n loadingTitle || req.loadingTitle\r\n )\r\n }, req.debounce)\r\n )\r\n return Promise.reject(new Error('请求防抖中'))\r\n }\r\n\r\n // 正常请求\r\n\r\n return http.http(\r\n req.url,\r\n data,\r\n callback,\r\n req.method,\r\n loadingTitle || req.showLoading,\r\n loadingTitle || req.loadingTitle\r\n )\r\n}\r\n\r\nexport default api"],"names":["config","uni","http"],"mappings":";;;;;;;;;AAKA,MAAM,QAAQ,oBAAI,IAAK;AACvB,MAAM,WAAW,oBAAI,IAAK;AAK1B,MAAM;AACN,OAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,GAAG,MAAM;AAC/C,QAAM,QAAQ,IAAI,WAAW;AAC7B,QAAM,MAAM,KAAK,MAAM,gBAAgB,EAAE,CAAC;AAC1C,aAAW,KAAK,OAAO;AACrB,QAAIA,WAAAA,OAAO,CAAC,GAAG;AACbC,0BAAA,MAAA,SAAA,oBAAc,oBAAoB,GAAG,QAAQ,CAAC,EAAE;AAEhD;AAAA,IACD;AACDD,eAAAA,OAAO,CAAC,IAAI,MAAM,CAAC;AAAA,EACpB;AACH,CAAC;AAUM,SAAS,IAAI,KAAK,OAAO,CAAA,GAAI,UAAU,cAAc;AAC1D,QAAM,MAAMA,WAAM,OAAC,GAAG;AAEtB,MAAI,CAAC,KAAK;AACRC,kBAAAA,MAAA,MAAA,SAAA,oBAAc,YAAY,GAAG;AAC7B,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACzC;AAGD,MAAI,OAAO,aAAa,UAAU;AAChC,mBAAe;AACf,eAAW;AAAA,EACZ;AACD,MAAI,OAAO,SAAS,YAAY;AAC9B,eAAW;AACX,WAAO,CAAE;AAAA,EACV;AAGD,MAAI,IAAI,OAAO;AACb,UAAM,OAAO,MAAM,IAAI,IAAI,GAAG;AAC9B,QAAI,QAAQ,KAAK,IAAK,IAAG,OAAO,IAAI,OAAO;AACzC,aAAO,QAAQ,OAAO,IAAI,MAAM,QAAQ,CAAC;AAAA,IAC1C;AACD,UAAM,IAAI,IAAI,KAAK,KAAK,IAAG,CAAE;AAAA,EAC9B;AAGD,MAAI,IAAI,QAAQ,CAACA,cAAG,MAAC,eAAe,OAAO,GAAG;AAE5C,WAAO,QAAQ,OAAO,IAAI,MAAM,MAAM,CAAC;AAAA,EACxC;AAGD,MAAI,IAAI,UAAU;AAChB,UAAM,OAAO,SAAS,IAAI,IAAI,GAAG;AACjC,QAAI;AAAM,mBAAa,IAAI;AAC3B,aAAS;AAAA,MACP,IAAI;AAAA,MACJ,WAAW,MAAM;AACf,iBAAS,OAAO,IAAI,GAAG;AACvBC,iBAAAA,KAAK;AAAA,UACH,IAAI;AAAA,UACJ;AAAA,UACA;AAAA,UACA,IAAI;AAAA,UACJ,gBAAgB,IAAI;AAAA,UACpB,gBAAgB,IAAI;AAAA,QACrB;AAAA,MACT,GAAS,IAAI,QAAQ;AAAA,IAChB;AACD,WAAO,QAAQ,OAAO,IAAI,MAAM,OAAO,CAAC;AAAA,EACzC;AAID,SAAOA,SAAI,KAAC;AAAA,IACV,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,gBAAgB,IAAI;AAAA,IACpB,gBAAgB,IAAI;AAAA,EACrB;AACH;;"} |