@commercelayer/sdk-utils
Version:
Commerce Layer Javascript SDK Utils library
141 lines (138 loc) • 5.34 kB
JavaScript
;
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