UNPKG

apollo-form

Version:
154 lines (153 loc) 4.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const isDate_1 = __importDefault(require("lodash/isDate")); const query_1 = __importDefault(require("../managers/ApolloManager/query")); exports.makeApolloFormQuery = query_1.default; function replaceErrors(target, source, value) { for (const key of Object.keys(source)) { if (typeof source[key] === 'object' && source[key] !== null && !isDate_1.default(value)) { if (Array.isArray(source[key])) { if (source[key][1] !== null && source[key][1] !== undefined) { if (typeof target[key] !== 'object' || target[key] === null) { target[key] = {}; } let t = Array.isArray(target[key]) ? target[key][1] : target[key]; target[key] = [true, replaceErrors(t || {}, source[key][1], true)]; } } else { if (typeof target[key] !== 'object' || target[key] === null) { target[key] = {}; } if (source[key]) { target[key] = replaceErrors(target[key] || {}, source[key], true); } } } else { target[key] = value; } } return target; } exports.replaceErrors = replaceErrors; function firstError(state) { for (const k in state) { let item = state[k]; if (Array.isArray(state[k])) { item = state[k][1]; } if (typeof item === 'object' && !isDate_1.default(item)) { const err = firstError(item); if (err) { return err; } } else { return item; } } return undefined; } exports.firstError = firstError; function getDeepStatus(state, path) { const arr = path.split('.'); const last = arr[arr.length - 1]; let current = state; for (let i = 0; i < arr.length - 1; i++) { const key = arr[i]; if (typeof current[key] === 'undefined') { if (i === arr.length - 1) { current[key] = {}; } else { current[key] = [undefined, {}]; } } if (typeof current[key] === 'object') { if (Array.isArray(current[key])) { current = current[key][1]; } else { current = current[key]; } } else { current[key] = [current[key], {}]; } } if (typeof current === 'undefined') { return current; } if (typeof current[last] === 'object') { if (!Array.isArray(current[last])) { current[last] = [undefined, current[last]]; return undefined; } return current[last][0]; } return current[last]; } exports.getDeepStatus = getDeepStatus; function setDeepStatus(state, path, value) { const arr = path.split('.'); const last = arr[arr.length - 1]; let current = state; for (let i = 0; i < arr.length - 1; i++) { const key = arr[i]; if (typeof current[key] === 'undefined') { if (i === arr.length - 1) { current[key] = {}; } else { current[key] = [undefined, {}]; } } if (typeof current[key] === 'object') { if (Array.isArray(current[key])) { current = current[key][1]; } else { current = current[key]; } } else { const t = current[key]; current[key] = [t, {}]; current = current[key][1]; } } if (typeof current[last] === 'object') { if (!Array.isArray(current[last])) { current[last] = [value, current[last]]; } else { current[last][0] = value; } } else { current[last] = value; } return state; } exports.setDeepStatus = setDeepStatus; function blobToBase64(blob) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.onloadend = function () { const base64data = reader.result; if (typeof base64data === 'string') { resolve(base64data); } else { reject(new Error('Error parse')); } }; reader.readAsDataURL(blob); reader.onerror = () => reject(new Error('Error parse')); }); } exports.blobToBase64 = blobToBase64;