UNPKG

@platform/state

Version:

A small, simple, strongly typed, [rx/observable] state-machine.

43 lines (42 loc) 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Patch = void 0; var tslib_1 = require("tslib"); var Patch = (function () { function Patch() { } Patch.toPatchSet = function (forward, backward) { return { prev: backward ? toPatches(backward) : [], next: forward ? toPatches(forward) : [], }; }; Patch.isEmpty = function (input) { if (input === null || typeof input !== 'object') { return true; } else { var isEmptyArray = function (input) { return (Array.isArray(input) ? input.length === 0 : true); }; return isEmptyArray(input.prev) && isEmptyArray(input.next); } }; return Patch; }()); exports.Patch = Patch; var toPatch = function (input) { var hasForwardSlash = input.path.some(function (part) { return typeof part === 'string' ? part.includes('/') : false; }); if (hasForwardSlash) { var path = input.path .map(function (part) { return (typeof part === 'string' ? "'" + part + "'" : part); }) .join(','); var err = "Property names cannot contain the \"/\" character. op: '" + input.op + "' path: [" + path + "]"; throw new Error(err); } return tslib_1.__assign(tslib_1.__assign({}, input), { path: input.path.join('/') }); }; var toPatches = function (input) { var patches = Array.isArray(input) ? input : [input]; return patches.filter(function (p) { return Boolean(p); }).map(function (p) { return toPatch(p); }); };