domql 1.4.13 → 1.4.16
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/README.md +3 -5
- package/package.json +2 -2
- package/src/element/create.js +8 -3
- package/src/element/index.js +1 -1
- package/src/element/{createNode.js → node.js} +0 -0
- package/src/element/{createProps.js → props.js} +2 -2
- package/src/element/{createState.js → state.js} +0 -0
- package/src/element/update.js +8 -40
- package/src/event/on.js +4 -0
package/README.md
CHANGED
|
@@ -7,14 +7,12 @@ DOM rendering Javascript framework.
|
|
|
7
7
|
- No transpilations, simple ES6 code
|
|
8
8
|
- One-time import and subtrees
|
|
9
9
|
|
|
10
|
-
You can start with [starter-kit](https://github.com/
|
|
10
|
+
You can start with [starter-kit](https://github.com/domql/starter-kit) as a boilerplate, or jump into the [playground](https://domql.com/playground/).
|
|
11
11
|
|
|
12
|
-
[](https://travis-ci.org/rackai/domql)
|
|
14
|
-
[](https://coveralls.io/github/rackai/domql?branch=main)
|
|
12
|
+
[](https://badge.fury.io/js/domql)
|
|
15
13
|
|
|
16
14
|
```javascript
|
|
17
|
-
import DOM from '
|
|
15
|
+
import DOM from 'domql'
|
|
18
16
|
|
|
19
17
|
DOM.create({ text: 'Rendered' })
|
|
20
18
|
```
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "DOM rendering Javascript framework at early stage.",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "rackai",
|
|
6
|
-
"version": "1.4.
|
|
6
|
+
"version": "1.4.16",
|
|
7
7
|
"repository": "https://github.com/rackai/domql",
|
|
8
8
|
"publishConfig": {
|
|
9
9
|
"registry": "https://registry.npmjs.org"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@babel/eslint-parser": "^7.16.3",
|
|
31
31
|
"@babel/preset-env": "^7.16.4",
|
|
32
32
|
"@parcel/babel-preset-env": "^2.0.1",
|
|
33
|
-
"babel-jest": "^
|
|
33
|
+
"babel-jest": "^28.1.3",
|
|
34
34
|
"esbuild": "^0.14.47",
|
|
35
35
|
"eslint": "^8.4.0",
|
|
36
36
|
"eslint-config-standard": "^16.0.3",
|
package/src/element/create.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
3
|
import root from './root'
|
|
4
|
-
import createNode from './
|
|
4
|
+
import createNode from './node'
|
|
5
5
|
import { appendNode, assignNode } from './assign'
|
|
6
6
|
import { applyPrototype } from './proto'
|
|
7
7
|
import nodes from './nodes'
|
|
8
8
|
import set from './set'
|
|
9
|
-
import createState from './
|
|
10
|
-
import createProps from './
|
|
9
|
+
import createState from './state'
|
|
10
|
+
import createProps from './props'
|
|
11
11
|
import update from './update'
|
|
12
12
|
import * as on from '../event/on'
|
|
13
13
|
import { assignClass } from './mixins/classList'
|
|
@@ -129,6 +129,11 @@ const create = (element, parent, key, options = {}) => {
|
|
|
129
129
|
on.init(element.on.init, element, element.state)
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
+
// run `on.init`
|
|
133
|
+
if (element.on && isFunction(element.on.beforeClassAssign)) {
|
|
134
|
+
on.beforeClassAssign(element.on.beforeClassAssign, element, element.state)
|
|
135
|
+
}
|
|
136
|
+
|
|
132
137
|
// generate a CLASS name
|
|
133
138
|
assignClass(element)
|
|
134
139
|
|
package/src/element/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import root from './root'
|
|
|
5
5
|
import tree from './tree'
|
|
6
6
|
import cache from './cache'
|
|
7
7
|
import create from './create'
|
|
8
|
-
import createNode from './
|
|
8
|
+
import createNode from './node'
|
|
9
9
|
import * as assign from './assign'
|
|
10
10
|
import define from './define'
|
|
11
11
|
import update from './update'
|
|
File without changes
|
|
@@ -87,10 +87,10 @@ export const updateProps = (newProps, element, parent) => {
|
|
|
87
87
|
return element
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
function update (props) {
|
|
90
|
+
function update (props, options) {
|
|
91
91
|
const element = this.__element
|
|
92
92
|
// element.update({ props })
|
|
93
|
-
element.update()
|
|
93
|
+
element.update({ props }, options)
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
export default createProps
|
|
File without changes
|
package/src/element/update.js
CHANGED
|
@@ -8,8 +8,8 @@ import { throughUpdatedDefine, throughUpdatedExec } from './iterate'
|
|
|
8
8
|
import { merge } from '../utils/object'
|
|
9
9
|
import { appendNode } from './assign'
|
|
10
10
|
import { createNode } from '.'
|
|
11
|
-
import { updateProps } from './
|
|
12
|
-
import createState from './
|
|
11
|
+
import { updateProps } from './props'
|
|
12
|
+
import createState from './state'
|
|
13
13
|
|
|
14
14
|
const UPDATE_DEFAULT_OPTIONS = {
|
|
15
15
|
stackChanges: false,
|
|
@@ -29,15 +29,7 @@ const update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {
|
|
|
29
29
|
// TODO: move as fragment
|
|
30
30
|
const ifPassed = element.if(element, element.state)
|
|
31
31
|
|
|
32
|
-
// console.group('updateLoop')
|
|
33
|
-
// console.log(element)
|
|
34
|
-
// console.log(element.__ifFalsy)
|
|
35
|
-
// console.log(ifPassed)
|
|
36
|
-
// console.groupEnd('updateLoop')
|
|
37
|
-
|
|
38
|
-
// if (element.__ifFalsy && ifPassed) {
|
|
39
32
|
if (ifPassed) delete element.__ifFalsy
|
|
40
|
-
|
|
41
33
|
if (element.__ifFalsy && ifPassed) {
|
|
42
34
|
createNode(element)
|
|
43
35
|
appendNode(element.node, element.__ifFragment)
|
|
@@ -47,54 +39,30 @@ const update = function (params = {}, options = UPDATE_DEFAULT_OPTIONS) {
|
|
|
47
39
|
}
|
|
48
40
|
}
|
|
49
41
|
|
|
50
|
-
if (element.
|
|
51
|
-
preventUpdate = on.initUpdate(element.on.initUpdate, element, element.state)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// console.group('update')
|
|
55
|
-
// console.log(element.path)
|
|
56
|
-
// console.log(element)
|
|
57
|
-
// if (params.props) {
|
|
58
|
-
// console.log('INSIDE:')
|
|
59
|
-
// console.log(params.props)
|
|
60
|
-
// }
|
|
61
|
-
if (!element.__ifFalsy) updateProps(params.props, element, parent)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
// const state = params.state || element.state
|
|
65
|
-
// element.state = createState({ state }, parent)
|
|
42
|
+
if (!element.__ifFalsy && !options.preventPropsUpdate) updateProps(params.props, element, parent)
|
|
66
43
|
|
|
67
44
|
const overwriteChanges = overwrite(element, params, UPDATE_DEFAULT_OPTIONS)
|
|
68
45
|
const execChanges = throughUpdatedExec(element, UPDATE_DEFAULT_OPTIONS)
|
|
69
46
|
const definedChanges = throughUpdatedDefine(element)
|
|
70
47
|
|
|
71
|
-
if (
|
|
48
|
+
if (options.stackChanges && element.__stackChanges) {
|
|
72
49
|
const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))
|
|
73
50
|
element.__stackChanges.push(stackChanges)
|
|
74
51
|
}
|
|
75
|
-
// const stackChanges = merge(definedChanges, merge(execChanges, overwriteChanges))
|
|
76
|
-
// if (Object.keys(stackChanges).length === 0) return
|
|
77
|
-
// else console.log(element.path, '\n\n', stackChanges)
|
|
78
52
|
|
|
79
|
-
// console.log(element.key, element.__ifFalsy)
|
|
80
53
|
if (element.__ifFalsy) return element
|
|
81
54
|
if (!node) {
|
|
82
|
-
return
|
|
83
55
|
// return createNode(element, options)
|
|
56
|
+
return
|
|
84
57
|
}
|
|
85
58
|
|
|
86
|
-
|
|
87
|
-
|
|
59
|
+
if (element.on && isFunction(element.on.initUpdate) && !options.ignoreInitUpdate) {
|
|
60
|
+
preventUpdate = on.initUpdate(element.on.initUpdate, element, element.state)
|
|
61
|
+
}
|
|
88
62
|
|
|
89
63
|
for (const param in element) {
|
|
90
64
|
const prop = element[param]
|
|
91
65
|
|
|
92
|
-
// console.group('updateLoop')
|
|
93
|
-
// console.log(param)
|
|
94
|
-
// console.log(prop)
|
|
95
|
-
// console.groupEnd('updateLoop')
|
|
96
|
-
// if (element.key === 'span' && param === 'node') debugger
|
|
97
|
-
|
|
98
66
|
if (options.preventContentUpdate && param === 'content') continue
|
|
99
67
|
if (isMethod(param) || isObject(registry[param]) || prop === undefined) continue
|
|
100
68
|
|