elegance-js 2.1.9 → 2.1.10
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/dist/build.mjs +71 -1762
- package/dist/client/client.mjs +36 -165
- package/dist/client/processPageElements.mjs +7 -7
- package/dist/client/render.mjs +1 -2
- package/dist/client/watcher.mjs +1 -2
- package/dist/compile_docs.mjs +8 -1902
- package/dist/components/Link.mjs +3 -51
- package/dist/helpers/ObjectAttributeType.mjs +0 -1
- package/dist/helpers/camelToKebab.mjs +1 -2
- package/dist/index.mjs +3 -215
- package/dist/internal/deprecate.mjs +1 -2
- package/dist/log.mjs +2 -3
- package/dist/page_compiler.mjs +51 -320
- package/dist/server/generateHTMLTemplate.mjs +2 -194
- package/dist/server/layout.mjs +3 -4
- package/dist/server/loadHook.mjs +5 -11
- package/dist/server/observe.mjs +3 -3
- package/dist/server/render.mjs +3 -149
- package/dist/server/server.mjs +38 -1290
- package/dist/server/state.mjs +13 -34
- package/dist/shared/bindServerElements.mjs +1 -143
- package/dist/shared/serverElements.mjs +8 -9
- package/package.json +2 -2
package/dist/server/state.mjs
CHANGED
|
@@ -1,34 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const stringFn = fn.toString();
|
|
4
|
-
const depsArray = (deps || []).map((dep) => ({
|
|
5
|
-
id: dep.id,
|
|
6
|
-
bind: dep.bind
|
|
7
|
-
}));
|
|
8
|
-
let dependencyString = "[";
|
|
9
|
-
for (const dep of depsArray) {
|
|
10
|
-
dependencyString += `{id:${dep.id}`;
|
|
11
|
-
if (dep.bind) dependencyString += `,bind:${dep.bind}`;
|
|
12
|
-
dependencyString += `},`;
|
|
13
|
-
}
|
|
14
|
-
dependencyString += "]";
|
|
15
|
-
const isAsync = fn.constructor.name === "AsyncFunction";
|
|
16
|
-
const wrapperFn = isAsync ? `async (state) => await (${stringFn})(state, ...state.getAll(${dependencyString}))` : `(state) => (${stringFn})(state, ...state.getAll(${dependencyString}))`;
|
|
17
|
-
globalThis.__SERVER_CURRENT_LOADHOOKS__.push({
|
|
18
|
-
fn: wrapperFn,
|
|
19
|
-
bind: bind || ""
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
// src/server/state.ts
|
|
1
|
+
import { ObjectAttributeType } from "../helpers/ObjectAttributeType";
|
|
2
|
+
import { loadHook } from "./loadHook";
|
|
24
3
|
if (!globalThis.__SERVER_CURRENT_STATE_ID__) {
|
|
25
4
|
globalThis.__SERVER_CURRENT_STATE_ID__ = 1;
|
|
26
5
|
}
|
|
27
|
-
|
|
6
|
+
const state = (value, options) => {
|
|
28
7
|
const serverStateEntry = {
|
|
29
8
|
id: __SERVER_CURRENT_STATE_ID__ += 1,
|
|
30
9
|
value,
|
|
31
|
-
type:
|
|
10
|
+
type: ObjectAttributeType.STATE
|
|
32
11
|
};
|
|
33
12
|
globalThis.__SERVER_CURRENT_STATE__.push(serverStateEntry);
|
|
34
13
|
if (Array.isArray(value)) {
|
|
@@ -36,7 +15,7 @@ var state = (value, options) => {
|
|
|
36
15
|
}
|
|
37
16
|
return serverStateEntry;
|
|
38
17
|
};
|
|
39
|
-
|
|
18
|
+
const reactiveMap = function(template, deps) {
|
|
40
19
|
const subject = this;
|
|
41
20
|
const dependencies = state(deps || []);
|
|
42
21
|
const templateFn = state(template);
|
|
@@ -67,7 +46,7 @@ var reactiveMap = function(template, deps) {
|
|
|
67
46
|
let values = {};
|
|
68
47
|
const type = attribute.type;
|
|
69
48
|
switch (type) {
|
|
70
|
-
case
|
|
49
|
+
case ObjectAttributeType.OBSERVER: {
|
|
71
50
|
const { field, subjects, updateCallback } = attribute;
|
|
72
51
|
for (const reference of subjects) {
|
|
73
52
|
const subject3 = state2.get(reference.id, reference.bind);
|
|
@@ -91,7 +70,7 @@ var reactiveMap = function(template, deps) {
|
|
|
91
70
|
}
|
|
92
71
|
break;
|
|
93
72
|
}
|
|
94
|
-
case
|
|
73
|
+
case ObjectAttributeType.STATE: {
|
|
95
74
|
const { field, element, subjects, eventListener: eventListener2 } = attribute;
|
|
96
75
|
const lc = field.toLowerCase();
|
|
97
76
|
const fn = (event) => {
|
|
@@ -128,7 +107,7 @@ var reactiveMap = function(template, deps) {
|
|
|
128
107
|
"map-id": subject.id
|
|
129
108
|
});
|
|
130
109
|
};
|
|
131
|
-
|
|
110
|
+
const eventListener = (dependencies, eventListener2) => {
|
|
132
111
|
const deps = dependencies.map((dep) => ({ id: dep.id, bind: dep.bind }));
|
|
133
112
|
let dependencyString = "[";
|
|
134
113
|
for (const dep of deps) {
|
|
@@ -139,7 +118,7 @@ var eventListener = (dependencies, eventListener2) => {
|
|
|
139
118
|
dependencyString += "]";
|
|
140
119
|
const value = {
|
|
141
120
|
id: __SERVER_CURRENT_STATE_ID__ += 1,
|
|
142
|
-
type:
|
|
121
|
+
type: ObjectAttributeType.STATE,
|
|
143
122
|
value: new Function(
|
|
144
123
|
"state",
|
|
145
124
|
"event",
|
|
@@ -149,12 +128,12 @@ var eventListener = (dependencies, eventListener2) => {
|
|
|
149
128
|
globalThis.__SERVER_CURRENT_STATE__.push(value);
|
|
150
129
|
return value;
|
|
151
130
|
};
|
|
152
|
-
|
|
153
|
-
|
|
131
|
+
const initializeState = () => globalThis.__SERVER_CURRENT_STATE__ = [];
|
|
132
|
+
const getState = () => {
|
|
154
133
|
return globalThis.__SERVER_CURRENT_STATE__;
|
|
155
134
|
};
|
|
156
|
-
|
|
157
|
-
|
|
135
|
+
const initializeObjectAttributes = () => globalThis.__SERVER_CURRENT_OBJECT_ATTRIBUTES__ = [];
|
|
136
|
+
const getObjectAttributes = () => {
|
|
158
137
|
return globalThis.__SERVER_CURRENT_OBJECT_ATTRIBUTES__;
|
|
159
138
|
};
|
|
160
139
|
export {
|
|
@@ -1,145 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
var createBuildableElement = (tag) => {
|
|
3
|
-
return (options, ...children) => ({
|
|
4
|
-
tag,
|
|
5
|
-
options: options || {},
|
|
6
|
-
children
|
|
7
|
-
});
|
|
8
|
-
};
|
|
9
|
-
var createChildrenlessBuildableElement = (tag) => {
|
|
10
|
-
return (options) => ({
|
|
11
|
-
tag,
|
|
12
|
-
options: options || {},
|
|
13
|
-
children: null
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var childrenlessElementTags = [
|
|
17
|
-
"area",
|
|
18
|
-
"base",
|
|
19
|
-
"br",
|
|
20
|
-
"col",
|
|
21
|
-
"embed",
|
|
22
|
-
"hr",
|
|
23
|
-
"img",
|
|
24
|
-
"input",
|
|
25
|
-
"link",
|
|
26
|
-
"meta",
|
|
27
|
-
"source",
|
|
28
|
-
"track",
|
|
29
|
-
"path",
|
|
30
|
-
"rect"
|
|
31
|
-
];
|
|
32
|
-
var elementTags = [
|
|
33
|
-
"a",
|
|
34
|
-
"address",
|
|
35
|
-
"article",
|
|
36
|
-
"aside",
|
|
37
|
-
"audio",
|
|
38
|
-
"blockquote",
|
|
39
|
-
"body",
|
|
40
|
-
"button",
|
|
41
|
-
"canvas",
|
|
42
|
-
"caption",
|
|
43
|
-
"colgroup",
|
|
44
|
-
"data",
|
|
45
|
-
"datalist",
|
|
46
|
-
"dd",
|
|
47
|
-
"del",
|
|
48
|
-
"details",
|
|
49
|
-
"dialog",
|
|
50
|
-
"div",
|
|
51
|
-
"dl",
|
|
52
|
-
"dt",
|
|
53
|
-
"fieldset",
|
|
54
|
-
"figcaption",
|
|
55
|
-
"figure",
|
|
56
|
-
"footer",
|
|
57
|
-
"form",
|
|
58
|
-
"h1",
|
|
59
|
-
"h2",
|
|
60
|
-
"h3",
|
|
61
|
-
"h4",
|
|
62
|
-
"h5",
|
|
63
|
-
"h6",
|
|
64
|
-
"head",
|
|
65
|
-
"header",
|
|
66
|
-
"hgroup",
|
|
67
|
-
"html",
|
|
68
|
-
"iframe",
|
|
69
|
-
"ins",
|
|
70
|
-
"label",
|
|
71
|
-
"legend",
|
|
72
|
-
"li",
|
|
73
|
-
"main",
|
|
74
|
-
"map",
|
|
75
|
-
"meter",
|
|
76
|
-
"nav",
|
|
77
|
-
"noscript",
|
|
78
|
-
"object",
|
|
79
|
-
"ol",
|
|
80
|
-
"optgroup",
|
|
81
|
-
"option",
|
|
82
|
-
"output",
|
|
83
|
-
"p",
|
|
84
|
-
"picture",
|
|
85
|
-
"pre",
|
|
86
|
-
"progress",
|
|
87
|
-
"q",
|
|
88
|
-
"section",
|
|
89
|
-
"select",
|
|
90
|
-
"summary",
|
|
91
|
-
"table",
|
|
92
|
-
"tbody",
|
|
93
|
-
"td",
|
|
94
|
-
"template",
|
|
95
|
-
"textarea",
|
|
96
|
-
"tfoot",
|
|
97
|
-
"th",
|
|
98
|
-
"thead",
|
|
99
|
-
"time",
|
|
100
|
-
"tr",
|
|
101
|
-
"ul",
|
|
102
|
-
"video",
|
|
103
|
-
"span",
|
|
104
|
-
"script",
|
|
105
|
-
"abbr",
|
|
106
|
-
"b",
|
|
107
|
-
"bdi",
|
|
108
|
-
"bdo",
|
|
109
|
-
"cite",
|
|
110
|
-
"code",
|
|
111
|
-
"dfn",
|
|
112
|
-
"em",
|
|
113
|
-
"i",
|
|
114
|
-
"kbd",
|
|
115
|
-
"mark",
|
|
116
|
-
"rp",
|
|
117
|
-
"rt",
|
|
118
|
-
"ruby",
|
|
119
|
-
"s",
|
|
120
|
-
"samp",
|
|
121
|
-
"small",
|
|
122
|
-
"strong",
|
|
123
|
-
"sub",
|
|
124
|
-
"sup",
|
|
125
|
-
"u",
|
|
126
|
-
"wbr",
|
|
127
|
-
"title",
|
|
128
|
-
"svg"
|
|
129
|
-
];
|
|
130
|
-
var elements = {};
|
|
131
|
-
var childrenlessElements = {};
|
|
132
|
-
for (const element of elementTags) {
|
|
133
|
-
elements[element] = createBuildableElement(element);
|
|
134
|
-
}
|
|
135
|
-
for (const element of childrenlessElementTags) {
|
|
136
|
-
childrenlessElements[element] = createChildrenlessBuildableElement(element);
|
|
137
|
-
}
|
|
138
|
-
var allElements = {
|
|
139
|
-
...elements,
|
|
140
|
-
...childrenlessElements
|
|
141
|
-
};
|
|
142
|
-
|
|
143
|
-
// src/shared/bindServerElements.ts
|
|
1
|
+
import { elements, childrenlessElements } from "./serverElements";
|
|
144
2
|
Object.assign(globalThis, elements);
|
|
145
3
|
Object.assign(globalThis, childrenlessElements);
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var createElementOptions = (obj) => {
|
|
1
|
+
const createElementOptions = (obj) => {
|
|
3
2
|
return function() {
|
|
4
3
|
const reevaluatedObj = {};
|
|
5
4
|
for (const key of Object.keys(obj)) {
|
|
@@ -17,21 +16,21 @@ var createElementOptions = (obj) => {
|
|
|
17
16
|
return reevaluatedObj;
|
|
18
17
|
};
|
|
19
18
|
};
|
|
20
|
-
|
|
19
|
+
const createBuildableElement = (tag) => {
|
|
21
20
|
return (options, ...children) => ({
|
|
22
21
|
tag,
|
|
23
22
|
options: options || {},
|
|
24
23
|
children
|
|
25
24
|
});
|
|
26
25
|
};
|
|
27
|
-
|
|
26
|
+
const createChildrenlessBuildableElement = (tag) => {
|
|
28
27
|
return (options) => ({
|
|
29
28
|
tag,
|
|
30
29
|
options: options || {},
|
|
31
30
|
children: null
|
|
32
31
|
});
|
|
33
32
|
};
|
|
34
|
-
|
|
33
|
+
const childrenlessElementTags = [
|
|
35
34
|
"area",
|
|
36
35
|
"base",
|
|
37
36
|
"br",
|
|
@@ -47,7 +46,7 @@ var childrenlessElementTags = [
|
|
|
47
46
|
"path",
|
|
48
47
|
"rect"
|
|
49
48
|
];
|
|
50
|
-
|
|
49
|
+
const elementTags = [
|
|
51
50
|
"a",
|
|
52
51
|
"address",
|
|
53
52
|
"article",
|
|
@@ -145,15 +144,15 @@ var elementTags = [
|
|
|
145
144
|
"title",
|
|
146
145
|
"svg"
|
|
147
146
|
];
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
const elements = {};
|
|
148
|
+
const childrenlessElements = {};
|
|
150
149
|
for (const element of elementTags) {
|
|
151
150
|
elements[element] = createBuildableElement(element);
|
|
152
151
|
}
|
|
153
152
|
for (const element of childrenlessElementTags) {
|
|
154
153
|
childrenlessElements[element] = createChildrenlessBuildableElement(element);
|
|
155
154
|
}
|
|
156
|
-
|
|
155
|
+
const allElements = {
|
|
157
156
|
...elements,
|
|
158
157
|
...childrenlessElements
|
|
159
158
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "elegance-js",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.10",
|
|
4
4
|
"description": "Web-Framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"native": "./scripts/native-test.js"
|
|
11
11
|
},
|
|
12
12
|
"scripts": {
|
|
13
|
-
"build": "esbuild --format=esm --platform=node --bundle --outdir=./dist --platform=node --
|
|
13
|
+
"build": "esbuild --format=esm --platform=node --bundle=false --outdir=./dist --platform=node --out-extension:.js=.mjs \"./src/**/*.ts\" && tsc",
|
|
14
14
|
"compile-docs": "node ./dist/compile_docs.mjs --environment=development",
|
|
15
15
|
"compile-docs-bun": "bun run ./dist/compile_docs.mjs --environment=development",
|
|
16
16
|
"prepare": "npm run build"
|