Skip to content

Commit 52bb0df

Browse files
committed
Add renderInPlaceholder function
1 parent 220ff1d commit 52bb0df

File tree

2 files changed

+26
-11
lines changed

2 files changed

+26
-11
lines changed

package.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "hypernova-svelte",
3-
"version": "1.0.1",
3+
"version": "1.1.0",
44
"description": "Svelte Bindings for Hypernova",
55
"main": "lib/index.js",
66
"author": "Felipe Guizar Diaz <felipegaiacharly@gmail.com>",
@@ -20,12 +20,15 @@
2020
"lint": "eslint src",
2121
"build": "babel src -d lib"
2222
},
23-
"peerDependencies": {
24-
"hypernova": "^2.5.0"
23+
"dependencies": {
24+
"hypernova": "^2.5.0",
25+
"nova-helpers": "^1.0.1-alpha.0"
2526
},
2627
"devDependencies": {
27-
"babel-cli": "^6.26.0",
28-
"babel-preset-airbnb": "^2.5.3",
28+
"@babel/cli": "^7.5.5",
29+
"@babel/core": "^7.5.5",
30+
"@babel/runtime": "^7.5.5",
31+
"babel-preset-airbnb": "^4.0.1",
2932
"eslint": "^5.14.1",
3033
"eslint-config-airbnb-base": "^13.1.0",
3134
"eslint-plugin-import": "^2.16.0"

src/index.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
11
import hypernova, { serialize, load } from 'hypernova';
2+
import { findNode, getData } from 'nova-helpers';
23

3-
export const something = {};
4+
const mountComponent = (Component, node, data) => {
5+
return new Component({
6+
target: node,
7+
props: data,
8+
hydrate: true,
9+
});
10+
};
11+
12+
export const renderInPlaceholder = (name, Component, id) => {
13+
const node = findNode(name, id);
14+
const data = getData(name, id);
15+
16+
if (node && data) {
17+
mountComponent(Component, node, data);
18+
}
19+
};
420

521
export const renderSvelte = (name, Component) => hypernova({
622
server() {
@@ -17,11 +33,7 @@ export const renderSvelte = (name, Component) => hypernova({
1733
payloads.forEach((payload) => {
1834
const { node, data: propsData } = payload;
1935

20-
return new Component({
21-
target: node,
22-
props: propsData,
23-
hydrate: true,
24-
});
36+
return mountComponent(Component, node, propsData);
2537
});
2638
}
2739

0 commit comments

Comments
 (0)