@domql/element 3.1.2 → 3.2.3

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.
Files changed (90) hide show
  1. package/README.md +4 -6
  2. package/__tests__/checkIfOnUpdate.test.js +12 -12
  3. package/__tests__/children.test.js +34 -38
  4. package/__tests__/inheritStateUpdates.test.js +12 -12
  5. package/__tests__/renderElement.test.js +11 -11
  6. package/__tests__/resetElement.test.js +6 -6
  7. package/__tests__/set.test.js +32 -36
  8. package/__tests__/throughExecProps.test.js +12 -12
  9. package/__tests__/throughInitialDefine.test.js +16 -16
  10. package/__tests__/throughInitialExec.test.js +16 -16
  11. package/__tests__/throughUpdatedDefine.test.js +14 -14
  12. package/__tests__/throughUpdatedExec.test.js +17 -16
  13. package/__tests__/update.test.js +54 -54
  14. package/children.js +5 -6
  15. package/create.js +18 -20
  16. package/dist/cjs/children.js +4 -2
  17. package/dist/cjs/create.js +16 -16
  18. package/dist/cjs/extend.js +88 -0
  19. package/dist/cjs/iterate.js +76 -20
  20. package/dist/cjs/mixins/content.js +73 -0
  21. package/dist/cjs/mixins/html.js +1 -1
  22. package/dist/cjs/mixins/registry.js +2 -2
  23. package/dist/cjs/mixins/scope.js +1 -1
  24. package/dist/cjs/mixins/state.js +2 -2
  25. package/dist/cjs/mixins/text.js +4 -4
  26. package/dist/cjs/node.js +15 -15
  27. package/dist/cjs/set.js +22 -27
  28. package/dist/cjs/update.js +24 -33
  29. package/dist/cjs/utils/applyParam.js +4 -4
  30. package/dist/cjs/utils/extendUtils.js +132 -0
  31. package/dist/cjs/utils/propEvents.js +39 -0
  32. package/dist/esm/children.js +5 -3
  33. package/dist/esm/create.js +16 -16
  34. package/dist/esm/extend.js +74 -0
  35. package/dist/esm/iterate.js +77 -22
  36. package/dist/esm/mixins/content.js +53 -0
  37. package/dist/esm/mixins/html.js +1 -1
  38. package/dist/esm/mixins/registry.js +1 -1
  39. package/dist/esm/mixins/scope.js +1 -1
  40. package/dist/esm/mixins/state.js +3 -3
  41. package/dist/esm/mixins/text.js +4 -4
  42. package/dist/esm/node.js +15 -15
  43. package/dist/esm/set.js +23 -28
  44. package/dist/esm/update.js +24 -33
  45. package/dist/esm/utils/applyParam.js +5 -5
  46. package/dist/esm/utils/extendUtils.js +119 -0
  47. package/dist/esm/utils/propEvents.js +19 -0
  48. package/extend.js +98 -0
  49. package/iterate.js +80 -25
  50. package/mixins/content.js +65 -0
  51. package/mixins/html.js +1 -1
  52. package/mixins/registry.js +1 -1
  53. package/mixins/scope.js +1 -1
  54. package/mixins/state.js +3 -3
  55. package/mixins/text.js +4 -4
  56. package/node.js +15 -15
  57. package/package.json +8 -8
  58. package/set.js +23 -28
  59. package/update.js +25 -34
  60. package/utils/applyParam.js +5 -5
  61. package/utils/extendUtils.js +149 -0
  62. package/utils/propEvents.js +19 -0
  63. package/dist/cjs/__tests__/checkIfOnUpdate.test.js +0 -73
  64. package/dist/cjs/__tests__/children.test.js +0 -177
  65. package/dist/cjs/__tests__/define.test.js +0 -75
  66. package/dist/cjs/__tests__/inheritStateUpdates.test.js +0 -62
  67. package/dist/cjs/__tests__/renderElement.test.js +0 -138
  68. package/dist/cjs/__tests__/resetElement.test.js +0 -35
  69. package/dist/cjs/__tests__/set.test.js +0 -256
  70. package/dist/cjs/__tests__/throughExecProps.test.js +0 -62
  71. package/dist/cjs/__tests__/throughInitialDefine.test.js +0 -79
  72. package/dist/cjs/__tests__/throughInitialExec.test.js +0 -73
  73. package/dist/cjs/__tests__/throughUpdatedDefine.test.js +0 -69
  74. package/dist/cjs/__tests__/throughUpdatedExec.test.js +0 -84
  75. package/dist/cjs/__tests__/tree.test.js +0 -11
  76. package/dist/cjs/__tests__/update.test.js +0 -222
  77. package/dist/esm/__tests__/checkIfOnUpdate.test.js +0 -73
  78. package/dist/esm/__tests__/children.test.js +0 -177
  79. package/dist/esm/__tests__/define.test.js +0 -53
  80. package/dist/esm/__tests__/inheritStateUpdates.test.js +0 -62
  81. package/dist/esm/__tests__/renderElement.test.js +0 -116
  82. package/dist/esm/__tests__/resetElement.test.js +0 -35
  83. package/dist/esm/__tests__/set.test.js +0 -256
  84. package/dist/esm/__tests__/throughExecProps.test.js +0 -62
  85. package/dist/esm/__tests__/throughInitialDefine.test.js +0 -79
  86. package/dist/esm/__tests__/throughInitialExec.test.js +0 -73
  87. package/dist/esm/__tests__/throughUpdatedDefine.test.js +0 -69
  88. package/dist/esm/__tests__/throughUpdatedExec.test.js +0 -84
  89. package/dist/esm/__tests__/tree.test.js +0 -11
  90. package/dist/esm/__tests__/update.test.js +0 -222
