client-aftermath-ts-sdk
Version:
Client Aftermath TypeScript SDK
111 lines (110 loc) • 6.46 kB
JavaScript
;
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,
};