UNPKG

@commercelayer/sdk-utils

Version:
141 lines (138 loc) 5.34 kB
'use strict'; var chunkWSJGLDZH_cjs = require('./chunk-WSJGLDZH.cjs'); var chunk6QM3G7UZ_cjs = require('./chunk-6QM3G7UZ.cjs'); var chunkOGEPN5MT_cjs = require('./chunk-OGEPN5MT.cjs'); var chunkMLE76YHX_cjs = require('./chunk-MLE76YHX.cjs'); // src/all.ts var retrieveAll = async (resourceType, params) => { const cl = chunkMLE76YHX_cjs.init_default().sdk; const client = chunkMLE76YHX_cjs.init_default().api(resourceType); const rrr = cl.addRawResponseReader({ headers: true }); let result = null; let lastId = null; let rateLimit = null; const recordLimit = (params?.limit || 0) > 0 ? params?.limit : void 0; if (recordLimit && params) delete params.limit; const allParams = params || {}; allParams.pageNumber = 1; allParams.pageSize = chunkOGEPN5MT_cjs.config.api.page_max_size; allParams.sort = ["id"]; if (!allParams.filters) allParams.filters = {}; do { if (lastId) allParams.filters.id_gt = lastId; if (rateLimit) await chunk6QM3G7UZ_cjs.sleep(rateLimit.delay); const page = await client.list(allParams); if (result === null) result = page; else result.push(...page); lastId = page.last()?.id; if (!rateLimit) try { const rateLimits = chunkWSJGLDZH_cjs.headerRateLimits(rrr.headers); rateLimit = chunkWSJGLDZH_cjs.computeRateLimits(rateLimits, resourceType, result.pageCount); if (rateLimit) cl.removeRawResponseReader(); } catch (error) { } } while (result.length < Math.min(recordLimit || result.recordCount, result.recordCount)); if (recordLimit) { result.splice(recordLimit, result.length - recordLimit); } const meta = result.meta; delete meta.currentPage; return result; }; var updateAll = async (resourceType, resource, params) => { const cl = chunkMLE76YHX_cjs.init_default().sdk; const client = chunkMLE76YHX_cjs.init_default().api(resourceType); const rrr = cl.addRawResponseReader({ headers: true }); const result = { total: 0, processed: 0, errors: 0, resources: {} }; let lastId = null; let rateLimit = null; const allParams = params || {}; allParams.pageNumber = 1; allParams.pageSize = chunkOGEPN5MT_cjs.config.api.page_max_size; allParams.sort = ["id"]; if (!allParams.filters) allParams.filters = {}; do { if (lastId) allParams.filters.id_gt = lastId; if (rateLimit) await chunk6QM3G7UZ_cjs.sleep(rateLimit.delay); const page = await client.list(allParams); if (!lastId) result.total = page.recordCount; if (!rateLimit) try { const rateLimits = chunkWSJGLDZH_cjs.headerRateLimits(rrr.headers); rateLimit = chunkWSJGLDZH_cjs.computeRateLimits(rateLimits, resourceType, result.total + page.pageCount); if (rateLimit) cl.removeRawResponseReader(); } catch (error) { } for (const item of page) { result.resources[item.id] = { success: false }; const resId = result.resources[item.id]; try { const updRes = { ...resource, id: item.id, type: resourceType }; if (rateLimit) await chunk6QM3G7UZ_cjs.sleep(rateLimit.delay); await client.update(updRes); result.processed++; resId.success = true; } catch (error) { result.errors++; if (cl.isApiError(error)) resId.error = error; resId.errorMessage = error.message; } } lastId = page.last()?.id; } while (result.processed + result.errors < result.total); return result; }; var deleteAll = async (resourceType, params) => { const cl = chunkMLE76YHX_cjs.init_default().sdk; const client = chunkMLE76YHX_cjs.init_default().api(resourceType); const rrr = cl.addRawResponseReader({ headers: true }); const result = { total: 0, processed: 0, errors: 0, resources: {} }; let lastId = null; let rateLimit = null; const allParams = params || {}; allParams.pageNumber = 1; allParams.pageSize = chunkOGEPN5MT_cjs.config.api.page_max_size; allParams.sort = ["id"]; if (!allParams.filters) allParams.filters = {}; do { if (lastId) allParams.filters.id_gt = lastId; if (rateLimit) await chunk6QM3G7UZ_cjs.sleep(rateLimit.delay); const page = await client.list(allParams); if (!lastId) result.total = page.recordCount; if (!rateLimit) try { const rateLimits = chunkWSJGLDZH_cjs.headerRateLimits(rrr.headers); rateLimit = chunkWSJGLDZH_cjs.computeRateLimits(rateLimits, resourceType, result.total + page.pageCount); if (rateLimit) cl.removeRawResponseReader(); } catch (error) { } for (const item of page) { result.resources[item.id] = { success: false }; const resId = result.resources[item.id]; try { if (rateLimit) await chunk6QM3G7UZ_cjs.sleep(rateLimit.delay); await client.delete(item.id); result.processed++; resId.success = true; } catch (error) { result.errors++; if (cl.isApiError(error)) resId.error = error; resId.errorMessage = error.message; } } lastId = page.last()?.id; } while (result.processed + result.errors < result.total); return result; }; var all = { retrieveAll, updateAll }; exports.all = all; exports.deleteAll = deleteAll; exports.retrieveAll = retrieveAll; exports.updateAll = updateAll; //# sourceMappingURL=chunk-FZFB2LXT.cjs.map //# sourceMappingURL=chunk-FZFB2LXT.cjs.map