@domql/state 2.5.22 → 2.5.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/create.js CHANGED
@@ -3,7 +3,7 @@
3
3
  import { triggerEventOn } from '@domql/event'
4
4
  import { deepClone, exec, is, isArray, isFunction, isObject, isUndefined } from '@domql/utils'
5
5
  import { IGNORE_STATE_PARAMS } from './ignore'
6
- import { add, apply, clean, destroy, parentUpdate, parse, remove, rootUpdate, set, toggle } from './methods'
6
+ import { add, apply, clean, destroy, parentUpdate, parse, remove, rootUpdate, set, reset, toggle } from './methods'
7
7
  import { updateState } from './updateState'
8
8
  import { checkIfInherits, createInheritedState } from './inherit'
9
9
 
@@ -95,6 +95,7 @@ const applyMethods = (element) => {
95
95
  remove: remove.bind(state),
96
96
  apply: apply.bind(state),
97
97
  set: set.bind(state),
98
+ reset: reset.bind(state),
98
99
  parent: element.parent.state,
99
100
  __element: element,
100
101
  __children: {},
@@ -108,6 +108,7 @@ const applyMethods = (element) => {
108
108
  remove: import_methods.remove.bind(state),
109
109
  apply: import_methods.apply.bind(state),
110
110
  set: import_methods.set.bind(state),
111
+ reset: import_methods.reset.bind(state),
111
112
  parent: element.parent.state,
112
113
  __element: element,
113
114
  __children: {},
@@ -32,6 +32,7 @@ const IGNORE_STATE_PARAMS = [
32
32
  "remove",
33
33
  "apply",
34
34
  "set",
35
+ "reset",
35
36
  "rootUpdate",
36
37
  "parentUpdate",
37
38
  "parent",
@@ -25,6 +25,7 @@ __export(methods_exports, {
25
25
  parentUpdate: () => parentUpdate,
26
26
  parse: () => parse,
27
27
  remove: () => remove,
28
+ reset: () => reset,
28
29
  rootUpdate: () => rootUpdate,
29
30
  set: () => set,
30
31
  toggle: () => toggle
@@ -54,7 +55,7 @@ const clean = function(options = {}) {
54
55
  }
55
56
  }
56
57
  if (!options.preventStateUpdate) {
57
- state.update(state, { replace: true, options });
58
+ state.update(state, { replace: true, ...options });
58
59
  }
59
60
  return state;
60
61
  };
@@ -129,14 +130,20 @@ const remove = function(key, options = {}) {
129
130
  (0, import_utils.removeFromObject)(state, key);
130
131
  return state.update(state.parse(), { replace: true, ...options });
131
132
  };
132
- const set = function(value, options = {}) {
133
+ const set = function(val, options = {}) {
133
134
  const state = this;
134
- return state.clean({ preventStateUpdate: true }).update(value, { replace: true, ...options });
135
+ const value = (0, import_utils.deepClone)(val);
136
+ return state.clean({ preventStateUpdate: true, ...options }).update(value, { replace: true, ...options });
137
+ };
138
+ const reset = function(options = {}) {
139
+ const state = this;
140
+ const value = (0, import_utils.deepClone)(state.parse());
141
+ return state.set(value, { replace: true, ...options });
135
142
  };
136
143
  const apply = function(func, options = {}) {
137
144
  const state = this;
138
145
  if ((0, import_utils.isFunction)(func)) {
139
146
  func(state);
140
- return state.update(state, { replace: true, ...options });
147
+ return state.update(state.parse(), { replace: true, ...options });
141
148
  }
142
149
  };
package/ignore.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
3
  export const IGNORE_STATE_PARAMS = [
4
- 'update', 'parse', 'clean', 'create', 'destroy', 'add', 'toggle', 'remove', 'apply', 'set',
4
+ 'update', 'parse', 'clean', 'create', 'destroy', 'add', 'toggle', 'remove', 'apply', 'set', 'reset',
5
5
  'rootUpdate', 'parentUpdate', 'parent', '__element', '__depends', '__ref', '__children', '__root'
6
6
  ]
package/methods.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { isArray, isFunction, isObject, isString, removeFromArray, removeFromObject } from '@domql/utils'
3
+ import { isArray, deepClone, isFunction, isObject, isString, removeFromArray, removeFromObject } from '@domql/utils'
4
4
 
5
5
  import { IGNORE_STATE_PARAMS } from './ignore'
6
6
 
@@ -27,7 +27,7 @@ export const clean = function (options = {}) {
27
27
  }
28
28
  }
29
29
  if (!options.preventStateUpdate) {
30
- state.update(state, { replace: true, options })
30
+ state.update(state, { replace: true, ...options })
31
31
  }
32
32
  return state
33
33
  }
@@ -107,16 +107,23 @@ export const remove = function (key, options = {}) {
107
107
  return state.update(state.parse(), { replace: true, ...options })
108
108
  }
109
109
 
110
- export const set = function (value, options = {}) {
110
+ export const set = function (val, options = {}) {
111
111
  const state = this
112
- return state.clean({ preventStateUpdate: true })
112
+ const value = deepClone(val)
113
+ return state.clean({ preventStateUpdate: true, ...options })
113
114
  .update(value, { replace: true, ...options })
114
115
  }
115
116
 
117
+ export const reset = function (options = {}) {
118
+ const state = this
119
+ const value = deepClone(state.parse())
120
+ return state.set(value, { replace: true, ...options })
121
+ }
122
+
116
123
  export const apply = function (func, options = {}) {
117
124
  const state = this
118
125
  if (isFunction(func)) {
119
126
  func(state)
120
- return state.update(state, { replace: true, ...options })
127
+ return state.update(state.parse(), { replace: true, ...options })
121
128
  }
122
129
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/state",
3
- "version": "2.5.22",
3
+ "version": "2.5.27",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "dist/esm/index.js",
@@ -31,5 +31,5 @@
31
31
  "@domql/report": "latest",
32
32
  "@domql/utils": "latest"
33
33
  },
34
- "gitHead": "231fe90e14adace5408e9f5def451463ec1430ae"
34
+ "gitHead": "057e4e261ea9c9e6bd8da2fe8c2a4ad724dd26c6"
35
35
  }