UNPKG

client-aftermath-ts-sdk

Version:
111 lines (110 loc) 6.46 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamicFieldsApiHelpers = void 0; class DynamicFieldsApiHelpers { // ========================================================================= // Constructor // ========================================================================= constructor(Provider) { this.Provider = Provider; // ========================================================================= // Public Methods // ========================================================================= // ========================================================================= // Dynamic Fields // ========================================================================= this.fetchCastDynamicFieldsOfTypeWithCursor = (inputs) => __awaiter(this, void 0, void 0, function* () { const { dynamicFields, nextCursor } = yield this.fetchDynamicFieldsOfTypeWithCursor(inputs); const dynamicFieldObjectIds = dynamicFields.map((field) => field.objectId); const dynamicFieldObjects = yield inputs.objectsFromObjectIds(dynamicFieldObjectIds); return { dynamicFieldObjects, nextCursor, }; }); this.fetchAllDynamicFieldsOfType = (inputs) => __awaiter(this, void 0, void 0, function* () { var _a; let allDynamicFields = []; let cursor = undefined; do { const dynamicFieldsWithCursor = yield this.fetchDynamicFieldsOfTypeWithCursor(Object.assign(Object.assign({}, inputs), { cursor, limit: (_a = inputs.limitStepSize) !== null && _a !== void 0 ? _a : DynamicFieldsApiHelpers.constants.defaultLimitStepSize })); const dynamicFields = dynamicFieldsWithCursor.dynamicFields; allDynamicFields = [...allDynamicFields, ...dynamicFields]; if (dynamicFields.length === 0 || dynamicFieldsWithCursor.nextCursor === null) return allDynamicFields; cursor = dynamicFieldsWithCursor.nextCursor; } while (true); }); this.fetchCastAllDynamicFieldsOfType = (inputs) => __awaiter(this, void 0, void 0, function* () { const dynamicFields = yield this.fetchAllDynamicFieldsOfType(inputs); const dynamicFieldObjectIds = dynamicFields.map((field) => field.objectId); const dynamicFieldObjects = yield inputs.objectsFromObjectIds(dynamicFieldObjectIds); return dynamicFieldObjects; }); this.fetchDynamicFieldsUntil = (inputs) => __awaiter(this, void 0, void 0, function* () { const { fetchFunc, isComplete, cursor, limitStepSize } = inputs; let allDynamicFields = []; let currentCursor = cursor !== null && cursor !== void 0 ? cursor : null; do { const dynamicFieldsWithCursor = yield fetchFunc({ cursor: currentCursor !== null && currentCursor !== void 0 ? currentCursor : undefined, limit: limitStepSize !== null && limitStepSize !== void 0 ? limitStepSize : DynamicFieldsApiHelpers.constants.defaultLimitStepSize, }); const fetchedDynamicFields = dynamicFieldsWithCursor.dynamicFieldObjects; const nextCursor = dynamicFieldsWithCursor.nextCursor; allDynamicFields = [...allDynamicFields, ...fetchedDynamicFields]; if (fetchedDynamicFields.length === 0 || nextCursor === null) { return { dynamicFieldObjects: allDynamicFields, nextCursor, }; } if (isComplete(allDynamicFields)) { return { dynamicFieldObjects: allDynamicFields, nextCursor, }; } currentCursor = dynamicFieldsWithCursor.nextCursor; } while (true); }); this.fetchDynamicFieldsOfTypeWithCursor = (inputs) => __awaiter(this, void 0, void 0, function* () { var _b; const { parentObjectId, dynamicFieldType } = inputs; const dynamicFieldsResponse = yield this.Provider.provider.getDynamicFields(Object.assign(Object.assign({}, inputs), { limit: (_b = inputs.limit) !== null && _b !== void 0 ? _b : DynamicFieldsApiHelpers.constants.defaultLimitStepSize, parentId: parentObjectId })); const dynamicFields = dynamicFieldType === undefined ? dynamicFieldsResponse.data : dynamicFieldsResponse.data.filter((dynamicField) => typeof dynamicFieldType === "string" ? dynamicField.objectType === dynamicFieldType : dynamicFieldType(dynamicField.objectType)); const nextCursor = dynamicFieldsResponse.nextCursor; return { dynamicFields, nextCursor, }; }); // ========================================================================= // Dynamic Field Objects // ========================================================================= this.fetchDynamicFieldObject = (inputs) => { return this.Provider.provider.getDynamicFieldObject(inputs); }; } } exports.DynamicFieldsApiHelpers = DynamicFieldsApiHelpers; // ========================================================================= // Private Static Constants // ========================================================================= DynamicFieldsApiHelpers.constants = { defaultLimitStepSize: 256, };