@proofkit/fmodata
Version:
FileMaker OData API client
42 lines (41 loc) • 1.48 kB
JavaScript
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