Compare commits

..

1 Commits

Author SHA1 Message Date
1b6fe42f78 Added delta functions
Some checks failed
Build / Build NPM Project (push) Successful in 42s
Build / Publish Documentation (push) Failing after 4s
Build / Tag Version (push) Successful in 8s
2025-07-30 14:34:59 -04:00
2 changed files with 4 additions and 4 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "@ztimson/utils", "name": "@ztimson/utils",
"version": "0.26.24", "version": "0.26.25",
"description": "Utility library", "description": "Utility library",
"author": "Zak Timson", "author": "Zak Timson",
"license": "MIT", "license": "MIT",

View File

@ -1,4 +1,4 @@
type Delta = { [key: string]: any | Delta | null }; export type Delta = { [key: string]: any | Delta | null };
/** /**
* Applies deltas in order to modify `target`. * Applies deltas in order to modify `target`.
@ -6,7 +6,7 @@ type Delta = { [key: string]: any | Delta | null };
* @param deltas - List of deltas to apply * @param deltas - List of deltas to apply
* @returns Mutated target * @returns Mutated target
*/ */
function applyDeltas(target: any, deltas: Delta[]): any { export function applyDeltas(target: any, deltas: Delta[]): any {
for(const delta of deltas) { for(const delta of deltas) {
for(const [key, value] of Object.entries(delta)) { for(const [key, value] of Object.entries(delta)) {
if(value === null) { if(value === null) {
@ -30,7 +30,7 @@ function applyDeltas(target: any, deltas: Delta[]): any {
* @param target - Modified object * @param target - Modified object
* @returns Delta to revert changes * @returns Delta to revert changes
*/ */
function calcDelta(old: any, target: any): Delta { export function calcDelta(old: any, target: any): Delta {
const delta: Delta = {}; const delta: Delta = {};
const keys = new Set([...Object.keys(old || {}), ...Object.keys(target || {})]); const keys = new Set([...Object.keys(old || {}), ...Object.keys(target || {})]);
for(const key of keys) { for(const key of keys) {