UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

88 lines (87 loc) 8.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const reducer = (state, action)=>{ const newState = [ ...state ]; const { andIndex, orIndex } = action; switch(action.type){ case 'add': { const { field, relation } = action; if (relation === 'and') { newState[orIndex].and.splice(andIndex, 0, { [field]: {} }); return newState; } return [ ...newState, { and: [ { [field]: {} } ] } ]; } case 'remove': { newState[orIndex].and.splice(andIndex, 1); if (newState[orIndex].and.length === 0) { newState.splice(orIndex, 1); } return newState; } case 'update': { const { field, operator, value } = action; if (typeof newState[orIndex].and[andIndex] === 'object') { newState[orIndex].and[andIndex] = { ...newState[orIndex].and[andIndex] }; const [existingFieldName, existingCondition] = Object.entries(newState[orIndex].and[andIndex])[0] || [ undefined, undefined ]; if (operator) { newState[orIndex].and[andIndex] = { [existingFieldName]: { [operator]: Object.values(existingCondition)[0] } }; } if (field) { newState[orIndex].and[andIndex] = { [field]: operator ? { [operator]: value } : {} }; } if (value !== undefined) { newState[orIndex].and[andIndex] = { [existingFieldName]: Object.keys(existingCondition)[0] ? { [Object.keys(existingCondition)[0]]: value } : {} }; } } return newState; } default: { return newState; } } }; const _default = reducer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9yZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgV2hlcmUgfSBmcm9tICcuLi8uLi8uLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQWN0aW9uIH0gZnJvbSAnLi90eXBlcydcblxuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogV2hlcmVbXSwgYWN0aW9uOiBBY3Rpb24pOiBXaGVyZVtdID0+IHtcbiAgY29uc3QgbmV3U3RhdGUgPSBbLi4uc3RhdGVdXG5cbiAgY29uc3QgeyBhbmRJbmRleCwgb3JJbmRleCB9ID0gYWN0aW9uXG5cbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ2FkZCc6IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIHJlbGF0aW9uIH0gPSBhY3Rpb25cblxuICAgICAgaWYgKHJlbGF0aW9uID09PSAnYW5kJykge1xuICAgICAgICBuZXdTdGF0ZVtvckluZGV4XS5hbmQuc3BsaWNlKGFuZEluZGV4LCAwLCB7IFtmaWVsZF06IHt9IH0pXG4gICAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgICAge1xuICAgICAgICAgIGFuZDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBbZmllbGRdOiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG5cbiAgICBjYXNlICdyZW1vdmUnOiB7XG4gICAgICBuZXdTdGF0ZVtvckluZGV4XS5hbmQuc3BsaWNlKGFuZEluZGV4LCAxKVxuXG4gICAgICBpZiAobmV3U3RhdGVbb3JJbmRleF0uYW5kLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBuZXdTdGF0ZS5zcGxpY2Uob3JJbmRleCwgMSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAndXBkYXRlJzoge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb3BlcmF0b3IsIHZhbHVlIH0gPSBhY3Rpb25cblxuICAgICAgaWYgKHR5cGVvZiBuZXdTdGF0ZVtvckluZGV4XS5hbmRbYW5kSW5kZXhdID09PSAnb2JqZWN0Jykge1xuICAgICAgICBuZXdTdGF0ZVtvckluZGV4XS5hbmRbYW5kSW5kZXhdID0ge1xuICAgICAgICAgIC4uLm5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0sXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBbZXhpc3RpbmdGaWVsZE5hbWUsIGV4aXN0aW5nQ29uZGl0aW9uXSA9IE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0sXG4gICAgICAgIClbMF0gfHwgW3VuZGVmaW5lZCwgdW5kZWZpbmVkXVxuXG4gICAgICAgIGlmIChvcGVyYXRvcikge1xuICAgICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0gPSB7XG4gICAgICAgICAgICBbZXhpc3RpbmdGaWVsZE5hbWVdOiB7XG4gICAgICAgICAgICAgIFtvcGVyYXRvcl06IE9iamVjdC52YWx1ZXMoZXhpc3RpbmdDb25kaXRpb24pWzBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICBuZXdTdGF0ZVtvckluZGV4XS5hbmRbYW5kSW5kZXhdID0ge1xuICAgICAgICAgICAgW2ZpZWxkXTogb3BlcmF0b3IgPyB7IFtvcGVyYXRvcl06IHZhbHVlIH0gOiB7fSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG5ld1N0YXRlW29ySW5kZXhdLmFuZFthbmRJbmRleF0gPSB7XG4gICAgICAgICAgICBbZXhpc3RpbmdGaWVsZE5hbWVdOiBPYmplY3Qua2V5cyhleGlzdGluZ0NvbmRpdGlvbilbMF1cbiAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICBbT2JqZWN0LmtleXMoZXhpc3RpbmdDb25kaXRpb24pWzBdXTogdmFsdWUsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHt9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgcmVkdWNlclxuIl0sIm5hbWVzIjpbInJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsIm5ld1N0YXRlIiwiYW5kSW5kZXgiLCJvckluZGV4IiwidHlwZSIsImZpZWxkIiwicmVsYXRpb24iLCJhbmQiLCJzcGxpY2UiLCJsZW5ndGgiLCJvcGVyYXRvciIsInZhbHVlIiwiZXhpc3RpbmdGaWVsZE5hbWUiLCJleGlzdGluZ0NvbmRpdGlvbiIsIk9iamVjdCIsImVudHJpZXMiLCJ1bmRlZmluZWQiLCJ2YWx1ZXMiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7OytCQXFGQTs7O2VBQUE7OztBQWxGQSxNQUFNQSxVQUFVLENBQUNDLE9BQWdCQztJQUMvQixNQUFNQyxXQUFXO1dBQUlGO0tBQU07SUFFM0IsTUFBTSxFQUFFRyxRQUFRLEVBQUVDLE9BQU8sRUFBRSxHQUFHSDtJQUU5QixPQUFRQSxPQUFPSSxJQUFJO1FBQ2pCLEtBQUs7WUFBTztnQkFDVixNQUFNLEVBQUVDLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdOO2dCQUU1QixJQUFJTSxhQUFhLE9BQU87b0JBQ3RCTCxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDQyxNQUFNLENBQUNOLFVBQVUsR0FBRzt3QkFBRSxDQUFDRyxNQUFNLEVBQUUsQ0FBQztvQkFBRTtvQkFDeEQsT0FBT0o7Z0JBQ1Q7Z0JBRUEsT0FBTzt1QkFDRkE7b0JBQ0g7d0JBQ0VNLEtBQUs7NEJBQ0g7Z0NBQ0UsQ0FBQ0YsTUFBTSxFQUFFLENBQUM7NEJBQ1o7eUJBQ0Q7b0JBQ0g7aUJBQ0Q7WUFDSDtRQUVBLEtBQUs7WUFBVTtnQkFDYkosUUFBUSxDQUFDRSxRQUFRLENBQUNJLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDTixVQUFVO2dCQUV2QyxJQUFJRCxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDRSxNQUFNLEtBQUssR0FBRztvQkFDdENSLFNBQVNPLE1BQU0sQ0FBQ0wsU0FBUztnQkFDM0I7Z0JBRUEsT0FBT0Y7WUFDVDtRQUVBLEtBQUs7WUFBVTtnQkFDYixNQUFNLEVBQUVJLEtBQUssRUFBRUssUUFBUSxFQUFFQyxLQUFLLEVBQUUsR0FBR1g7Z0JBRW5DLElBQUksT0FBT0MsUUFBUSxDQUFDRSxRQUFRLENBQUNJLEdBQUcsQ0FBQ0wsU0FBUyxLQUFLLFVBQVU7b0JBQ3ZERCxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLEdBQUc7d0JBQ2hDLEdBQUdELFFBQVEsQ0FBQ0UsUUFBUSxDQUFDSSxHQUFHLENBQUNMLFNBQVM7b0JBQ3BDO29CQUVBLE1BQU0sQ0FBQ1UsbUJBQW1CQyxrQkFBa0IsR0FBR0MsT0FBT0MsT0FBTyxDQUMzRGQsUUFBUSxDQUFDRSxRQUFRLENBQUNJLEdBQUcsQ0FBQ0wsU0FBUyxDQUNoQyxDQUFDLEVBQUUsSUFBSTt3QkFBQ2M7d0JBQVdBO3FCQUFVO29CQUU5QixJQUFJTixVQUFVO3dCQUNaVCxRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLEdBQUc7NEJBQ2hDLENBQUNVLGtCQUFrQixFQUFFO2dDQUNuQixDQUFDRixTQUFTLEVBQUVJLE9BQU9HLE1BQU0sQ0FBQ0osa0JBQWtCLENBQUMsRUFBRTs0QkFDakQ7d0JBQ0Y7b0JBQ0Y7b0JBRUEsSUFBSVIsT0FBTzt3QkFDVEosUUFBUSxDQUFDRSxRQUFRLENBQUNJLEdBQUcsQ0FBQ0wsU0FBUyxHQUFHOzRCQUNoQyxDQUFDRyxNQUFNLEVBQUVLLFdBQVc7Z0NBQUUsQ0FBQ0EsU0FBUyxFQUFFQzs0QkFBTSxJQUFJLENBQUM7d0JBQy9DO29CQUNGO29CQUVBLElBQUlBLFVBQVVLLFdBQVc7d0JBQ3ZCZixRQUFRLENBQUNFLFFBQVEsQ0FBQ0ksR0FBRyxDQUFDTCxTQUFTLEdBQUc7NEJBQ2hDLENBQUNVLGtCQUFrQixFQUFFRSxPQUFPSSxJQUFJLENBQUNMLGtCQUFrQixDQUFDLEVBQUUsR0FDbEQ7Z0NBQ0UsQ0FBQ0MsT0FBT0ksSUFBSSxDQUFDTCxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRUY7NEJBQ3ZDLElBQ0EsQ0FBQzt3QkFDUDtvQkFDRjtnQkFDRjtnQkFFQSxPQUFPVjtZQUNUO1FBRUE7WUFBUztnQkFDUCxPQUFPQTtZQUNUO0lBQ0Y7QUFDRjtNQUVBLFdBQWVIIn0=