@proofkit/fmodata
Version:
FileMaker OData API client
31 lines (30 loc) • 1.06 kB
JavaScript
import { transformFieldNamesArray } from "../../transform.js";
const VALID_FIELD_NAME_REGEX = /^[a-zA-Z][a-zA-Z0-9]*$/;
function needsFieldQuoting(fieldName) {
if (fieldName.startsWith("FMFID:") || fieldName.startsWith("FMTID:")) {
return false;
}
if (fieldName.toLowerCase() === "id") {
return true;
}
return fieldName.includes(" ") || fieldName.includes("_") || !VALID_FIELD_NAME_REGEX.test(fieldName);
}
function formatSelectFields(select, table, useEntityIds) {
if (!select || select.length === 0) {
return "";
}
const selectArray = Array.isArray(select) ? select : [select];
const transformedFields = table && useEntityIds ? transformFieldNamesArray(selectArray.map(String), table) : selectArray.map(String);
return transformedFields.map((field) => {
if (needsFieldQuoting(field)) {
return `"${field}"`;
}
const encoded = encodeURIComponent(field);
return encoded.replace(/%20/g, " ");
}).join(",");
}
export {
formatSelectFields,
needsFieldQuoting
};
//# sourceMappingURL=select-utils.js.map