@commercelayer/sdk-utils
Version:
Commerce Layer Javascript SDK Utils library
1 lines • 9.72 kB
Source Map (JSON)
{"version":3,"sources":["../src/page.ts"],"names":["init_default","currentTokenData","config"],"mappings":"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","file":"chunk-AIUQXTBF.cjs","sourcesContent":["import type { ApiResource, ListableResourceType, QueryParamsList, ListResponse, Resource, QueryPageSize } from '@commercelayer/sdk'\nimport CommerceLayerUtils from './init'\nimport { config } from './config'\nimport { currentTokenData } from './util'\n\n\nconst TEST_MODE = (typeof process === 'undefined')? undefined : process.env.CL_SDK_TEST // if defined specs are running\nconst DEBUG = (typeof process === 'undefined')? undefined : process.env.CL_SDK_DEBUG // if defined show debug messages\n\n\nconst MAX_PAGE_SIZE_LIVE = TEST_MODE ? 950 : 1000 // test mode requires more requests\nconst MAX_PAGE_SIZE_TEST = TEST_MODE ? 475 : 500 // test mode requires more requests\n\n\nexport type PaginationParams<R extends Resource> = Omit<QueryParamsList<R>, 'pageSize'> & { pageSize?: number }\n\n\nexport const retrievePage = async <R extends Resource>(resourceType: ListableResourceType, params?: PaginationParams<R>): Promise<ListResponse<R>> => {\n\n let requests = 0\n\n const cl = CommerceLayerUtils().sdk\n // const client = cl[resourceType] as unknown as ApiResource<R>\n const client = CommerceLayerUtils().api(resourceType) as ApiResource<R>\n\n let result: ListResponse<R> | null = null\n\n const queryParams: QueryParamsList<R> = {\n fields: params?.fields,\n filters: params?.filters,\n sort: params?.sort,\n include: params?.include\n }\n\n // Page size check\n const tokenData = currentTokenData(cl.currentAccessToken)\n const maxPageSize = tokenData.test ? MAX_PAGE_SIZE_TEST : MAX_PAGE_SIZE_LIVE\n if (DEBUG) console.log('maxPageSize: ' + maxPageSize)\n\n const pageSize = Math.max(1, params?.pageSize || 1)\n if (DEBUG) console.log('pageSize: ' + pageSize)\n if (pageSize > maxPageSize) throw new Error(`Page size exceeds the maximum allowed of ${maxPageSize}: [${pageSize}]`)\n\n // Page number check\n if (DEBUG) console.log('requests: ' + ++requests)\n const recordCount = await client.count(queryParams)\n if (DEBUG) console.log('recordCount: ' + recordCount)\n const pageNumber = Math.max(1, params?.pageNumber || 1)\n if (DEBUG) console.log('pageNumber: ' + pageNumber)\n const maxPageNumber = Math.ceil(recordCount / pageSize)\n if (pageNumber > maxPageNumber) throw new Error(`Page number greater than the last page number ${maxPageNumber}: [${pageNumber}]`)\n\n\n if (pageSize <= config.api.page_max_size) { // Page size lower than maximum api page size\n queryParams.pageSize = pageSize as QueryPageSize\n queryParams.pageNumber = pageNumber\n if (DEBUG) console.log('requests: ' + ++requests)\n result = await (client as unknown as ApiResource<R>).list(queryParams)\n } else {\n\n const pageSizeApi = config.api.page_max_size\n queryParams.pageSize = pageSizeApi\n\n const recordStart = pageSize * (pageNumber - 1) + 1\n const recordEnd = Math.min((recordStart + pageSize - 1), recordCount)\n if (DEBUG) console.log('recordStart: ' + recordStart)\n if (DEBUG) console.log('recordEnd: ' + recordEnd)\n\n const pageStartApi = Math.ceil(recordStart / pageSizeApi)\n const pageEndApi = Math.ceil(recordEnd / pageSizeApi)\n if (DEBUG) console.log('pageStartApi: ' + pageStartApi)\n if (DEBUG) console.log('pageEndApi: ' + pageEndApi)\n\n\n for (let pageCurrApi = pageStartApi; pageCurrApi <= pageEndApi; pageCurrApi++) {\n\n queryParams.pageNumber = pageCurrApi\n\n if (DEBUG) console.log('FOR requests: ' + ++requests)\n const page = await client.list(queryParams)\n if (result === null) result = page\n else result.push(...page)\n\n }\n\n\n if (!result) throw new Error(`Error retrieving ${resourceType} page`)\n if (DEBUG) console.log('result.length: ' + result.length)\n if (result.length === 0) return result\n\n\n if (DEBUG) console.log('requests: ' + ++requests)\n if (DEBUG) console.log('requests: ' + ++requests)\n const firstResource = (await client.list({ ...queryParams, ...{ pageNumber: recordStart, pageSize: 1 } })).first()\n const lastResource = (await client.list({ ...queryParams, ...{ pageNumber: recordEnd, pageSize: 1 } })).first()\n if (DEBUG) console.log('firstResource: ' + firstResource?.id)\n if (DEBUG) console.log('lastResource: ' + lastResource?.id)\n\n const firstResourceIdx = result.findIndex((r: Resource) => (r.id === firstResource?.id))\n const lastResourceIdx = result.findIndex((r: Resource) => (r.id === lastResource?.id))\n if (DEBUG) console.log('firstResourceIdx: ' + firstResourceIdx)\n if (DEBUG) console.log('lastResourceIdx: ' + lastResourceIdx)\n\n result.splice(lastResourceIdx + 1)\n if (DEBUG) console.log('End trim - result.length: ' + result.length)\n result.splice(0, firstResourceIdx)\n if (DEBUG) console.log('Start trim - result.length: ' + result.length)\n\n\n // Fix result.meta info\n const meta = result.meta as any\n meta.recordsPerPage = pageSize\n meta.currentPage = pageNumber\n meta.pageCount = maxPageNumber\n if (DEBUG) console.log(meta)\n\n if (DEBUG) console.log('requests: ' + ++requests)\n\n }\n\n\n return result\n\n}\n"]}