Skip to content

Commit 3a45302

Browse files
author
Anthony Du Pont
committed
Add Dynamic Import for Renderers
1 parent 3fe9dbd commit 3a45302

File tree

16 files changed

+4625
-4099
lines changed

16 files changed

+4625
-4099
lines changed

build/es5/highway.js

Lines changed: 2576 additions & 2553 deletions
Large diffs are not rendered by default.

build/es5/highway.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/es5/highway.min.js.gz

-20 Bytes
Binary file not shown.

build/highway.js

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,15 @@ class helpers_Helpers {
421421
* @static
422422
*/
423423
getRenderer(slug) {
424-
return slug in this.renderers ? this.renderers[slug] : Renderer;
424+
if (slug in this.renderers) {
425+
if (typeof this.renderers[slug].then === 'function') {
426+
return Promise.resolve(this.renderers[slug]).then(({ default: cons }) => cons);
427+
}
428+
429+
return Promise.resolve(this.renderers[slug]);
430+
}
431+
432+
return Promise.resolve(Renderer);
425433
}
426434

427435
/**
@@ -432,6 +440,10 @@ class helpers_Helpers {
432440
* @static
433441
*/
434442
getTransition(slug) {
443+
if (!this.transitions) {
444+
return null;
445+
}
446+
435447
if (!(slug in this.transitions)) {
436448
if ('default' in this.transitions) {
437449
return this.transitions['default'];
@@ -519,8 +531,10 @@ class core_Core extends tiny_emitter_default.a {
519531
this.cache.set(this.location.pathname, this.properties);
520532

521533
// Get the page renderer and properly setup it.
522-
this.From = new this.properties.renderer(this.properties);
523-
this.From.setup();
534+
this.properties.renderer.then(Renderer => {
535+
this.From = new Renderer(this.properties);
536+
this.From.setup();
537+
});
524538

525539
// Events variables.
526540
this._navigate = this.navigate.bind(this);
@@ -700,7 +714,9 @@ class core_Core extends tiny_emitter_default.a {
700714
async afterFetch() {
701715
// We are calling the renderer attached to the view we just fetched and we
702716
// are adding the [data-router-view] in our DOM.
703-
this.To = new this.properties.renderer(this.properties);
717+
const Renderer = await this.properties.renderer;
718+
719+
this.To = new Renderer(this.properties);
704720
this.To.add();
705721

706722
// We then emit a now event right before the view is shown to create a hook

build/highway.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/highway.min.js.gz

52 Bytes
Binary file not shown.

docs/api.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
slug: demos
3-
title: Highway - Demos
3+
title: Highway - API Reference
44
layout: default
55
---
66

docs/assets/js/main.js

Lines changed: 24 additions & 24 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/package.json

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@dogstudio/highway",
33
"license": "MIT",
4-
"version": "2.0.0",
4+
"version": "2.0.1",
55
"main": "assets/js/main.js",
66
"scripts": {
77
"build": "webpack",
@@ -10,10 +10,16 @@
1010
"test": "echo \"Error: no test specified\" && exit 1"
1111
},
1212
"devDependencies": {
13+
"@babel/core": "^7.0.0-beta.42",
14+
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
15+
"@babel/polyfill": "^7.0.0-beta.42",
16+
"@babel/preset-env": "^7.0.0-beta.42",
17+
"babel-loader": "^8.0.0-beta",
1318
"webpack": "^4.16.5",
1419
"webpack-cli": "^3.1.0"
1520
},
1621
"dependencies": {
17-
"gsap": "^2.0.1"
22+
"gsap": "^2.0.1",
23+
"whatwg-fetch": "^3.0.0"
1824
}
1925
}

docs/src/js/main.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// Polyfill
2+
import 'whatwg-fetch';
3+
14
// Import Highway
25
import Highway from 'highway';
36

0 commit comments

Comments
 (0)