UNPKG

@proofkit/fmodata

Version:

FileMaker OData API client

42 lines (41 loc) 1.48 kB
import { isColumn } from "../../orm/column.js"; import { FMTable, getBaseTableConfig } from "../../orm/table.js"; function getContainerFieldNames(table) { const baseTableConfig = getBaseTableConfig(table); if (!(baseTableConfig == null ? void 0 : baseTableConfig.containerFields)) { return []; } return baseTableConfig.containerFields; } function getDefaultSelectFields(table, includeSpecialColumns) { if (!table) { return void 0; } const defaultSelect = table[FMTable.Symbol.DefaultSelect]; const containerFields = getContainerFieldNames(table); if (defaultSelect === "schema") { const baseTableConfig = getBaseTableConfig(table); const allFields = Object.keys(baseTableConfig.schema); const fields = [...new Set(allFields.filter((f) => !containerFields.includes(f)))]; return fields.length > 0 ? fields : void 0; } if (Array.isArray(defaultSelect)) { return [...new Set(defaultSelect.filter((f) => !containerFields.includes(f)))]; } if (typeof defaultSelect === "object" && defaultSelect !== null && !Array.isArray(defaultSelect)) { const fieldNames = []; for (const value of Object.values(defaultSelect)) { if (isColumn(value)) { fieldNames.push(value.fieldName); } } if (fieldNames.length > 0) { return [...new Set(fieldNames.filter((f) => !containerFields.includes(f)))]; } } return void 0; } export { getDefaultSelectFields }; //# sourceMappingURL=default-select.js.map