payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
82 lines (81 loc) • 8.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _types = require("../../fields/config/types");
const _fieldToWhereInputSchemaMap = /*#__PURE__*/ _interop_require_default(require("./fieldToWhereInputSchemaMap"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const recursivelyBuildNestedPaths = ({ field, nestedFieldName2, parentName, payload })=>{
const fieldName = (0, _types.fieldAffectsData)(field) ? field.name : undefined;
const nestedFieldName = fieldName || nestedFieldName2;
if (field.type === 'tabs') {
// if the tab has a name, treat it as a group
// otherwise, treat it as a row
return field.tabs.reduce((tabSchema, tab)=>{
tabSchema.push(...recursivelyBuildNestedPaths({
field: {
...tab,
type: 'name' in tab ? 'group' : 'row'
},
nestedFieldName2: nestedFieldName,
parentName,
payload
}));
return tabSchema;
}, []);
}
const nestedPaths = field.fields.reduce((nestedFields, nestedField)=>{
if (!(0, _types.fieldIsPresentationalOnly)(nestedField)) {
if (!(0, _types.fieldAffectsData)(nestedField)) {
return [
...nestedFields,
...recursivelyBuildNestedPaths({
field: nestedField,
nestedFieldName2: nestedFieldName,
parentName,
payload
})
];
}
const nestedPathName = (0, _types.fieldAffectsData)(nestedField) ? `${nestedFieldName ? `${nestedFieldName}__` : ''}${nestedField.name}` : undefined;
const getFieldSchema = (0, _fieldToWhereInputSchemaMap.default)({
nestedFieldName,
parentName,
payload
})[nestedField.type];
if (getFieldSchema) {
const fieldSchema = getFieldSchema({
...nestedField,
name: nestedPathName
});
if (Array.isArray(fieldSchema)) {
return [
...nestedFields,
...fieldSchema
];
}
return [
...nestedFields,
{
key: nestedPathName,
type: fieldSchema
}
];
}
}
return nestedFields;
}, []);
return nestedPaths;
};
const _default = recursivelyBuildNestedPaths;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9yZWN1cnNpdmVseUJ1aWxkTmVzdGVkUGF0aHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4nXG5pbXBvcnQgdHlwZSB7IEZpZWxkV2l0aFN1YkZpZWxkcywgVGFic0ZpZWxkIH0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSwgZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgZmllbGRUb1NjaGVtYU1hcCBmcm9tICcuL2ZpZWxkVG9XaGVyZUlucHV0U2NoZW1hTWFwJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGZpZWxkOiBGaWVsZFdpdGhTdWJGaWVsZHMgfCBUYWJzRmllbGRcbiAgbmVzdGVkRmllbGROYW1lMjogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmNvbnN0IHJlY3Vyc2l2ZWx5QnVpbGROZXN0ZWRQYXRocyA9ICh7IGZpZWxkLCBuZXN0ZWRGaWVsZE5hbWUyLCBwYXJlbnROYW1lLCBwYXlsb2FkIH06IEFyZ3MpID0+IHtcbiAgY29uc3QgZmllbGROYW1lID0gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBmaWVsZC5uYW1lIDogdW5kZWZpbmVkXG4gIGNvbnN0IG5lc3RlZEZpZWxkTmFtZSA9IGZpZWxkTmFtZSB8fCBuZXN0ZWRGaWVsZE5hbWUyXG5cbiAgaWYgKGZpZWxkLnR5cGUgPT09ICd0YWJzJykge1xuICAgIC8vIGlmIHRoZSB0YWIgaGFzIGEgbmFtZSwgdHJlYXQgaXQgYXMgYSBncm91cFxuICAgIC8vIG90aGVyd2lzZSwgdHJlYXQgaXQgYXMgYSByb3dcbiAgICByZXR1cm4gZmllbGQudGFicy5yZWR1Y2UoKHRhYlNjaGVtYSwgdGFiOiBhbnkpID0+IHtcbiAgICAgIHRhYlNjaGVtYS5wdXNoKFxuICAgICAgICAuLi5yZWN1cnNpdmVseUJ1aWxkTmVzdGVkUGF0aHMoe1xuICAgICAgICAgIGZpZWxkOiB7XG4gICAgICAgICAgICAuLi50YWIsXG4gICAgICAgICAgICB0eXBlOiAnbmFtZScgaW4gdGFiID8gJ2dyb3VwJyA6ICdyb3cnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbmVzdGVkRmllbGROYW1lMjogbmVzdGVkRmllbGROYW1lLFxuICAgICAgICAgIHBhcmVudE5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICByZXR1cm4gdGFiU2NoZW1hXG4gICAgfSwgW10pXG4gIH1cblxuICBjb25zdCBuZXN0ZWRQYXRocyA9IGZpZWxkLmZpZWxkcy5yZWR1Y2UoKG5lc3RlZEZpZWxkcywgbmVzdGVkRmllbGQpID0+IHtcbiAgICBpZiAoIWZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkobmVzdGVkRmllbGQpKSB7XG4gICAgICBpZiAoIWZpZWxkQWZmZWN0c0RhdGEobmVzdGVkRmllbGQpKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4ubmVzdGVkRmllbGRzLFxuICAgICAgICAgIC4uLnJlY3Vyc2l2ZWx5QnVpbGROZXN0ZWRQYXRocyh7XG4gICAgICAgICAgICBmaWVsZDogbmVzdGVkRmllbGQsXG4gICAgICAgICAgICBuZXN0ZWRGaWVsZE5hbWUyOiBuZXN0ZWRGaWVsZE5hbWUsXG4gICAgICAgICAgICBwYXJlbnROYW1lLFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXVxuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXN0ZWRQYXRoTmFtZSA9IGZpZWxkQWZmZWN0c0RhdGEobmVzdGVkRmllbGQpXG4gICAgICAgID8gYCR7bmVzdGVkRmllbGROYW1lID8gYCR7bmVzdGVkRmllbGROYW1lfV9fYCA6ICcnfSR7bmVzdGVkRmllbGQubmFtZX1gXG4gICAgICAgIDogdW5kZWZpbmVkXG4gICAgICBjb25zdCBnZXRGaWVsZFNjaGVtYSA9IGZpZWxkVG9TY2hlbWFNYXAoe1xuICAgICAgICBuZXN0ZWRGaWVsZE5hbWUsXG4gICAgICAgIHBhcmVudE5hbWUsXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KVtuZXN0ZWRGaWVsZC50eXBlXVxuXG4gICAgICBpZiAoZ2V0RmllbGRTY2hlbWEpIHtcbiAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSBnZXRGaWVsZFNjaGVtYSh7XG4gICAgICAgICAgLi4ubmVzdGVkRmllbGQsXG4gICAgICAgICAgbmFtZTogbmVzdGVkUGF0aE5hbWUsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRTY2hlbWEpKSB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5uZXN0ZWRGaWVsZHMsIC4uLmZpZWxkU2NoZW1hXVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5uZXN0ZWRGaWVsZHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAga2V5OiBuZXN0ZWRQYXRoTmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkU2NoZW1hLFxuICAgICAgICAgIH0sXG4gICAgICAgIF1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmVzdGVkRmllbGRzXG4gIH0sIFtdKVxuXG4gIHJldHVybiBuZXN0ZWRQYXRoc1xufVxuXG5leHBvcnQgZGVmYXVsdCByZWN1cnNpdmVseUJ1aWxkTmVzdGVkUGF0aHNcbiJdLCJuYW1lcyI6WyJyZWN1cnNpdmVseUJ1aWxkTmVzdGVkUGF0aHMiLCJmaWVsZCIsIm5lc3RlZEZpZWxkTmFtZTIiLCJwYXJlbnROYW1lIiwicGF5bG9hZCIsImZpZWxkTmFtZSIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwidW5kZWZpbmVkIiwibmVzdGVkRmllbGROYW1lIiwidHlwZSIsInRhYnMiLCJyZWR1Y2UiLCJ0YWJTY2hlbWEiLCJ0YWIiLCJwdXNoIiwibmVzdGVkUGF0aHMiLCJmaWVsZHMiLCJuZXN0ZWRGaWVsZHMiLCJuZXN0ZWRGaWVsZCIsImZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkiLCJuZXN0ZWRQYXRoTmFtZSIsImdldEZpZWxkU2NoZW1hIiwiZmllbGRUb1NjaGVtYU1hcCIsImZpZWxkU2NoZW1hIiwiQXJyYXkiLCJpc0FycmF5Iiwia2V5Il0sIm1hcHBpbmdzIjoiOzs7OytCQXFGQTs7O2VBQUE7Ozt1QkFsRjREO21GQUMvQjs7Ozs7O0FBUzdCLE1BQU1BLDhCQUE4QixDQUFDLEVBQUVDLEtBQUssRUFBRUMsZ0JBQWdCLEVBQUVDLFVBQVUsRUFBRUMsT0FBTyxFQUFRO0lBQ3pGLE1BQU1DLFlBQVlDLElBQUFBLHVCQUFnQixFQUFDTCxTQUFTQSxNQUFNTSxJQUFJLEdBQUdDO0lBQ3pELE1BQU1DLGtCQUFrQkosYUFBYUg7SUFFckMsSUFBSUQsTUFBTVMsSUFBSSxLQUFLLFFBQVE7UUFDekIsNkNBQTZDO1FBQzdDLCtCQUErQjtRQUMvQixPQUFPVCxNQUFNVSxJQUFJLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxXQUFXQztZQUNuQ0QsVUFBVUUsSUFBSSxJQUNUZiw0QkFBNEI7Z0JBQzdCQyxPQUFPO29CQUNMLEdBQUdhLEdBQUc7b0JBQ05KLE1BQU0sVUFBVUksTUFBTSxVQUFVO2dCQUNsQztnQkFDQVosa0JBQWtCTztnQkFDbEJOO2dCQUNBQztZQUNGO1lBRUYsT0FBT1M7UUFDVCxHQUFHLEVBQUU7SUFDUDtJQUVBLE1BQU1HLGNBQWNmLE1BQU1nQixNQUFNLENBQUNMLE1BQU0sQ0FBQyxDQUFDTSxjQUFjQztRQUNyRCxJQUFJLENBQUNDLElBQUFBLGdDQUF5QixFQUFDRCxjQUFjO1lBQzNDLElBQUksQ0FBQ2IsSUFBQUEsdUJBQWdCLEVBQUNhLGNBQWM7Z0JBQ2xDLE9BQU87dUJBQ0ZEO3VCQUNBbEIsNEJBQTRCO3dCQUM3QkMsT0FBT2tCO3dCQUNQakIsa0JBQWtCTzt3QkFDbEJOO3dCQUNBQztvQkFDRjtpQkFDRDtZQUNIO1lBRUEsTUFBTWlCLGlCQUFpQmYsSUFBQUEsdUJBQWdCLEVBQUNhLGVBQ3BDLENBQUMsRUFBRVYsa0JBQWtCLENBQUMsRUFBRUEsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRVUsWUFBWVosSUFBSSxDQUFDLENBQUMsR0FDckVDO1lBQ0osTUFBTWMsaUJBQWlCQyxJQUFBQSxtQ0FBZ0IsRUFBQztnQkFDdENkO2dCQUNBTjtnQkFDQUM7WUFDRixFQUFFLENBQUNlLFlBQVlULElBQUksQ0FBQztZQUVwQixJQUFJWSxnQkFBZ0I7Z0JBQ2xCLE1BQU1FLGNBQWNGLGVBQWU7b0JBQ2pDLEdBQUdILFdBQVc7b0JBQ2RaLE1BQU1jO2dCQUNSO2dCQUVBLElBQUlJLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBYztvQkFDOUIsT0FBTzsyQkFBSU47MkJBQWlCTTtxQkFBWTtnQkFDMUM7Z0JBRUEsT0FBTzt1QkFDRk47b0JBQ0g7d0JBQ0VTLEtBQUtOO3dCQUNMWCxNQUFNYztvQkFDUjtpQkFDRDtZQUNIO1FBQ0Y7UUFFQSxPQUFPTjtJQUNULEdBQUcsRUFBRTtJQUVMLE9BQU9GO0FBQ1Q7TUFFQSxXQUFlaEIifQ==