@reidelsaltres/pureper 0.2.14 → 0.2.17
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/out/foundation/Fetcher.d.ts.map +1 -1
- package/out/foundation/Fetcher.js +8 -13
- package/out/foundation/Fetcher.js.map +1 -1
- package/out/foundation/Injection.d.ts +87 -0
- package/out/foundation/Injection.d.ts.map +1 -0
- package/out/foundation/Injection.js +149 -0
- package/out/foundation/Injection.js.map +1 -0
- package/out/foundation/Theme.d.ts.map +1 -1
- package/out/foundation/Theme.js +16 -1
- package/out/foundation/Theme.js.map +1 -1
- package/out/foundation/Triplet.d.ts +30 -25
- package/out/foundation/Triplet.d.ts.map +1 -1
- package/out/foundation/Triplet.js +96 -115
- package/out/foundation/Triplet.js.map +1 -1
- package/out/foundation/TripletDecorator.d.ts +11 -0
- package/out/foundation/TripletDecorator.d.ts.map +1 -1
- package/out/foundation/TripletDecorator.js +25 -8
- package/out/foundation/TripletDecorator.js.map +1 -1
- package/out/foundation/component_api/Component.d.ts.map +1 -1
- package/out/foundation/component_api/Component.js +1 -0
- package/out/foundation/component_api/Component.js.map +1 -1
- package/out/foundation/component_api/UniHtml.d.ts +6 -1
- package/out/foundation/component_api/UniHtml.d.ts.map +1 -1
- package/out/foundation/component_api/UniHtml.js +32 -7
- package/out/foundation/component_api/UniHtml.js.map +1 -1
- package/out/foundation/engine/Expression.d.ts +2 -0
- package/out/foundation/engine/Expression.d.ts.map +1 -1
- package/out/foundation/engine/Expression.js +26 -11
- package/out/foundation/engine/Expression.js.map +1 -1
- package/out/foundation/engine/StylePreprocessor.js +2 -1
- package/out/foundation/engine/StylePreprocessor.js.map +1 -1
- package/out/foundation/engine/TemplateEngine.d.ts +3 -1
- package/out/foundation/engine/TemplateEngine.d.ts.map +1 -1
- package/out/foundation/engine/TemplateEngine.js +44 -15
- package/out/foundation/engine/TemplateEngine.js.map +1 -1
- package/out/foundation/worker/Router.d.ts.map +1 -1
- package/out/foundation/worker/Router.js +6 -0
- package/out/foundation/worker/Router.js.map +1 -1
- package/out/foundation/worker/ServiceWorker.d.ts +48 -17
- package/out/foundation/worker/ServiceWorker.d.ts.map +1 -1
- package/out/foundation/worker/ServiceWorker.js +186 -119
- package/out/foundation/worker/ServiceWorker.js.map +1 -1
- package/out/index.d.ts +3 -2
- package/out/index.d.ts.map +1 -1
- package/out/index.js +2 -1
- package/out/index.js.map +1 -1
- package/package.json +1 -1
- package/src/foundation/Fetcher.ts +9 -14
- package/src/foundation/Injection.ts +183 -0
- package/src/foundation/Theme.ts +17 -3
- package/src/foundation/Triplet.ts +114 -141
- package/src/foundation/TripletDecorator.ts +32 -8
- package/src/foundation/component_api/Component.ts +1 -0
- package/src/foundation/component_api/UniHtml.ts +35 -7
- package/src/foundation/engine/Expression.ts +34 -20
- package/src/foundation/engine/StylePreprocessor.ts +1 -1
- package/src/foundation/engine/TemplateEngine.ts +42 -15
- package/src/foundation/worker/Router.ts +10 -3
- package/src/foundation/worker/ServiceWorker.ts +203 -129
- package/src/foundation/worker/serviceworker.js +191 -0
- package/src/index.ts +7 -4
- package/out/foundation/worker/serviceworker.d.ts +0 -1
- package/out/foundation/worker/serviceworker.d.ts.map +0 -1
- package/out/foundation/worker/serviceworker.js +0 -2
- package/out/foundation/worker/serviceworker.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import Fetcher from "./Fetcher.js";
|
|
2
1
|
import { Router } from "./worker/Router.js";
|
|
3
|
-
import ServiceWorker from "./worker/ServiceWorker.js";
|
|
4
2
|
import Page from "./component_api/Page.js";
|
|
5
3
|
import Component from "./component_api/Component.js";
|
|
6
4
|
import TemplateEngine from "./engine/TemplateEngine.js";
|
|
7
5
|
import Scope from "./engine/Scope.js";
|
|
6
|
+
import { Implementation, Placeholder } from "./Injection.js";
|
|
7
|
+
export const REGISTRY = [];
|
|
8
8
|
export var AccessType;
|
|
9
9
|
(function (AccessType) {
|
|
10
10
|
AccessType[AccessType["NONE"] = 0] = "NONE";
|
|
@@ -12,131 +12,112 @@ export var AccessType;
|
|
|
12
12
|
AccessType[AccessType["ONLINE"] = 2] = "ONLINE";
|
|
13
13
|
AccessType[AccessType["BOTH"] = 3] = "BOTH";
|
|
14
14
|
})(AccessType || (AccessType = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Triplet — registers a placeholder with a default implementation.
|
|
17
|
+
*
|
|
18
|
+
* The placeholder is what gets registered in `customElements.define()` or `Router`.
|
|
19
|
+
* At runtime, the placeholder resolves the currently active {@link Implementation}
|
|
20
|
+
* and uses its markup, style, and class for the lifecycle.
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* // Default implementation registered via @ReComponent
|
|
24
|
+
* @ReComponent({ markupURL: './Button.hmle', cssURL: './Button.css' }, "re-button")
|
|
25
|
+
* class ReButton extends Component { ... }
|
|
26
|
+
*
|
|
27
|
+
* // Alternative implementation registered via @ReImplementation
|
|
28
|
+
* @ReImplementation({ markupURL: './FancyButton.hmle', cssURL: './Fancy.css' }, "re-button")
|
|
29
|
+
* class FancyButton extends Component { ... }
|
|
30
|
+
*
|
|
31
|
+
* // Switch globally — all re-button instances reload
|
|
32
|
+
* Placeholder.switchTo("re-button", "FancyButton");
|
|
33
|
+
*
|
|
34
|
+
* // Switch one instance only
|
|
35
|
+
* Placeholder.switchInstance("re-button", myBtnInstance, "FancyButton");
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
15
38
|
export default class Triplet {
|
|
16
|
-
markup;
|
|
17
|
-
css;
|
|
18
|
-
lightCss;
|
|
19
|
-
js;
|
|
20
|
-
markupURL;
|
|
21
|
-
cssURL;
|
|
22
|
-
ltCssURL;
|
|
23
|
-
jsURL;
|
|
24
39
|
access;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.cssURL = struct.cssURL;
|
|
29
|
-
this.ltCssURL = struct.ltCssURL;
|
|
30
|
-
this.jsURL = struct.jsURL;
|
|
31
|
-
let markup = Promise.resolve(struct.markup);
|
|
32
|
-
if (struct.markupURL)
|
|
33
|
-
markup = Fetcher.fetchText(struct.markupURL);
|
|
34
|
-
let css = Promise.resolve(struct.css);
|
|
35
|
-
if (struct.cssURL)
|
|
36
|
-
css = Fetcher.fetchText(struct.cssURL);
|
|
37
|
-
let ltCss = Promise.resolve(struct.ltCss);
|
|
38
|
-
if (struct.ltCssURL)
|
|
39
|
-
ltCss = Fetcher.fetchText(struct.ltCssURL);
|
|
40
|
-
/*let js = Promise.resolve(undefined);
|
|
41
|
-
if (struct.jsURL)
|
|
42
|
-
js = Fetcher.fetchText(struct.jsURL);*/
|
|
43
|
-
this.markup = markup;
|
|
44
|
-
this.css = css;
|
|
45
|
-
this.lightCss = ltCss;
|
|
46
|
-
//this.js = js;
|
|
40
|
+
placeholderName;
|
|
41
|
+
implementation;
|
|
42
|
+
constructor(struct, implName) {
|
|
47
43
|
this.access = struct.access ?? AccessType.BOTH;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
async init() {
|
|
51
|
-
const isOnline = await ServiceWorker.isOnline();
|
|
52
|
-
if (this.access === AccessType.NONE)
|
|
53
|
-
return false;
|
|
54
|
-
if (this.access === AccessType.BOTH) {
|
|
55
|
-
await this.cache();
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
;
|
|
59
|
-
if (this.access === AccessType.OFFLINE && isOnline)
|
|
60
|
-
return false;
|
|
61
|
-
if (this.access === AccessType.ONLINE && !isOnline)
|
|
62
|
-
return false;
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
async cache() {
|
|
66
|
-
//
|
|
44
|
+
const name = implName ?? struct.class?.name ?? "default";
|
|
45
|
+
this.implementation = new Implementation(name, struct);
|
|
67
46
|
}
|
|
68
47
|
async register(type, name) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
this.uni = Component;
|
|
76
|
-
break;
|
|
77
|
-
}
|
|
48
|
+
const placeholder = Placeholder.get(name);
|
|
49
|
+
placeholder.addImplementation(this.implementation);
|
|
50
|
+
// If the placeholder already has a registered element/route, skip re-registration
|
|
51
|
+
if (placeholder.implementations.size > 1) {
|
|
52
|
+
console.info(`[Triplet]: Implementation "${this.implementation.name}" added to existing placeholder "${name}"`);
|
|
53
|
+
return;
|
|
78
54
|
}
|
|
79
|
-
|
|
80
|
-
var style = await new CSSStyleSheet().replace(await this.lightCss);
|
|
81
|
-
document.adoptedStyleSheets = [
|
|
82
|
-
...document.adoptedStyleSheets,
|
|
83
|
-
style
|
|
84
|
-
];
|
|
85
|
-
}
|
|
86
|
-
let ori = this.createInjectedClass(this.uni, type);
|
|
55
|
+
// First implementation — register the placeholder shell
|
|
87
56
|
if (type === "router") {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
const
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
57
|
+
REGISTRY.push(() => {
|
|
58
|
+
const routePath = name;
|
|
59
|
+
Router.registerRoute("", routePath, (search) => {
|
|
60
|
+
const impl = placeholder.getActive();
|
|
61
|
+
const cls = impl.uniClass ?? Page;
|
|
62
|
+
const paramNames = (() => {
|
|
63
|
+
const ctor = cls.prototype.constructor;
|
|
64
|
+
const fnStr = ctor.toString();
|
|
65
|
+
const argsMatch = fnStr.match(/constructor\s*\(([^)]*)\)/);
|
|
66
|
+
if (!argsMatch)
|
|
67
|
+
return [];
|
|
68
|
+
return argsMatch[1].split(',').map(s => s.trim()).filter(Boolean);
|
|
69
|
+
})();
|
|
70
|
+
const args = paramNames.map(n => search?.get(n));
|
|
71
|
+
const instance = new cls(...args);
|
|
72
|
+
// Attach placeholder context to instance for _init resolution
|
|
73
|
+
instance._placeholderName = name;
|
|
74
|
+
instance._activeImplementation = impl;
|
|
75
|
+
placeholder.trackInstance(instance);
|
|
76
|
+
return instance;
|
|
100
77
|
});
|
|
101
|
-
|
|
78
|
+
console.info(`[Triplet]: Router route "${name}" registered as placeholder`);
|
|
102
79
|
});
|
|
103
|
-
console.info(`[Triplet]` + `: Router route '${name}' registered for path '${routePath}' by class ${ori}.`);
|
|
104
|
-
return reg.then(() => true).catch(() => false);
|
|
105
80
|
}
|
|
106
81
|
else if (type === "markup") {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
82
|
+
REGISTRY.push(() => {
|
|
83
|
+
if (customElements.get(name))
|
|
84
|
+
throw new Error(`Custom element '${name}' is already defined.`);
|
|
85
|
+
const cls = this.implementation.uniClass ?? Component;
|
|
86
|
+
const placeholderRef = placeholder;
|
|
87
|
+
const placeholderName = name;
|
|
88
|
+
// Create the placeholder class that delegates to the active implementation
|
|
89
|
+
let proto = cls.prototype;
|
|
90
|
+
proto._init = async function () {
|
|
91
|
+
// Resolve which implementation to use (per-instance override or global)
|
|
92
|
+
const impl = this._activeImplementation
|
|
93
|
+
?? placeholderRef.getActive();
|
|
94
|
+
if (!impl)
|
|
95
|
+
throw new Error(`[Placeholder:${placeholderName}]: No active implementation.`);
|
|
96
|
+
// Store for reload
|
|
97
|
+
this._placeholderName = placeholderName;
|
|
98
|
+
if (!this._activeImplementation)
|
|
99
|
+
this._activeImplementation = impl;
|
|
100
|
+
placeholderRef.trackInstance(this);
|
|
101
|
+
// Load markup
|
|
102
|
+
const markupText = await impl.markup;
|
|
103
|
+
const holder = TemplateEngine.createHolder(markupText, Scope.from(this));
|
|
104
|
+
// Apply scoped CSS
|
|
105
|
+
const dmc = this.shadowRoot ?? document;
|
|
106
|
+
const cssText = await impl.style;
|
|
107
|
+
if (cssText) {
|
|
108
|
+
dmc.adoptedStyleSheets.push(await new CSSStyleSheet().replace(cssText));
|
|
109
|
+
}
|
|
110
|
+
// Apply global CSS
|
|
111
|
+
const globalCss = await impl.globalStyle;
|
|
112
|
+
if (globalCss) {
|
|
113
|
+
document.adoptedStyleSheets.push(await new CSSStyleSheet().replace(globalCss));
|
|
114
|
+
}
|
|
115
|
+
return holder;
|
|
116
|
+
};
|
|
117
|
+
customElements.define(name, cls.prototype.constructor);
|
|
118
|
+
console.info(`[Triplet]: Custom element "${name}" registered as placeholder`);
|
|
119
|
+
});
|
|
112
120
|
}
|
|
113
|
-
return Promise.resolve(false);
|
|
114
|
-
}
|
|
115
|
-
createInjectedClass(c, type) {
|
|
116
|
-
let that = this;
|
|
117
|
-
let ori = class extends c {
|
|
118
|
-
constructor(...args) {
|
|
119
|
-
super(...args);
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
let proto = ori.prototype;
|
|
123
|
-
const parser = new TemplateEngine();
|
|
124
|
-
proto._init = async function () {
|
|
125
|
-
const markupText = await that.markup;
|
|
126
|
-
return TemplateEngine.createHolder(markupText, Scope.from(this));
|
|
127
|
-
};
|
|
128
|
-
proto._postInit = async function (preHtml) {
|
|
129
|
-
const dmc = this.shadowRoot ?? document;
|
|
130
|
-
const css = await that.css;
|
|
131
|
-
var style = await new CSSStyleSheet().replace(css);
|
|
132
|
-
dmc.adoptedStyleSheets = [
|
|
133
|
-
...dmc.adoptedStyleSheets,
|
|
134
|
-
style
|
|
135
|
-
];
|
|
136
|
-
//parser.hydrate(preHtml, this);
|
|
137
|
-
return preHtml;
|
|
138
|
-
};
|
|
139
|
-
return ori;
|
|
140
121
|
}
|
|
141
122
|
}
|
|
142
123
|
//# sourceMappingURL=Triplet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import { TripletStruct } from "./Triplet.js";
|
|
2
2
|
export declare function ReComponent(settings: TripletStruct, tag: string): (ctor: Function) => void;
|
|
3
3
|
export declare function RePage(settings: TripletStruct, route: string): (ctor: Function) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Register an alternative implementation for an existing placeholder.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* @ReImplementation({ markupURL: './Fancy.hmle', cssURL: './Fancy.css' }, "re-button")
|
|
9
|
+
* class FancyButton extends Component { ... }
|
|
10
|
+
*
|
|
11
|
+
* // Then switch: Placeholder.switchTo("re-button", "FancyButton");
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
export declare function ReImplementation(settings: TripletStruct, target: string): (ctor: Function) => void;
|
|
4
15
|
//# sourceMappingURL=TripletDecorator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripletDecorator.d.ts","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAgB,
|
|
1
|
+
{"version":3,"file":"TripletDecorator.d.ts","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAErD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,IACpD,MAAM,QAAQ,UAYzB;AACD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,IACjD,MAAM,QAAQ,UAYzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,IAC5D,MAAM,QAAQ,UAiBzB"}
|
|
@@ -7,10 +7,6 @@ export function ReComponent(settings, tag) {
|
|
|
7
7
|
settings.class = ctor;
|
|
8
8
|
const triplet = new Triplet(settings);
|
|
9
9
|
triplet.register("markup", tag)
|
|
10
|
-
.then(ok => {
|
|
11
|
-
if (!ok)
|
|
12
|
-
console.error(`[ReComponent:${tag}] registration returned false`);
|
|
13
|
-
})
|
|
14
10
|
.catch(err => console.error(`[ReComponent:${tag}] register failed`, err));
|
|
15
11
|
};
|
|
16
12
|
}
|
|
@@ -22,11 +18,32 @@ export function RePage(settings, route) {
|
|
|
22
18
|
settings.class = ctor;
|
|
23
19
|
const triplet = new Triplet(settings);
|
|
24
20
|
triplet.register("router", route)
|
|
25
|
-
.then(ok => {
|
|
26
|
-
if (!ok)
|
|
27
|
-
console.error(`[RePage:${route}] registration returned false`);
|
|
28
|
-
})
|
|
29
21
|
.catch(err => console.error(`[RePage:${route}] register failed`, err));
|
|
30
22
|
};
|
|
31
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Register an alternative implementation for an existing placeholder.
|
|
26
|
+
*
|
|
27
|
+
* ```ts
|
|
28
|
+
* @ReImplementation({ markupURL: './Fancy.hmle', cssURL: './Fancy.css' }, "re-button")
|
|
29
|
+
* class FancyButton extends Component { ... }
|
|
30
|
+
*
|
|
31
|
+
* // Then switch: Placeholder.switchTo("re-button", "FancyButton");
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function ReImplementation(settings, target) {
|
|
35
|
+
return (ctor) => {
|
|
36
|
+
if (target == null || target.length === 0)
|
|
37
|
+
throw new Error("Invalid implementation target.");
|
|
38
|
+
if (settings.class === null || settings.class === undefined)
|
|
39
|
+
settings.class = ctor;
|
|
40
|
+
// Use the class name as the implementation name
|
|
41
|
+
const implName = ctor.name;
|
|
42
|
+
const triplet = new Triplet(settings, implName);
|
|
43
|
+
// Register adds the implementation to the existing placeholder (or creates one)
|
|
44
|
+
triplet.register(target.includes("-") ? "markup" : "router", target)
|
|
45
|
+
.catch(err => console.error(`[ReImplementation:${target}] register failed`, err));
|
|
46
|
+
console.info(`[ReImplementation:${target}] registered implementation "${implName}"`);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
32
49
|
//# sourceMappingURL=TripletDecorator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripletDecorator.js","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"TripletDecorator.js","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAO,OAA0B,MAAM,cAAc,CAAA;AAErD,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,GAAW;IAC5D,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACvD,QAAQ,CAAC,KAAK,GAAG,IAA+B,CAAC;QAErD,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;aAC1B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC,CAAA;AACL,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAuB,EAAE,KAAa;IACzD,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE3C,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACvD,QAAQ,CAAC,KAAK,GAAG,IAA+B,CAAC;QAErD,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;aAC5B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAA;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAuB,EAAE,MAAc;IACpE,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAEtD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACvD,QAAQ,CAAC,KAAK,GAAG,IAA+B,CAAC;QAErD,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3B,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEzD,gFAAgF;QAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC/D,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,MAAM,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;QAEtF,OAAO,CAAC,IAAI,CAAC,qBAAqB,MAAM,gCAAgC,QAAQ,GAAG,CAAC,CAAC;IACzF,CAAC,CAAA;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAS,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,OAAO,EAAE,WAAW,EAAE,OAAO;CAAI;;;;;;;AAC5E,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAA2C,YAAW,iBAAiB;IAC1G,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO,CAAC,0BAA0B,CAAC,CAA2D;;IAQ9F,WAAW,IAAI,IAAI;IAGnB,cAAc,IAAI,IAAI;IAGtB,OAAO,IAAI,IAAI;IAGf,SAAS,IAAI,IAAI;IAIjB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGpE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKhG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhG;;OAEG;IACH,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAS,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,OAAO,EAAE,WAAW,EAAE,OAAO;CAAI;;;;;;;AAC5E,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAA2C,YAAW,iBAAiB;IAC1G,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO,CAAC,0BAA0B,CAAC,CAA2D;;IAQ9F,WAAW,IAAI,IAAI;IAGnB,cAAc,IAAI,IAAI;IAGtB,OAAO,IAAI,IAAI;IAGf,SAAS,IAAI,IAAI;IAIjB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGpE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKhG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhG;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAG7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAGvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAInC;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,IAAI,IAAI,CAAC;IAElB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,oBAAoB,IAAI,IAAI,CAAC;IAC7B,qBAAqB,IAAI,IAAI,CAAC;IAC9B,eAAe,IAAI,IAAI,CAAC;IAExB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAGlD,OAAO,EAAE,KAAK,EAAW,MAAM,kBAAkB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;IACrE,WAAW,GAAgB,EAAE,CAAC;IAE9B,0BAA0B,CAA4D;IAC9F;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,WAAW;IACX,CAAC;IAED,cAAc;IACd,CAAC;IAED,OAAO;IACP,CAAC;IAED,SAAS;IACT,CAAC;IAGD,kBAAkB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;IAC7D,CAAC;IAED,0BAA0B,CAAC,QAA8D;QACrF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACH,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;gBACD,SAAS;YACb,CAAC;YACA,IAAY,CAAC,UAAU,CAAC,EAAS,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACS,MAAM,CAAC,OAAuB,EAAE,YAAsC;QAC5E,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAU,CAAA,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9E,sCAAsC;QACtC,6CAA6C;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD;;OAEG;IACK,oBAAoB;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,13 @@ import { TemplateHolder } from "../engine/TemplateEngine.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export default class UniHtml {
|
|
8
8
|
_status: Observable<"constructed" | "loading" | "ready">;
|
|
9
|
+
protected _templateHolder?: TemplateHolder;
|
|
9
10
|
/**
|
|
10
11
|
* Unified component lifecycle entrypoint.
|
|
11
12
|
* Loads HTML, then calls preLoadJS, render, and postLoadJS hooks in order.
|
|
12
13
|
* @param element Target container (usually shadowRoot.host)
|
|
13
14
|
*/
|
|
14
15
|
load(element: HTMLElement | ShadowRoot): Promise<void>;
|
|
15
|
-
private _postInit;
|
|
16
16
|
private _init;
|
|
17
17
|
protected preInit(): Promise<void>;
|
|
18
18
|
/**
|
|
@@ -37,5 +37,10 @@ export default class UniHtml {
|
|
|
37
37
|
*/
|
|
38
38
|
protected render(holder: TemplateHolder, renderTarget: HTMLElement | DocumentFragment): Promise<void>;
|
|
39
39
|
dispose(): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Reload this instance: dispose current state, then re-run the full lifecycle.
|
|
42
|
+
* Called automatically when the active Implementation is switched via Placeholder.
|
|
43
|
+
*/
|
|
44
|
+
reload(): Promise<void>;
|
|
40
45
|
}
|
|
41
46
|
//# sourceMappingURL=UniHtml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAiC;
|
|
1
|
+
{"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAiC;IAChG,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAE3C;;;;OAIG;IACU,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBrD,KAAK;cAIH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC;;;;;OAKG;cACa,OAAO,CAAC,MAAM,EAAE,cAAc;IAC9C;;;;;OAKG;cACa,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/C;;;;;OAKG;cACa,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC;;;OAGG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAmBvC"}
|
|
@@ -5,6 +5,7 @@ import Observable from "../api/Observer.js";
|
|
|
5
5
|
*/
|
|
6
6
|
export default class UniHtml {
|
|
7
7
|
_status = new Observable("constructed");
|
|
8
|
+
_templateHolder;
|
|
8
9
|
/**
|
|
9
10
|
* Unified component lifecycle entrypoint.
|
|
10
11
|
* Loads HTML, then calls preLoadJS, render, and postLoadJS hooks in order.
|
|
@@ -12,13 +13,14 @@ export default class UniHtml {
|
|
|
12
13
|
*/
|
|
13
14
|
async load(element) {
|
|
14
15
|
this._status.setObject("loading");
|
|
16
|
+
this._lastRenderTarget = element;
|
|
15
17
|
await this.preInit();
|
|
16
|
-
const
|
|
17
|
-
const html = await this._postInit(preHtml);
|
|
18
|
+
const html = await this._init();
|
|
18
19
|
// ВАЖНО: preLoad() вызывается ДО монтирования в DOM/Shadow DOM.
|
|
19
20
|
// Для компонентов (UniHtmlComponent) на этом этапе ещё нельзя полагаться на this.shadowRoot —
|
|
20
21
|
// используйте переданный localRoot для подготовки DOM, данных и навешивания обработчиков.
|
|
21
22
|
// Это предпочтительный этап инициализации для компонентов.
|
|
23
|
+
this._templateHolder = html;
|
|
22
24
|
await this.preLoad(html);
|
|
23
25
|
// render() отвечает за помещение содержимого из localRoot в конечную цель (renderTarget).
|
|
24
26
|
// В UniHtmlComponent.render() после вызова базового render() происходит добавление wrapper в shadowRoot.
|
|
@@ -28,9 +30,6 @@ export default class UniHtml {
|
|
|
28
30
|
await this.postLoad(html);
|
|
29
31
|
this._status.setObject("ready");
|
|
30
32
|
}
|
|
31
|
-
async _postInit(html) {
|
|
32
|
-
throw new Error("Method not implemented.");
|
|
33
|
-
}
|
|
34
33
|
async _init() {
|
|
35
34
|
throw new Error("Method not implemented.");
|
|
36
35
|
}
|
|
@@ -71,13 +70,39 @@ export default class UniHtml {
|
|
|
71
70
|
resolve();
|
|
72
71
|
}
|
|
73
72
|
};
|
|
74
|
-
child.addEventListener("status-change",
|
|
73
|
+
child.addEventListener("status-change", handler);
|
|
75
74
|
});
|
|
76
75
|
promises.push(promise);
|
|
77
76
|
}
|
|
78
77
|
holder.pushTo(renderTarget);
|
|
79
78
|
return Promise.all(promises).then(() => { return; });
|
|
80
79
|
}
|
|
81
|
-
async dispose() {
|
|
80
|
+
async dispose() {
|
|
81
|
+
if (this._templateHolder) {
|
|
82
|
+
this._templateHolder.engine.dispose();
|
|
83
|
+
this._templateHolder = undefined;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Reload this instance: dispose current state, then re-run the full lifecycle.
|
|
88
|
+
* Called automatically when the active Implementation is switched via Placeholder.
|
|
89
|
+
*/
|
|
90
|
+
async reload() {
|
|
91
|
+
const renderTarget = this.shadowRoot ?? this._lastRenderTarget;
|
|
92
|
+
await this.dispose();
|
|
93
|
+
this._status.setObject("constructed");
|
|
94
|
+
if (renderTarget) {
|
|
95
|
+
// Clear existing content
|
|
96
|
+
while (renderTarget.firstChild) {
|
|
97
|
+
renderTarget.removeChild(renderTarget.firstChild);
|
|
98
|
+
}
|
|
99
|
+
// Clear adopted stylesheets so the new implementation applies its own
|
|
100
|
+
if ('adoptedStyleSheets' in renderTarget) {
|
|
101
|
+
renderTarget.adoptedStyleSheets = [];
|
|
102
|
+
}
|
|
103
|
+
await this.load(renderTarget);
|
|
104
|
+
}
|
|
105
|
+
console.info(`[UniHtml]: Instance reloaded`);
|
|
106
|
+
}
|
|
82
107
|
}
|
|
83
108
|
//# sourceMappingURL=UniHtml.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAI5C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,GAAoD,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export default class Expression {
|
|
|
16
16
|
private readonly code;
|
|
17
17
|
private readonly isAsync;
|
|
18
18
|
private readonly hasReturn;
|
|
19
|
+
private static fnCache;
|
|
20
|
+
private static readonly FN_CACHE_MAX;
|
|
19
21
|
constructor(code: string);
|
|
20
22
|
/**
|
|
21
23
|
* Определить, содержит ли код await
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;
|
|
1
|
+
{"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IAEpC,OAAO,CAAC,MAAM,CAAC,OAAO,CAA+B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAO;gBAE/B,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;IAmBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAqB1C;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAkBlE;;OAEG;IACU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8DxB;;OAEG;YACW,qBAAqB;IAkDnC;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAInC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9E;;OAEG;WACW,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAKxF;;OAEG;WACiB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAI/G"}
|
|
@@ -15,6 +15,8 @@ export default class Expression {
|
|
|
15
15
|
code;
|
|
16
16
|
isAsync;
|
|
17
17
|
hasReturn;
|
|
18
|
+
static fnCache = new Map();
|
|
19
|
+
static FN_CACHE_MAX = 500;
|
|
18
20
|
constructor(code) {
|
|
19
21
|
this.code = code.trim();
|
|
20
22
|
this.isAsync = this.detectAsync(this.code);
|
|
@@ -180,21 +182,34 @@ export default class Expression {
|
|
|
180
182
|
functionBody = `return (${codeToExecute})`;
|
|
181
183
|
}
|
|
182
184
|
try {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
}
|
|
187
|
-
catch (syntaxError) {
|
|
188
|
-
// If implicit return fails, try without it (for statements)
|
|
189
|
-
if (!this.hasReturn) {
|
|
185
|
+
const cacheKey = keys.join('\0') + '\0' + functionBody;
|
|
186
|
+
let fn = Expression.fnCache.get(cacheKey);
|
|
187
|
+
if (!fn) {
|
|
190
188
|
try {
|
|
191
|
-
|
|
192
|
-
return fn.apply(null, values);
|
|
189
|
+
fn = new Function(...keys, functionBody);
|
|
193
190
|
}
|
|
194
|
-
catch {
|
|
195
|
-
|
|
191
|
+
catch (syntaxError) {
|
|
192
|
+
if (!this.hasReturn) {
|
|
193
|
+
try {
|
|
194
|
+
fn = new Function(...keys, codeToExecute);
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
throw syntaxError;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
throw syntaxError;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (Expression.fnCache.size >= Expression.FN_CACHE_MAX) {
|
|
205
|
+
const firstKey = Expression.fnCache.keys().next().value;
|
|
206
|
+
Expression.fnCache.delete(firstKey);
|
|
196
207
|
}
|
|
208
|
+
Expression.fnCache.set(cacheKey, fn);
|
|
197
209
|
}
|
|
210
|
+
return fn.apply(null, values);
|
|
211
|
+
}
|
|
212
|
+
catch (syntaxError) {
|
|
198
213
|
throw syntaxError;
|
|
199
214
|
}
|
|
200
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AACA,OAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACV,IAAI,CAAS;IACb,OAAO,CAAU;IACjB,SAAS,CAAU;
|
|
1
|
+
{"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"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"}
|