app-base-react
Version:
react development common base package.
1 lines • 4.56 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.validateAll=exports.validateField=exports.parseSchemaExpression=void 0;var _asyncValidator=require("async-validator"),_asyncValidator2=_interopRequireDefault(_asyncValidator),_lodash=require("lodash"),_utils=require("./utils"),_validateMessage=require("./validateMessage"),_validateMessageCN=require("./validateMessageCN"),_void=require("./void");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _toConsumableArray(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)}var parseSchemaExpression=exports.parseSchemaExpression=function r(a,n,i){var s;return(0,_utils.isObject)(a)?(s={},Object.keys(a).forEach(function(e){var t=a[e];(0,_utils.isObject)(t)?s[e]=r(t,n,i):(0,_utils.isExpression)(t)?s[e]=(0,_utils.parseSingleExpression)(t,n,i):s[e]=t}),s):a},getRelatedPaths=function(e,a){for(var t=[],r=e.split(".");0<r.length;)t.push(r.join(".")),r.pop();var n=[].concat(t);return t.forEach(function(e){var e=(0,_utils.destructDataPath)(e),t=e.id,r=e.dataIndex;a[t]&&a[t].schema&&Array.isArray(a[t].schema.dependecies)&&(e=a[t].schema.dependecies.map(function(e){return(0,_utils.getDataPath)(e,r)}),n=[].concat(_toConsumableArray(n),_toConsumableArray(e)))}),(0,_utils.removeDups)(n).map(function(e){return"]"===e.slice(-1)?e.replace(/\[[0-9]+\]$/,""):e})},validateField=exports.validateField=function(e){var t=e.path,a=e.formData,n=e.flatten,i=e.options,e=e.formInstance,s=void 0===e?{}:e,e=getRelatedPaths(t,n),n=(0,_void.getRealDataFlatten)(n),t=e.map(function(e){var t=(0,_utils.destructDataPath)(e),r=t.id;t.dataIndex;return n[r]||n[r+"[]"]?(t=n[r]||n[r+"[]"],r=(0,_lodash.get)(a,e),t=t.schema||{},t=parseSchemaExpression(t,a,e),validateSingle(r,t,e,i,s)):Promise.resolve()});return(0,_utils.allPromiseFinish)(t).then(function(e){return e.filter(function(e){return Array.isArray(e)&&0<e.length}).map(function(e){return{name:e[0].field,error:e.map(function(e){return e.message}).filter(function(e){return!!e})}})}).catch(function(e){console.log(e)})},getAllPaths=function(e,a){var t,n,i;return Array.isArray(e)?(t=[].concat(_toConsumableArray(e)).filter(function(e){return-1<e.indexOf("]")}).map(function(e){var t=e.lastIndexOf("]");return e.substring(0,t+1)}),t=(0,_utils.removeDups)(t),n=Object.keys(a),i=[].concat(_toConsumableArray(e)),t.forEach(function(e){var e=(0,_utils.destructDataPath)(e),t=e.id,r=e.dataIndex;a[t]&&(e=n.filter(function(e){return 0===e.indexOf(t)&&e!==t}).map(function(e){return(0,_utils.getDataPath)(e,r).split("[]")[0]}).filter(function(e){return!!e}),i=[].concat(_toConsumableArray(i),_toConsumableArray((0,_utils.removeDups)(e))))}),(0,_utils.removeDups)(i)):[]},validateAll=exports.validateAll=function(e){var n=e.formData,i=e.flatten,s=e.options,e=e.formInstance,l=void 0===e?{}:e,e=(0,_utils.dataToKeys)(n),e=getAllPaths(e,i).map(function(e){var t,r=(0,_utils.destructDataPath)(e),a=r.id;r.dataIndex;return i[a]||i[a+"[]"]?(r=i[a]||i[a+"[]"],a=(0,_lodash.get)(n,e),r=r.schema||{},1<(t=getRelatedPaths(e,i)).length&&(t=t[t.length-1],t=i[t]||{},(0,_lodash.get)(t,"schema.hidden",!1))&&(r.hidden=!0),t=parseSchemaExpression(r,n,e),validateSingle(a,t,e,s,l)):Promise.resolve()});return(0,_utils.allPromiseFinish)(e).then(function(e){return e.filter(function(e){return Array.isArray(e)&&0<e.length&&null!==e[0].message}).map(function(e){return{name:e[0].field,error:e.map(function(e){return e.message}).filter(function(e){return!!e})}})}).catch(function(e){console.log(e)})},validateSingle=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2],a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},n=4<arguments.length&&void 0!==arguments[4]?arguments[4]:{};if("block"===t.type)return Promise.resolve();if(t.hidden)return Promise.resolve();var i=a.validateMessages,i=void 0===i?{}:i,a=a.locale,a=void 0===a?"cn":a,s=_validateMessageCN.defaultValidateMessagesCN,l=_validateMessage.defaultValidateMessages,t=(0,_utils.getDescriptorSimple)(t,r),o=void 0;try{o=new _asyncValidator2.default(t)}catch(e){return Promise.resolve()}n.setFieldValidating(r);t="en"===a?l:s;return(0,_lodash.merge)(t,i),o.messages(t),o.validate(_defineProperty({},r,e)).then(function(e){return[{field:r,message:null}]}).catch(function(e){var t=e.errors;e.fields;return t}).finally(function(){n.removeFieldValidating(r)})};