diff options
Diffstat (limited to 'node_modules/svelte/src/runtime/internal/spread.js')
| -rw-r--r-- | node_modules/svelte/src/runtime/internal/spread.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/svelte/src/runtime/internal/spread.js b/node_modules/svelte/src/runtime/internal/spread.js new file mode 100644 index 0000000..6a9c336 --- /dev/null +++ b/node_modules/svelte/src/runtime/internal/spread.js @@ -0,0 +1,35 @@ +/** @returns {{}} */ +export function get_spread_update(levels, updates) { + const update = {}; + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + if (n) { + for (const key in o) { + if (!(key in n)) to_null_out[key] = 1; + } + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + levels[i] = n; + } else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + for (const key in to_null_out) { + if (!(key in update)) update[key] = undefined; + } + return update; +} + +export function get_spread_object(spread_props) { + return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; +} |
