UNPKG

@lyra/form-builder

Version:
47 lines (32 loc) 1.78 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); exports.toSaga = toSaga; exports.toFormBuilder = toFormBuilder; var _mutator = require('@lyra/mutator'); /*:: import type {Path, PathSegment} from '../../typedefs/path'*/ const IS_NUMERIC = /^\d+$/; function unquote(str) { return str.replace(/^['"]/, '').replace(/['"]$/, ''); } function splitAttr(segment) { var _segment$split = segment.split('=='), _segment$split2 = _slicedToArray(_segment$split, 2); const attr = _segment$split2[0], key = _segment$split2[1]; return { [attr]: unquote(key) }; } function coerce(segment /*: string*/) /*: PathSegment*/ { return IS_NUMERIC.test(segment) ? Number(segment) : segment; } function parseSagaPath(focusPathStr) /*: Path*/ { return focusPathStr.split(/[[.\]]/g).filter(Boolean).map(seg => seg.includes('==') ? splitAttr(seg) : coerce(seg)); } function toSaga(formBuilderPath /*: Path*/) /*: string*/ { return (0, _mutator.arrayToJSONMatchPath)(formBuilderPath); } function toFormBuilder(sagaPath /*: string*/) { return parseSagaPath(sagaPath); }