@lyra/form-builder
Version:
Lyra form builder
47 lines (36 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.dec = exports.inc = exports.insert = exports.setIfMissing = exports.unset = exports.set = exports.PatchEvent = undefined;
var _flatten2 = require('lodash/flatten');
var _flatten3 = _interopRequireDefault(_flatten2);
var _patches = require('./utils/patches');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*:: import type {PathSegment, Patch} from './utils/patches'*/
/*:: type PatchArg = Patch | Array<Patch>*/
class PatchEvent {
static from(...patches /*: Array<PatchArg>*/) {
return new PatchEvent((0, _flatten3.default)(patches));
}
constructor(patches /*: Array<Patch>*/) {
this.patches = patches;
}
prepend(...patches /*: Array<PatchArg>*/) /*: PatchEvent*/ {
return PatchEvent.from([...(0, _flatten3.default)(patches), ...this.patches]);
}
append(...patches /*: Array<PatchArg>*/) /*: PatchEvent*/ {
return PatchEvent.from([...this.patches, ...(0, _flatten3.default)(patches)]);
}
prefixAll(segment /*: PathSegment*/) /*: PatchEvent*/ {
return PatchEvent.from(this.patches.map(patch => (0, _patches.prefixPath)(patch, segment)));
}
}
exports.default = PatchEvent;
exports.PatchEvent = PatchEvent;
exports.set = _patches.set;
exports.unset = _patches.unset;
exports.setIfMissing = _patches.setIfMissing;
exports.insert = _patches.insert;
exports.inc = _patches.inc;
exports.dec = _patches.dec;