UNPKG

@commercelayer/sdk-utils

Version:
1 lines 11.9 kB
{"version":3,"sources":["../src/all.ts"],"names":["init_default","config","sleep","headerRateLimits","computeRateLimits"],"mappings":"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","file":"chunk-FZFB2LXT.cjs","sourcesContent":["import type { ApiError, QueryParamsList, ListResponse, Resource, ResourceUpdate, ListableResourceType, UpdatableResourceType, DeletableResourceType } from \"@commercelayer/sdk\"\nimport CommerceLayerUtils from \"./init\"\nimport { config } from \"./config\"\nimport { type RateLimitInfo, computeRateLimits, headerRateLimits } from \"./rate_limit\"\nimport { sleep } from \"./common\"\n\n\ntype AllParams = Omit<QueryParamsList, 'pageSize' | 'pageNumber' | 'sort'>\n\n\nexport const retrieveAll = async <R extends Resource>(resourceType: ListableResourceType, params?: AllParams & { limit?: number }): Promise<ListResponse<R>> => {\n\n\tconst cl = CommerceLayerUtils().sdk\n\t// const client = cl[resourceType] as unknown as ApiResource<ListableResource>\n\tconst client = CommerceLayerUtils().api(resourceType)\n\tconst rrr = cl.addRawResponseReader({ headers: true })\n\n\tlet result: ListResponse<R> | null = null\n\tlet lastId = null\n\tlet rateLimit: RateLimitInfo | null = null\n\t\n\tconst recordLimit = ((params?.limit || 0) > 0)? params?.limit : undefined\n\tif (recordLimit && params) delete params.limit\n\n\tconst allParams: QueryParamsList = params || {}\n\tallParams.pageNumber = 1\n\tallParams.pageSize = config.api.page_max_size\n\tallParams.sort = ['id']\n\tif (!allParams.filters) allParams.filters = {}\n\n\tdo {\n\n\t\tif (lastId) allParams.filters.id_gt = lastId\n\n\t\tif (rateLimit) await sleep(rateLimit.delay)\n\n\t\tconst page = await client.list(allParams) as ListResponse<R>\n\t\tif (result === null) result = page\n\t\telse result.push(...page)\n\n\t\tlastId = page.last()?.id\n\n\t\tif (!rateLimit) try {\n\t\t\tconst rateLimits = headerRateLimits(rrr.headers)\n\t\t\trateLimit = computeRateLimits(rateLimits, resourceType as string, result.pageCount)\n\t\t\tif (rateLimit) cl.removeRawResponseReader()\n\t\t} catch (error: any) {}\n\n\t} while ( result.length < Math.min((recordLimit || result.recordCount), result.recordCount) )\n\n\tif (recordLimit) {\n\t\tresult.splice(recordLimit, result.length - recordLimit)\n\t}\n\n\tconst meta = result.meta as any\n\t// if (recordLimit) meta.recordLimit = recordLimit\n\tdelete meta.currentPage\n\n\treturn result\n\n}\n\n\n\ntype UpdateResult = {\n\ttotal: number,\n\tprocessed: number,\n\terrors: number,\n\tresources: Record<string, {\n\t\tsuccess: boolean,\n\t\terror?: ApiError,\n\t\terrorMessage?: string\n\t}>\n}\n\n\nexport const updateAll = async <U extends Omit<ResourceUpdate, 'id'>>(resourceType: UpdatableResourceType, resource: U, params?: AllParams): Promise<UpdateResult> => {\n\n\tconst cl = CommerceLayerUtils().sdk\n\n\t// const client = cl[resourceType] as unknown as ApiResource<UpdatableResource>\n\tconst client = CommerceLayerUtils().api(resourceType)\n\tconst rrr = cl.addRawResponseReader({ headers: true })\n\n\tconst result: UpdateResult = { total: 0, processed: 0, errors: 0, resources: {} }\n\tlet lastId = null\n\tlet rateLimit: RateLimitInfo | null = null\n\n\tconst allParams: QueryParamsList = params || {}\n\tallParams.pageNumber = 1\n\tallParams.pageSize = config.api.page_max_size\n\tallParams.sort = ['id']\n\tif (!allParams.filters) allParams.filters = {}\n\n\tdo {\n\n\t\tif (lastId) allParams.filters.id_gt = lastId\n\n\t\tif (rateLimit) await sleep(rateLimit.delay)\n\t\tconst page = await client.list(allParams)\n\t\tif (!lastId) result.total = page.recordCount\n\n\t\tif (!rateLimit) try {\n\t\t\tconst rateLimits = headerRateLimits(rrr.headers)\n\t\t\trateLimit = computeRateLimits(rateLimits, resourceType, (result.total + page.pageCount))\n\t\t\tif (rateLimit) cl.removeRawResponseReader()\n\t\t} catch (error: any) {}\n\n\n\t\tfor (const item of page) {\n\n\t\t\tresult.resources[item.id] = { success: false }\n\t\t\tconst resId = result.resources[item.id]\n\n\t\t\ttry {\n\n\t\t\t\tconst updRes = {\n\t\t\t\t\t...resource,\n\t\t\t\t\tid: item.id,\n\t\t\t\t\ttype: resourceType\n\t\t\t\t}\n\n\t\t\t\tif (rateLimit) await sleep(rateLimit.delay)\n\t\t\t\tawait client.update(updRes)\n\n\t\t\t\tresult.processed++\n\t\t\t\tresId.success = true\n\n\t\t\t} catch (error: any) {\n\t\t\t\tresult.errors++\n\t\t\t\tif (cl.isApiError(error)) resId.error = error\n\t\t\t\tresId.errorMessage = error.message\n\t\t\t}\n\n\t\t}\n\t\t\n\n\t\tlastId = page.last()?.id\n\n\t} while ( (result.processed + result.errors) < result.total )\n\n\n\treturn result\n\n}\n\n\ntype DeleteResult = UpdateResult\n\n\nexport const deleteAll = async (resourceType: DeletableResourceType, params?: AllParams): Promise<DeleteResult> => {\n\n\tconst cl = CommerceLayerUtils().sdk\n\t// const client = cl[resourceType] as unknown as ApiResource<DeletableResource>\n\tconst client = CommerceLayerUtils().api(resourceType)\n\tconst rrr = cl.addRawResponseReader({ headers: true })\n\n\tconst result: UpdateResult = { total: 0, processed: 0, errors: 0, resources: {} }\n\tlet lastId = null\n\tlet rateLimit: RateLimitInfo | null = null\n\n\tconst allParams: QueryParamsList = params || {}\n\tallParams.pageNumber = 1\n\tallParams.pageSize = config.api.page_max_size\n\tallParams.sort = ['id']\n\tif (!allParams.filters) allParams.filters = {}\n\n\tdo {\n\n\t\tif (lastId) allParams.filters.id_gt = lastId\n\n\t\tif (rateLimit) await sleep(rateLimit.delay)\n\t\tconst page = await client.list(allParams)\n\t\tif (!lastId) result.total = page.recordCount\n\n\t\tif (!rateLimit) try {\n\t\t\tconst rateLimits = headerRateLimits(rrr.headers)\n\t\t\trateLimit = computeRateLimits(rateLimits, resourceType, (result.total + page.pageCount))\n\t\t\tif (rateLimit) cl.removeRawResponseReader()\n\t\t} catch (error: any) {}\n\n\n\t\tfor (const item of page) {\n\n\t\t\tresult.resources[item.id] = { success: false }\n\t\t\tconst resId = result.resources[item.id]\n\n\t\t\ttry {\n\n\t\t\t\tif (rateLimit) await sleep(rateLimit.delay)\n\t\t\t\tawait (client as any).delete(item.id)\n\n\t\t\t\tresult.processed++\n\t\t\t\tresId.success = true\n\n\t\t\t} catch (error: any) {\n\t\t\t\tresult.errors++\n\t\t\t\tif (cl.isApiError(error)) resId.error = error\n\t\t\t\tresId.errorMessage = error.message\n\t\t\t}\n\n\t\t}\n\t\t\n\n\t\tlastId = page.last()?.id\n\n\t} while ( (result.processed + result.errors) < result.total )\n\n\n\treturn result\n\n}\n\n\n\nexport const all = {\n\tretrieveAll,\n\tupdateAll\n}\n"]}