UNPKG

@proofkit/fmodata

Version:

FileMaker OData API client

31 lines (30 loc) 1.06 kB
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