UNPKG

@proofkit/fmodata

Version:
115 lines (114 loc) 3.48 kB
function transformFieldNamesToIds(data, baseTable) { if (!baseTable.isUsingFieldIds()) { return data; } const transformed = {}; for (const [fieldName, value] of Object.entries(data)) { const fieldId = baseTable.getFieldId(fieldName); transformed[fieldId] = value; } return transformed; } function transformFieldName(fieldName, baseTable) { return baseTable.getFieldId(fieldName); } function transformTableName(occurrence) { return occurrence.getTableId(); } function getTableIdentifiers(occurrence) { return { name: occurrence.getTableName(), id: occurrence.isUsingTableId() ? occurrence.getTableId() : void 0 }; } function transformResponseFields(data, baseTable, expandConfigs) { if (!baseTable.isUsingFieldIds()) { return data; } if (data === null || data === void 0) { return data; } if (data.value && Array.isArray(data.value)) { return { ...data, value: data.value.map( (record) => transformSingleRecord(record, baseTable, expandConfigs) ) }; } if (Array.isArray(data)) { return data.map( (record) => transformSingleRecord(record, baseTable, expandConfigs) ); } return transformSingleRecord(data, baseTable, expandConfigs); } function transformSingleRecord(record, baseTable, expandConfigs) { if (!record || typeof record !== "object") { return record; } const transformed = {}; for (const [key, value] of Object.entries(record)) { if (key.startsWith("@")) { transformed[key] = value; continue; } let expandConfig = expandConfigs == null ? void 0 : expandConfigs.find((ec) => ec.relation === key); if (!expandConfig && key.startsWith("FMTID:")) { expandConfig = expandConfigs == null ? void 0 : expandConfigs.find( (ec) => ec.occurrence && ec.occurrence.isUsingTableId() && ec.occurrence.getTableId() === key ); } if (expandConfig && expandConfig.occurrence) { const relationKey = expandConfig.relation; if (Array.isArray(value)) { transformed[relationKey] = value.map( (nestedRecord) => transformSingleRecord( nestedRecord, expandConfig.occurrence.baseTable, void 0 // Don't pass nested expand configs for now ) ); } else if (value && typeof value === "object") { transformed[relationKey] = transformSingleRecord( value, expandConfig.occurrence.baseTable, void 0 ); } else { transformed[relationKey] = value; } continue; } const fieldName = baseTable.getFieldName(key); transformed[fieldName] = value; } return transformed; } function transformFieldNamesArray(fieldNames, baseTable) { if (!baseTable.isUsingFieldIds()) { return fieldNames; } return fieldNames.map((fieldName) => baseTable.getFieldId(fieldName)); } function transformOrderByField(orderByString, baseTable) { if (!baseTable.isUsingFieldIds()) { return orderByString; } const parts = orderByString.trim().split(/\s+/); const fieldName = parts[0]; const direction = parts[1]; const fieldId = baseTable.getFieldId(fieldName); return direction ? `${fieldId} ${direction}` : fieldId; } export { getTableIdentifiers, transformFieldName, transformFieldNamesArray, transformFieldNamesToIds, transformOrderByField, transformResponseFields, transformTableName }; //# sourceMappingURL=transform.js.map