@merkur/svelte 0.38.0 → 0.39.0
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 +1 -1
- package/lib/client/client.cjs +82 -65
- package/lib/client/client.js +82 -65
- package/lib/client/client.mjs +82 -65
- package/lib/server/server.cjs +46 -39
- package/lib/server/server.js +46 -39
- package/lib/server/server.mjs +46 -39
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://merkur.js.org/docs/getting-started" title="Getting started">
|
|
3
|
-
<img src="https://raw.githubusercontent.com/mjancarik/merkur/master/images/merkur-
|
|
3
|
+
<img src="https://raw.githubusercontent.com/mjancarik/merkur/master/images/merkur-logo.png" width="100px" height="100px" alt="Merkur illustration"/>
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
package/lib/client/client.cjs
CHANGED
|
@@ -7,71 +7,88 @@ var helpers = require('@merkur/plugin-component/helpers');
|
|
|
7
7
|
*
|
|
8
8
|
* Client Factory for creating merkur widgets with svelte renderer.
|
|
9
9
|
*/
|
|
10
|
-
function createSvelteWidget({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
10
|
+
function createSvelteWidget({
|
|
11
|
+
name,
|
|
12
|
+
version,
|
|
13
|
+
viewFactory,
|
|
14
|
+
...restProps
|
|
15
|
+
}) {
|
|
16
|
+
const widgetFactory = async widgetParams => core.createMerkurWidget({
|
|
17
|
+
...restProps,
|
|
18
|
+
...widgetParams,
|
|
19
|
+
shouldHydrate(widget, {
|
|
20
|
+
container
|
|
21
|
+
}) {
|
|
22
|
+
return !!container?.children?.length;
|
|
23
|
+
},
|
|
24
|
+
async mount(widget) {
|
|
25
|
+
widget.$external.app = {};
|
|
26
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
27
|
+
View,
|
|
28
|
+
ErrorView,
|
|
29
|
+
container,
|
|
30
|
+
containerSelector,
|
|
31
|
+
...rest
|
|
32
|
+
}) => {
|
|
33
|
+
if (!container) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const hydrate = widget.shouldHydrate({
|
|
37
|
+
View,
|
|
38
|
+
ErrorView,
|
|
39
|
+
container,
|
|
40
|
+
containerSelector,
|
|
41
|
+
...rest
|
|
42
|
+
});
|
|
43
|
+
const renderView = RenderedView => {
|
|
44
|
+
widget.$external.app[containerSelector] = new RenderedView({
|
|
45
|
+
target: container,
|
|
46
|
+
props: {
|
|
47
|
+
widget,
|
|
48
|
+
state: widget.state,
|
|
49
|
+
props: widget.props
|
|
50
|
+
},
|
|
51
|
+
hydrate
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
55
|
+
if (widget?.error?.status && ErrorView) {
|
|
56
|
+
return renderView(ErrorView);
|
|
57
|
+
}
|
|
58
|
+
return renderView(View);
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
async update(widget) {
|
|
62
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
63
|
+
containerSelector
|
|
64
|
+
}) => {
|
|
65
|
+
if (!widget.$external.app[containerSelector]) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
widget.$external.app[containerSelector].$set({
|
|
69
|
+
state: widget.state,
|
|
70
|
+
props: widget.props
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
async unmount(widget) {
|
|
75
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
76
|
+
containerSelector
|
|
77
|
+
}) => {
|
|
78
|
+
if (!widget.$external.app[containerSelector]) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
widget.$external.app[containerSelector].$destroy();
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
// Register widget factory on client
|
|
86
|
+
core.createMerkur().register({
|
|
87
|
+
name,
|
|
88
|
+
version,
|
|
89
|
+
createWidget: widgetFactory
|
|
90
|
+
});
|
|
91
|
+
return widgetFactory;
|
|
75
92
|
}
|
|
76
93
|
|
|
77
94
|
exports.createSvelteWidget = createSvelteWidget;
|
package/lib/client/client.js
CHANGED
|
@@ -7,71 +7,88 @@ var helpers = require('@merkur/plugin-component/helpers');
|
|
|
7
7
|
*
|
|
8
8
|
* Client Factory for creating merkur widgets with svelte renderer.
|
|
9
9
|
*/
|
|
10
|
-
function createSvelteWidget({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
10
|
+
function createSvelteWidget({
|
|
11
|
+
name,
|
|
12
|
+
version,
|
|
13
|
+
viewFactory,
|
|
14
|
+
...restProps
|
|
15
|
+
}) {
|
|
16
|
+
const widgetFactory = async widgetParams => core.createMerkurWidget({
|
|
17
|
+
...restProps,
|
|
18
|
+
...widgetParams,
|
|
19
|
+
shouldHydrate(widget, {
|
|
20
|
+
container
|
|
21
|
+
}) {
|
|
22
|
+
return !!container?.children?.length;
|
|
23
|
+
},
|
|
24
|
+
async mount(widget) {
|
|
25
|
+
widget.$external.app = {};
|
|
26
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
27
|
+
View,
|
|
28
|
+
ErrorView,
|
|
29
|
+
container,
|
|
30
|
+
containerSelector,
|
|
31
|
+
...rest
|
|
32
|
+
}) => {
|
|
33
|
+
if (!container) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const hydrate = widget.shouldHydrate({
|
|
37
|
+
View,
|
|
38
|
+
ErrorView,
|
|
39
|
+
container,
|
|
40
|
+
containerSelector,
|
|
41
|
+
...rest
|
|
42
|
+
});
|
|
43
|
+
const renderView = RenderedView => {
|
|
44
|
+
widget.$external.app[containerSelector] = new RenderedView({
|
|
45
|
+
target: container,
|
|
46
|
+
props: {
|
|
47
|
+
widget,
|
|
48
|
+
state: widget.state,
|
|
49
|
+
props: widget.props
|
|
50
|
+
},
|
|
51
|
+
hydrate
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
55
|
+
if (widget?.error?.status && ErrorView) {
|
|
56
|
+
return renderView(ErrorView);
|
|
57
|
+
}
|
|
58
|
+
return renderView(View);
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
async update(widget) {
|
|
62
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
63
|
+
containerSelector
|
|
64
|
+
}) => {
|
|
65
|
+
if (!widget.$external.app[containerSelector]) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
widget.$external.app[containerSelector].$set({
|
|
69
|
+
state: widget.state,
|
|
70
|
+
props: widget.props
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
async unmount(widget) {
|
|
75
|
+
await helpers.mapViews(widget, viewFactory, ({
|
|
76
|
+
containerSelector
|
|
77
|
+
}) => {
|
|
78
|
+
if (!widget.$external.app[containerSelector]) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
widget.$external.app[containerSelector].$destroy();
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
// Register widget factory on client
|
|
86
|
+
core.createMerkur().register({
|
|
87
|
+
name,
|
|
88
|
+
version,
|
|
89
|
+
createWidget: widgetFactory
|
|
90
|
+
});
|
|
91
|
+
return widgetFactory;
|
|
75
92
|
}
|
|
76
93
|
|
|
77
94
|
exports.createSvelteWidget = createSvelteWidget;
|
package/lib/client/client.mjs
CHANGED
|
@@ -5,71 +5,88 @@ import { mapViews } from '@merkur/plugin-component/helpers';
|
|
|
5
5
|
*
|
|
6
6
|
* Client Factory for creating merkur widgets with svelte renderer.
|
|
7
7
|
*/
|
|
8
|
-
function createSvelteWidget({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
8
|
+
function createSvelteWidget({
|
|
9
|
+
name,
|
|
10
|
+
version,
|
|
11
|
+
viewFactory,
|
|
12
|
+
...restProps
|
|
13
|
+
}) {
|
|
14
|
+
const widgetFactory = async widgetParams => createMerkurWidget({
|
|
15
|
+
...restProps,
|
|
16
|
+
...widgetParams,
|
|
17
|
+
shouldHydrate(widget, {
|
|
18
|
+
container
|
|
19
|
+
}) {
|
|
20
|
+
return !!container?.children?.length;
|
|
21
|
+
},
|
|
22
|
+
async mount(widget) {
|
|
23
|
+
widget.$external.app = {};
|
|
24
|
+
await mapViews(widget, viewFactory, ({
|
|
25
|
+
View,
|
|
26
|
+
ErrorView,
|
|
27
|
+
container,
|
|
28
|
+
containerSelector,
|
|
29
|
+
...rest
|
|
30
|
+
}) => {
|
|
31
|
+
if (!container) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const hydrate = widget.shouldHydrate({
|
|
35
|
+
View,
|
|
36
|
+
ErrorView,
|
|
37
|
+
container,
|
|
38
|
+
containerSelector,
|
|
39
|
+
...rest
|
|
40
|
+
});
|
|
41
|
+
const renderView = RenderedView => {
|
|
42
|
+
widget.$external.app[containerSelector] = new RenderedView({
|
|
43
|
+
target: container,
|
|
44
|
+
props: {
|
|
45
|
+
widget,
|
|
46
|
+
state: widget.state,
|
|
47
|
+
props: widget.props
|
|
48
|
+
},
|
|
49
|
+
hydrate
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
53
|
+
if (widget?.error?.status && ErrorView) {
|
|
54
|
+
return renderView(ErrorView);
|
|
55
|
+
}
|
|
56
|
+
return renderView(View);
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
async update(widget) {
|
|
60
|
+
await mapViews(widget, viewFactory, ({
|
|
61
|
+
containerSelector
|
|
62
|
+
}) => {
|
|
63
|
+
if (!widget.$external.app[containerSelector]) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
widget.$external.app[containerSelector].$set({
|
|
67
|
+
state: widget.state,
|
|
68
|
+
props: widget.props
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
async unmount(widget) {
|
|
73
|
+
await mapViews(widget, viewFactory, ({
|
|
74
|
+
containerSelector
|
|
75
|
+
}) => {
|
|
76
|
+
if (!widget.$external.app[containerSelector]) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
widget.$external.app[containerSelector].$destroy();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
// Register widget factory on client
|
|
84
|
+
createMerkur().register({
|
|
85
|
+
name,
|
|
86
|
+
version,
|
|
87
|
+
createWidget: widgetFactory
|
|
88
|
+
});
|
|
89
|
+
return widgetFactory;
|
|
73
90
|
}
|
|
74
91
|
|
|
75
92
|
export { createSvelteWidget };
|
package/lib/server/server.cjs
CHANGED
|
@@ -5,45 +5,52 @@ var core = require('@merkur/core');
|
|
|
5
5
|
/**
|
|
6
6
|
* Server Factory for creating merkur widgets with svelte renderer.
|
|
7
7
|
*/
|
|
8
|
-
function createSvelteWidget({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
8
|
+
function createSvelteWidget({
|
|
9
|
+
viewFactory,
|
|
10
|
+
...restProps
|
|
11
|
+
}) {
|
|
12
|
+
return widgetParams => core.createMerkurWidget({
|
|
13
|
+
...restProps,
|
|
14
|
+
...widgetParams,
|
|
15
|
+
async mount(widget) {
|
|
16
|
+
const {
|
|
17
|
+
View: MainView,
|
|
18
|
+
ErrorView,
|
|
19
|
+
slot = {}
|
|
20
|
+
} = await viewFactory(widget);
|
|
21
|
+
const renderParams = {
|
|
22
|
+
widget,
|
|
23
|
+
state: widget.state,
|
|
24
|
+
props: widget.props
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Wrapper around $dependencies.render function which
|
|
28
|
+
* handles connection to ErrorView and error plugin when defined.
|
|
29
|
+
*/
|
|
30
|
+
const renderView = View => {
|
|
31
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
32
|
+
if (widget?.error?.status && ErrorView) {
|
|
33
|
+
return ErrorView.render(renderParams)?.html ?? '';
|
|
34
|
+
}
|
|
35
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
36
|
+
if (widget?.error?.status) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
return View.render(renderParams)?.html ?? '';
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
html: renderView(MainView),
|
|
43
|
+
slot: Object.keys(slot).reduce((acc, cur) => {
|
|
44
|
+
acc[cur] = {
|
|
45
|
+
name: slot[cur].name,
|
|
46
|
+
containerSelector: slot[cur].containerSelector,
|
|
47
|
+
html: renderView(slot[cur].View)
|
|
48
|
+
};
|
|
49
|
+
return acc;
|
|
50
|
+
}, {})
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
exports.createSvelteWidget = createSvelteWidget;
|
package/lib/server/server.js
CHANGED
|
@@ -5,45 +5,52 @@ var core = require('@merkur/core');
|
|
|
5
5
|
/**
|
|
6
6
|
* Server Factory for creating merkur widgets with svelte renderer.
|
|
7
7
|
*/
|
|
8
|
-
function createSvelteWidget({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
8
|
+
function createSvelteWidget({
|
|
9
|
+
viewFactory,
|
|
10
|
+
...restProps
|
|
11
|
+
}) {
|
|
12
|
+
return widgetParams => core.createMerkurWidget({
|
|
13
|
+
...restProps,
|
|
14
|
+
...widgetParams,
|
|
15
|
+
async mount(widget) {
|
|
16
|
+
const {
|
|
17
|
+
View: MainView,
|
|
18
|
+
ErrorView,
|
|
19
|
+
slot = {}
|
|
20
|
+
} = await viewFactory(widget);
|
|
21
|
+
const renderParams = {
|
|
22
|
+
widget,
|
|
23
|
+
state: widget.state,
|
|
24
|
+
props: widget.props
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Wrapper around $dependencies.render function which
|
|
28
|
+
* handles connection to ErrorView and error plugin when defined.
|
|
29
|
+
*/
|
|
30
|
+
const renderView = View => {
|
|
31
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
32
|
+
if (widget?.error?.status && ErrorView) {
|
|
33
|
+
return ErrorView.render(renderParams)?.html ?? '';
|
|
34
|
+
}
|
|
35
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
36
|
+
if (widget?.error?.status) {
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
return View.render(renderParams)?.html ?? '';
|
|
40
|
+
};
|
|
41
|
+
return {
|
|
42
|
+
html: renderView(MainView),
|
|
43
|
+
slot: Object.keys(slot).reduce((acc, cur) => {
|
|
44
|
+
acc[cur] = {
|
|
45
|
+
name: slot[cur].name,
|
|
46
|
+
containerSelector: slot[cur].containerSelector,
|
|
47
|
+
html: renderView(slot[cur].View)
|
|
48
|
+
};
|
|
49
|
+
return acc;
|
|
50
|
+
}, {})
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
exports.createSvelteWidget = createSvelteWidget;
|
package/lib/server/server.mjs
CHANGED
|
@@ -3,45 +3,52 @@ import { createMerkurWidget } from '@merkur/core';
|
|
|
3
3
|
/**
|
|
4
4
|
* Server Factory for creating merkur widgets with svelte renderer.
|
|
5
5
|
*/
|
|
6
|
-
function createSvelteWidget({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
6
|
+
function createSvelteWidget({
|
|
7
|
+
viewFactory,
|
|
8
|
+
...restProps
|
|
9
|
+
}) {
|
|
10
|
+
return widgetParams => createMerkurWidget({
|
|
11
|
+
...restProps,
|
|
12
|
+
...widgetParams,
|
|
13
|
+
async mount(widget) {
|
|
14
|
+
const {
|
|
15
|
+
View: MainView,
|
|
16
|
+
ErrorView,
|
|
17
|
+
slot = {}
|
|
18
|
+
} = await viewFactory(widget);
|
|
19
|
+
const renderParams = {
|
|
20
|
+
widget,
|
|
21
|
+
state: widget.state,
|
|
22
|
+
props: widget.props
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Wrapper around $dependencies.render function which
|
|
26
|
+
* handles connection to ErrorView and error plugin when defined.
|
|
27
|
+
*/
|
|
28
|
+
const renderView = View => {
|
|
29
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
30
|
+
if (widget?.error?.status && ErrorView) {
|
|
31
|
+
return ErrorView.render(renderParams)?.html ?? '';
|
|
32
|
+
}
|
|
33
|
+
// @ts-expect-error the @merkur/plugin-error is optional
|
|
34
|
+
if (widget?.error?.status) {
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
return View.render(renderParams)?.html ?? '';
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
html: renderView(MainView),
|
|
41
|
+
slot: Object.keys(slot).reduce((acc, cur) => {
|
|
42
|
+
acc[cur] = {
|
|
43
|
+
name: slot[cur].name,
|
|
44
|
+
containerSelector: slot[cur].containerSelector,
|
|
45
|
+
html: renderView(slot[cur].View)
|
|
46
|
+
};
|
|
47
|
+
return acc;
|
|
48
|
+
}, {})
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
45
52
|
}
|
|
46
53
|
|
|
47
54
|
export { createSvelteWidget };
|
package/package.json
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merkur/svelte",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.39.0",
|
|
4
4
|
"description": "Collection of helpers to aid with Svelte integration to @merkur",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo 'Tests pass.'",
|
|
7
7
|
"test:es:version": "echo 'Tests pass.'",
|
|
8
8
|
"build": "rollup -c rollup.config.mjs",
|
|
9
|
-
"prepare": "npm run build",
|
|
10
9
|
"dev": "rollup -c rollup.config.mjs -w"
|
|
11
10
|
},
|
|
12
11
|
"exports": {
|
|
@@ -54,5 +53,5 @@
|
|
|
54
53
|
"svelte": "^3.59.2",
|
|
55
54
|
"svelte-loader": "^3.2.0"
|
|
56
55
|
},
|
|
57
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "8ad2c8b26246850ce6289502a8b05e882f80ce31"
|
|
58
57
|
}
|