package/iterate.js CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  import {
4
4
  isObject,
5
- exec,
6
5
  isFunction,
7
6
  isNumber,
8
7
  isString,
@@ -10,17 +9,24 @@ import {
10
9
  isContextComponent,
11
10
  isMethod,
12
11
  overwrite,
13
- execPromise
12
+ exec
14
13
  } from '@domql/utils'
15
14
 
16
- export const throughInitialExec = async (element, exclude = {}) => {
15
+ export const throughInitialExec = (element, exclude = {}) => {
17
16
  const { __ref: ref } = element
18
17
  for (const param in element) {
19
18
  if (exclude[param]) continue
20
19
  const prop = element[param]
21
20
  if (isFunction(prop) && !isMethod(param, element)) {
22
21
  ref.__exec[param] = prop
23
- element[param] = await prop(element, element.state, element.context)
22
+ const result = prop(element, element.state, element.context)
23
+ if (result && typeof result.then === 'function') {
24
+ result.then(resolved => {
25
+ element[param] = resolved
26
+ })
27
+ } else {
28
+ element[param] = result
29
+ }
24
30
  }
25
31
  }
26
32
  }
@@ -36,6 +42,12 @@ export const throughUpdatedExec = (element, options = {}) => {
36
42
  if (isDefinedParam) continue
37
43
 
38
44
  const newExec = ref.__exec[param](element, element.state, element.context)
45
+ if (newExec && typeof newExec.then === 'function') {
46
+ newExec.then(resolved => {
47
+ element[param] = resolved
48
+ })
49
+ continue
50
+ }
39
51
  const execReturnsString = isString(newExec) || isNumber(newExec)
40
52
  // if (prop && prop.node && execReturnsString) {
41
53
  if (prop && prop.node && execReturnsString) {
@@ -58,7 +70,7 @@ export const throughUpdatedExec = (element, options = {}) => {
58
70
  return changes
59
71
  }
60
72
 
61
- export const throughExecProps = async element => {
73
+ export const throughExecProps = element => {
62
74
  const { __ref: ref } = element
63
75
  const { props } = element
64
76
  for (const k in props) {
@@ -66,17 +78,31 @@ export const throughExecProps = async element => {
66
78
  k.startsWith('is') || k.startsWith('has') || k.startsWith('use')
67
79
  const cachedExecProp = ref.__execProps[k]
68
80
  if (isFunction(cachedExecProp)) {
69
- props[k] = await execPromise(cachedExecProp, element)
81
+ const result = exec(cachedExecProp, element)
82
+ if (result && typeof result.then === 'function') {
83
+ result.then(resolved => {
84
+ props[k] = resolved
85
+ })
86
+ } else {
87
+ props[k] = result
88
+ }
70
89
  } else if (isDefine && isFunction(props[k])) {
71
90
  ref.__execProps[k] = props[k]
72
- props[k] = await execPromise(props[k], element)
91
+ const result = exec(props[k], element)
92
+ if (result && typeof result.then === 'function') {
93
+ result.then(resolved => {
94
+ props[k] = resolved
95
+ })
96
+ } else {
97
+ props[k] = result
98
+ }
73
99
  }
74
100
  }
75
101
  }
76
102
 
77
103
  export const isPropertyInDefines = (key, element) => {}
78
104
 
79
- export const throughInitialDefine = async element => {
105
+ export const throughInitialDefine = element => {
80
106
  const { define, context, __ref: ref } = element
81
107
 
82
108
  let defineObj = {}
@@ -89,28 +115,42 @@ export const throughInitialDefine = async element => {
89
115
 
90
116
  if (isFunction(elementProp) && !isMethod(param, element)) {
91
117
  ref.__exec[param] = elementProp
92
- const execParam = (elementProp = await execPromise(elementProp, element))
93
-
94
- if (execParam) {
95
- elementProp = element[param] = execParam.parse
96
- ? execParam.parse()
97
- : execParam
98
- ref.__defineCache[param] = elementProp
118
+ let execParam = exec(elementProp, element)
119
+ if (execParam && typeof execParam.then === 'function') {
120
+ execParam.then(resolved => {
121
+ elementProp = element[param] =
122
+ resolved && resolved.parse ? resolved.parse() : resolved
123
+ if (resolved) {
124
+ ref.__defineCache[param] = elementProp
125
+ }
126
+ })
127
+ } else {
128
+ elementProp = element[param] =
129
+ execParam && execParam.parse ? execParam.parse() : execParam
130
+ if (execParam) {
131
+ ref.__defineCache[param] = elementProp
132
+ }
99
133
  }
100
134
  }
101
135
 
102
- const execParam = await defineObj[param](
136
+ const execParam = defineObj[param](
103
137
  elementProp,
104
138
  element,
105
139
  element.state,
106
140
  element.context
107
141
  )
108
- if (execParam) element[param] = execParam
142
+ if (execParam && typeof execParam.then === 'function') {
143
+ execParam.then(resolved => {
144
+ if (resolved) element[param] = resolved
145
+ })
146
+ } else if (execParam) {
147
+ element[param] = execParam
148
+ }
109
149
  }
110
150
  return element
111
151
  }
112
152
 
113
- export const throughUpdatedDefine = async element => {
153
+ export const throughUpdatedDefine = element => {
114
154
  const { context, define, __ref: ref } = element
115
155
  const changes = {}
116
156
 
@@ -121,18 +161,33 @@ export const throughUpdatedDefine = async element => {
121
161
  for (const param in obj) {
122
162
  const execParam = ref.__exec[param]
123
163
  if (execParam) {
124
- ref.__defineCache[param] = await execParam(
125
- element,
126
- element.state,
127
- element.context
128
- )
164
+ const result = execParam(element, element.state, element.context)
165
+ if (result && typeof result.then === 'function') {
166
+ result.then(resolved => {
167
+ ref.__defineCache[param] = resolved
168
+ })
169
+ } else {
170
+ ref.__defineCache[param] = result
171
+ }
172
+ }
173
+ const cached = exec(ref.__defineCache[param], element)
174
+ if (cached && typeof cached.then === 'function') {
175
+ cached.then(resolved => {
176
+ // Optionally assign or use resolved value if needed
177
+ })
178
+ continue
129
179
  }
130
- const cached = await execPromise(ref.__defineCache[param], element)
131
180
  const newExecParam =
132
181
  typeof obj[param] === 'function'
133
182
  ? obj[param](cached, element, element.state, element.context)
134
183
  : undefined
135
- if (newExecParam) element[param] = newExecParam
184
+ if (newExecParam && typeof newExecParam.then === 'function') {
185
+ newExecParam.then(resolved => {
186
+ element[param] = resolved
187
+ })
188
+ } else if (newExecParam) {
189
+ element[param] = newExecParam
190
+ }
136
191
  }
137
192
  return changes
138
193
  }
@@ -0,0 +1,65 @@
1
+ 'use strict'
2
+
3
+ import { isFunction, setContentKey } from '@domql/utils'
4
+ import { set } from '../set.js'
5
+
6
+ export const updateContent = function (params, options) {
7
+ const element = this
8
+ const ref = element.__ref
9
+
10
+ const contentKey = ref.contentElementKey
11
+
12
+ if (!element[contentKey]) return
13
+ if (element[contentKey].update) element[contentKey].update(params, options)
14
+ }
15
+
16
+ export const removeContent = function (el, opts = {}) {
17
+ const element = el || this
18
+ const { __ref: ref } = element
19
+ const contentElementKey = setContentKey(element, opts)
20
+
21
+ if (opts.contentElementKey !== 'content') opts.contentElementKey = 'content'
22
+ if (element[contentElementKey]) {
23
+ if (element[contentElementKey].node && element.node) {
24
+ if (element[contentElementKey].tag === 'fragment')
25
+ element.node.innerHTML = ''
26
+ else {
27
+ const contentNode = element[contentElementKey].node
28
+ if (contentNode.parentNode === element.node)
29
+ element.node.removeChild(element[contentElementKey].node)
30
+ }
31
+ }
32
+
33
+ const { __cached } = ref
34
+ if (__cached && __cached[contentElementKey]) {
35
+ if (__cached[contentElementKey].tag === 'fragment')
36
+ __cached[contentElementKey].parent.node.innerHTML = ''
37
+ else if (
38
+ __cached[contentElementKey] &&
39
+ isFunction(__cached[contentElementKey].remove)
40
+ )
41
+ __cached[contentElementKey].remove()
42
+ }
43
+
44
+ ref.__children.splice(ref.__children.indexOf(element[contentElementKey]), 1)
45
+
46
+ delete element[contentElementKey]
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Appends anything as content
52
+ * an original one as a child
53
+ */
54
+ export function setContent (param, element, node, opts) {
55
+ const contentElementKey = setContentKey(element, opts)
56
+ if (param && element) {
57
+ if (element[contentElementKey]?.update) {
58
+ element[contentElementKey].update({}, opts)
59
+ } else {
60
+ set.call(element, param, opts)
61
+ }
62
+ }
63
+ }
64
+
65
+ export default setContent
package/mixins/html.js CHANGED
@@ -7,7 +7,7 @@ import { exec } from '@domql/utils'
7
7
  * an original one as a child
8
8
  */
9
9
  export function html (param, element, node) {
10
- const prop = exec(param, element) || exec(element?.props?.html, element)
10
+ const prop = exec(element?.props?.html || param, element)
11
11
  const { __ref } = element
12
12
  if (prop !== __ref.__html) {
13
13
  // const parser = new window.DOMParser()
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import attr from './attr.js'
3
+ import { attr } from './attr.js'
4
4
  import { classList } from './classList.js'
5
5
  import data from './data.js'
6
6
  import html from './html.js'
package/mixins/scope.js CHANGED
@@ -6,7 +6,7 @@ import { isFunction, isObject } from '@domql/utils'
6
6
  * Apply data parameters on the DOM nodes
7
7
  * this should only work if `showOnNode: true` is passed
8
8
  */
9
- export async function scope (params, element, node) {
9
+ export function scope (params, element, node) {
10
10
  if (!isObject(params)) return
11
11
 
12
12
  // Apply data params on node
package/mixins/state.js CHANGED
@@ -1,9 +1,9 @@
1
1
  'use strict'
2
2
 
3
- import { execPromise, isObject, STATE_METHODS } from '@domql/utils'
3
+ import { exec, isObject, STATE_METHODS } from '@domql/utils'
4
4
 
5
- export async function state (params, element, node) {
6
- const state = await execPromise(params, element)
5
+ export function state (params, element, node) {
6
+ const state = exec(params, element)
7
7
 
8
8
  if (isObject(state)) {
9
9
  for (const param in state) {
package/mixins/text.js CHANGED
@@ -7,10 +7,10 @@ import { exec, isString } from '@domql/utils'
7
7
  * Creates a text node and appends into
8
8
  * an original one as a child
9
9
  */
10
- export async function text (param, element, node) {
11
- let prop = exec(param || element.props.text, element)
10
+ export function text (param, element, node) {
11
+ let prop = exec(element.props.text || param, element)
12
12
  if (isString(prop) && prop.includes('{{')) {
13
- prop = element.call('replaceLiteralsWithObjectFields', prop)
13
+ prop = element.call('replaceLiteralsWithObjectFields', prop, element.state)
14
14
  }
15
15
  if (element.tag === 'string') {
16
16
  node.nodeValue = prop
@@ -19,7 +19,7 @@ export async function text (param, element, node) {
19
19
  if (element.__text.text === prop) return
20
20
  element.__text.text = prop
21
21
  if (element.__text.node) element.__text.node.nodeValue = prop
22
- } else await create({ tag: 'string', text: prop }, element, '__text')
22
+ } else create({ tag: 'string', text: prop }, element, '__text')
23
23
  }
24
24
  }
25
25
 
package/node.js CHANGED
@@ -18,7 +18,7 @@ import { setContent } from './set.js'
18
18
 
19
19
  const ENV = process.env.NODE_ENV
20
20
 
21
- export const createNode = async (element, opts) => {
21
+ export const createNode = (element, opts) => {
22
22
  // create and assign a node
23
23
  let { node, tag, __ref: ref } = element
24
24
 
@@ -34,7 +34,7 @@ export const createNode = async (element, opts) => {
34
34
  } else node = element.node = cacheNode(element)
35
35
 
36
36
  // trigger `on.attachNode`
37
- await triggerEventOn('attachNode', element, opts)
37
+ triggerEventOn('attachNode', element, opts)
38
38
  }
39
39
  // node.dataset // .key = element.key
40
40
 
@@ -44,15 +44,15 @@ export const createNode = async (element, opts) => {
44
44
  }
45
45
 
46
46
  // iterate through exec props
47
- await throughExecProps(element)
47
+ throughExecProps(element)
48
48
 
49
49
  // iterate through define
50
- await throughInitialDefine(element)
50
+ throughInitialDefine(element)
51
51
 
52
52
  // iterate through exec
53
- await throughInitialExec(element)
53
+ throughInitialExec(element)
54
54
 
55
- await applyEventsOnNode(element, { isNewNode, ...opts })
55
+ applyEventsOnNode(element, { isNewNode, ...opts })
56
56
 
57
57
  for (const param in element) {
58
58
  const value = element[param]
@@ -66,34 +66,34 @@ export const createNode = async (element, opts) => {
66
66
  continue
67
67
  }
68
68
 
69
- const isElement = await applyParam(param, element, opts)
69
+ const isElement = applyParam(param, element, opts)
70
70
  if (isElement) {
71
71
  const { hasDefine, hasContextDefine } = isElement
72
72
  if (element[param] && !hasDefine && !hasContextDefine) {
73
- const createAsync = async () => {
74
- await create(value, element, param, opts)
73
+ const createAsync = () => {
74
+ create(value, element, param, opts)
75
75
  }
76
76
 
77
77
  // TODO: test this with promise
78
78
  // handle lazy load
79
79
  if ((element.props && element.props.lazyLoad) || opts.lazyLoad) {
80
- window.requestAnimationFrame(async () => {
81
- await createAsync()
80
+ window.requestAnimationFrame(() => {
81
+ createAsync()
82
82
  if (!opts.preventUpdateListener) {
83
- await triggerEventOn('lazyLoad', element, opts)
83
+ triggerEventOn('lazyLoad', element, opts)
84
84
  }
85
85
  })
86
- } else await createAsync()
86
+ } else createAsync()
87
87
  }
88
88
  }
89
89
  }
90
90
 
91
91
  const content = element.children
92
- ? await setChildren(element.children, element, opts)
92
+ ? setChildren(element.children, element, opts)
93
93
  : element.content || element.content
94
94
 
95
95
  if (content) {
96
- await setContent(content, element, opts)
96
+ setContent(content, element, opts)
97
97
  }
98
98
 
99
99
  // node.dataset.key = key
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@domql/element",
3
- "version": "3.1.2",
3
+ "version": "3.2.3",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "module": "index.js",
@@ -21,18 +21,18 @@
21
21
  ],
22
22
  "scripts": {
23
23
  "copy:package:cjs": "cp ../../build/package-cjs.json dist/cjs/package.json",
24
- "build:esm": "npx esbuild *.js **/*.js --target=es2019 --format=esm --outdir=dist/esm",
25
- "build:cjs": "npx esbuild *.js **/*.js --target=node16 --format=cjs --outdir=dist/cjs",
24
+ "build:esm": "npx cross-env NODE_ENV=$NODE_ENV npx esbuild *.js methods/*.js mixins/*.js utils/*.js --target=es2019 --format=esm --outdir=dist/esm",
25
+ "build:cjs": "npx cross-env NODE_ENV=$NODE_ENV npx esbuild *.js methods/*.js mixins/*.js utils/*.js --target=node16 --format=cjs --outdir=dist/cjs",
26
26
  "build": "npx rimraf -I dist; npm run build:cjs; npm run build:esm",
27
27
  "prepublish": "npx rimraf -I dist && npm run build && npm run copy:package:cjs"
28
28
  },
29
29
  "dependencies": {
30
- "@domql/event": "^3.1.2",
31
- "@domql/render": "^3.1.2",
32
- "@domql/state": "^3.1.2",
33
- "@domql/utils": "^3.1.2"
30
+ "@domql/event": "^3.2.3",
31
+ "@domql/render": "^3.2.3",
32
+ "@domql/state": "^3.2.3",
33
+ "@domql/utils": "^3.2.3"
34
34
  },
35
- "gitHead": "429b36616aa04c8587a26ce3c129815115e35897",
35
+ "gitHead": "9fc1b79b41cdc725ca6b24aec64920a599634681",
36
36
  "devDependencies": {
37
37
  "@babel/core": "^7.26.0"
38
38
  }
package/set.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict'
2
2
 
3
- import { deepContains, execPromise, isFunction, OPTIONS } from '@domql/utils'
3
+ import { deepContains, exec, isFunction, OPTIONS } from '@domql/utils'
4
4
  import { create } from './create.js'
5
5
  import { triggerEventOn, triggerEventOnUpdate } from '@domql/event'
6
6
 
@@ -13,9 +13,9 @@ export const setContentKey = (element, opts = {}) => {
13
13
  return ref.contentElementKey
14
14
  }
15
15
 
16
- export const reset = async options => {
16
+ export const reset = options => {
17
17
  const element = this
18
- await create(element, element.parent, undefined, {
18
+ create(element, element.parent, undefined, {
19
19
  ignoreChildExtends: true,
20
20
  ...OPTIONS.defaultOptions,
21
21
  ...OPTIONS.create,
@@ -23,30 +23,25 @@ export const reset = async options => {
23
23
  })
24
24
  }
25
25
 
26
- export const resetContent = async (params, element, opts) => {
26
+ export const resetContent = (params, element, opts) => {
27
27
  const contentElementKey = setContentKey(element, opts)
28
28
  if (element[contentElementKey]?.node) removeContent(element, opts)
29
- const contentElem = await create(
30
- params,
31
- element,
32
- contentElementKey || 'content',
33
- {
34
- ignoreChildExtends: true,
35
- ...OPTIONS.defaultOptions,
36
- ...OPTIONS.create,
37
- ...opts
38
- }
39
- )
29
+ const contentElem = create(params, element, contentElementKey || 'content', {
30
+ ignoreChildExtends: true,
31
+ ...OPTIONS.defaultOptions,
32
+ ...OPTIONS.create,
33
+ ...opts
34
+ })
40
35
  if (contentElementKey !== 'content') opts.contentElementKey = 'content' // reset to default
41
36
  return contentElem
42
37
  }
43
38
 
44
- export const updateContent = async function (params, opts) {
39
+ export const updateContent = function (params, opts) {
45
40
  const element = this
46
41
  const contentElementKey = setContentKey(element, opts)
47
42
  if (!element[contentElementKey]) return
48
43
  if (element[contentElementKey].update) {
49
- await element[contentElementKey].update(params, opts)
44
+ element[contentElementKey].update(params, opts)
50
45
  }
51
46
  }
52
47
 
@@ -54,11 +49,11 @@ export const updateContent = async function (params, opts) {
54
49
  * Appends anything as content
55
50
  * an original one as a child
56
51
  */
57
- export async function setContent (param, element, opts) {
58
- const content = await execPromise(param, element)
52
+ export function setContent (param, element, opts) {
53
+ const content = exec(param, element)
59
54
 
60
55
  if (content && element) {
61
- await set.call(element, content, opts)
56
+ set.call(element, content, opts)
62
57
  }
63
58
  }
64
59
 
@@ -98,7 +93,7 @@ export const removeContent = function (el, opts = {}) {
98
93
  delete element[contentElementKey]
99
94
  }
100
95
 
101
- export const set = async function (params, options = {}, el) {
96
+ export const set = function (params, options = {}, el) {
102
97
  const element = el || this
103
98
  const { __ref: ref } = element
104
99
 
@@ -119,7 +114,7 @@ export const set = async function (params, options = {}, el) {
119
114
 
120
115
  if (content?.update && !childHasChanged && !childrenIsDifferentFromCache) {
121
116
  if (!options.preventBeforeUpdateListener && !options.preventListeners) {
122
- const beforeUpdateReturns = await triggerEventOnUpdate(
117
+ const beforeUpdateReturns = triggerEventOnUpdate(
123
118
  'beforeUpdate',
124
119
  params,
125
120
  element,
@@ -127,9 +122,9 @@ export const set = async function (params, options = {}, el) {
127
122
  )
128
123
  if (beforeUpdateReturns === false) return element
129
124
  }
130
- await content.update(params)
125
+ content.update(params)
131
126
  if (!options.preventUpdateListener && !options.preventListeners) {
132
- await triggerEventOn('update', element, options)
127
+ triggerEventOn('update', element, options)
133
128
  }
134
129
  return
135
130
  }
@@ -152,15 +147,15 @@ export const set = async function (params, options = {}, el) {
152
147
  }
153
148
 
154
149
  if (lazyLoad) {
155
- window.requestAnimationFrame(async () => {
156
- await resetContent(params, element, options)
150
+ window.requestAnimationFrame(() => {
151
+ resetContent(params, element, options)
157
152
  // handle lazy load
158
153
  if (!options.preventUpdateListener) {
159
- await triggerEventOn('lazyLoad', element, options)
154
+ triggerEventOn('lazyLoad', element, options)
160
155
  }
161
156
  })
162
157
  } else {
163
- await resetContent(params, element, options)
158
+ resetContent(params, element, options)
164
159
  }
165
160
  }
166
161