space-router 0.9.1 → 0.9.2

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/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.2
2
+
3
+ - Upgrade all depedencies.
4
+
1
5
  ## 0.9.1
2
6
 
3
7
  - Revert to commonjs (remove `type: "module"`) to keep support for cjs in node and esm in browsers.
@@ -9,7 +9,27 @@ Object.defineProperty(exports, "createHistory", {
9
9
  }
10
10
  });
11
11
  function createHistory(options) {
12
- var listen = function listen(onChange) {
12
+ var sync = options.sync;
13
+ var mode = options.mode;
14
+ var raf;
15
+ var onPop;
16
+ var memory = [];
17
+ var off;
18
+ var destroyed = false;
19
+ if (typeof window === "undefined") {
20
+ mode = "memory";
21
+ raf = sync ? function(cb) {
22
+ return cb();
23
+ } : global.setImmediate;
24
+ } else {
25
+ raf = sync ? function(cb) {
26
+ return cb();
27
+ } : requestAnimationFrame;
28
+ if (mode === "history" && !history.pushState) {
29
+ mode = "hash";
30
+ }
31
+ }
32
+ function listen(onChange) {
13
33
  onPop = function() {
14
34
  return onChange(getUrl());
15
35
  };
@@ -21,8 +41,18 @@ function createHistory(options) {
21
41
  destroyed = true;
22
42
  off && off();
23
43
  };
44
+ }
45
+ return {
46
+ listen: listen,
47
+ getUrl: getUrl,
48
+ push: function(url) {
49
+ go(url);
50
+ },
51
+ replace: function(url) {
52
+ go(url, true);
53
+ }
24
54
  };
25
- var go = function go(url, replace) {
55
+ function go(url, replace) {
26
56
  if (destroyed) return;
27
57
  url = url.replace(/^\/?#?\/?/, "/").replace(/\/$/, "") || "/";
28
58
  if (mode === "history") {
@@ -34,8 +64,8 @@ function createHistory(options) {
34
64
  replace ? memory[memory.length - 1] = url : memory.push(url);
35
65
  raf(onPop);
36
66
  }
37
- };
38
- var getUrl = function getUrl() {
67
+ }
68
+ function getUrl() {
39
69
  if (mode === "memory") {
40
70
  return memory[memory.length - 1];
41
71
  }
@@ -50,43 +80,13 @@ function createHistory(options) {
50
80
  }
51
81
  return url;
52
82
  }
53
- };
54
- var getHash = // Gets the true hash value. Cannot use location.hash directly due to bug
83
+ }
84
+ // Gets the true hash value. Cannot use location.hash directly due to bug
55
85
  // in Firefox where location.hash will always be decoded.
56
86
  function getHash() {
57
87
  var match = location.href.match(/#(.*)$/);
58
88
  return match ? match[1].replace("#", "") : "";
59
- };
60
- var sync = options.sync;
61
- var mode = options.mode;
62
- var raf;
63
- var onPop;
64
- var memory = [];
65
- var off;
66
- var destroyed = false;
67
- if (typeof window === "undefined") {
68
- mode = "memory";
69
- raf = sync ? function(cb) {
70
- return cb();
71
- } : global.setImmediate;
72
- } else {
73
- raf = sync ? function(cb) {
74
- return cb();
75
- } : requestAnimationFrame;
76
- if (mode === "history" && !history.pushState) {
77
- mode = "hash";
78
- }
79
89
  }
80
- return {
81
- listen: listen,
82
- getUrl: getUrl,
83
- push: function(url) {
84
- go(url);
85
- },
86
- replace: function(url) {
87
- go(url, true);
88
- }
89
- };
90
90
  }
91
91
  function on(el, type, fn) {
92
92
  el.addEventListener(type, fn, false);
package/dist/cjs/index.js CHANGED
@@ -9,15 +9,15 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ createHistory: function() {
13
+ return _history.createHistory;
14
+ },
12
15
  createRouter: function() {
13
16
  return _router.createRouter;
14
17
  },
15
18
  merge: function() {
16
19
  return _router.merge;
17
20
  },
18
- createHistory: function() {
19
- return _history.createHistory;
20
- },
21
21
  qs: function() {
22
22
  return _qs.qs;
23
23
  }
@@ -1,5 +1,25 @@
1
1
  export function createHistory(options) {
2
- var listen = function listen(onChange) {
2
+ var sync = options.sync;
3
+ var mode = options.mode;
4
+ var raf;
5
+ var onPop;
6
+ var memory = [];
7
+ var off;
8
+ var destroyed = false;
9
+ if (typeof window === "undefined") {
10
+ mode = "memory";
11
+ raf = sync ? function(cb) {
12
+ return cb();
13
+ } : global.setImmediate;
14
+ } else {
15
+ raf = sync ? function(cb) {
16
+ return cb();
17
+ } : requestAnimationFrame;
18
+ if (mode === "history" && !history.pushState) {
19
+ mode = "hash";
20
+ }
21
+ }
22
+ function listen(onChange) {
3
23
  onPop = function() {
4
24
  return onChange(getUrl());
5
25
  };
@@ -11,8 +31,18 @@ export function createHistory(options) {
11
31
  destroyed = true;
12
32
  off && off();
13
33
  };
34
+ }
35
+ return {
36
+ listen: listen,
37
+ getUrl: getUrl,
38
+ push: function push(url) {
39
+ go(url);
40
+ },
41
+ replace: function replace(url) {
42
+ go(url, true);
43
+ }
14
44
  };
15
- var go = function go(url, replace) {
45
+ function go(url, replace) {
16
46
  if (destroyed) return;
17
47
  url = url.replace(/^\/?#?\/?/, "/").replace(/\/$/, "") || "/";
18
48
  if (mode === "history") {
@@ -24,8 +54,8 @@ export function createHistory(options) {
24
54
  replace ? memory[memory.length - 1] = url : memory.push(url);
25
55
  raf(onPop);
26
56
  }
27
- };
28
- var getUrl = function getUrl() {
57
+ }
58
+ function getUrl() {
29
59
  if (mode === "memory") {
30
60
  return memory[memory.length - 1];
31
61
  }
@@ -40,43 +70,13 @@ export function createHistory(options) {
40
70
  }
41
71
  return url;
42
72
  }
43
- };
44
- var getHash = // Gets the true hash value. Cannot use location.hash directly due to bug
73
+ }
74
+ // Gets the true hash value. Cannot use location.hash directly due to bug
45
75
  // in Firefox where location.hash will always be decoded.
46
76
  function getHash() {
47
77
  var match = location.href.match(/#(.*)$/);
48
78
  return match ? match[1].replace("#", "") : "";
49
- };
50
- var sync = options.sync;
51
- var mode = options.mode;
52
- var raf;
53
- var onPop;
54
- var memory = [];
55
- var off;
56
- var destroyed = false;
57
- if (typeof window === "undefined") {
58
- mode = "memory";
59
- raf = sync ? function(cb) {
60
- return cb();
61
- } : global.setImmediate;
62
- } else {
63
- raf = sync ? function(cb) {
64
- return cb();
65
- } : requestAnimationFrame;
66
- if (mode === "history" && !history.pushState) {
67
- mode = "hash";
68
- }
69
79
  }
70
- return {
71
- listen: listen,
72
- getUrl: getUrl,
73
- push: function push(url) {
74
- go(url);
75
- },
76
- replace: function replace(url) {
77
- go(url, true);
78
- }
79
- };
80
80
  }
81
81
  function on(el, type, fn) {
82
82
  el.addEventListener(type, fn, false);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "space-router",
3
3
  "description": "All the routing essentials.",
4
- "version": "0.9.1",
4
+ "version": "0.9.2",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
7
7
  "license": "ICS",
@@ -19,6 +19,9 @@
19
19
  "location",
20
20
  "url"
21
21
  ],
22
+ "engines": {
23
+ "node": ">=14"
24
+ },
22
25
  "author": "Karolis Narkevicius",
23
26
  "scripts": {
24
27
  "test": "npm run build && healthier && prettier --check '**/*.{js,css,yml}' && c8 ava",
@@ -31,15 +34,15 @@
31
34
  "release:docs": "hugo -s docs && gh-pages -d docs/public"
32
35
  },
33
36
  "devDependencies": {
34
- "@swc-node/register": "^1.6.4",
37
+ "@swc-node/register": "^1.6.8",
35
38
  "@swc/cli": "^0.1.62",
36
- "@swc/core": "^1.3.49",
37
- "ava": "^5.2.0",
38
- "c8": "^7.13.0",
39
- "execa": "^7.1.1",
40
- "gh-pages": "^5.0.0",
41
- "healthier": "^6.3.0",
42
- "prettier": "^2.8.7"
39
+ "@swc/core": "^1.3.96",
40
+ "ava": "^5.3.1",
41
+ "c8": "^8.0.1",
42
+ "execa": "^8.0.1",
43
+ "gh-pages": "^6.0.0",
44
+ "healthier": "^7.0.0",
45
+ "prettier": "^3.0.3"
43
46
  },
44
47
  "healthier": {
45
48
  "global": [
@@ -10,7 +10,7 @@ test('converts array of routes to array of internal route descriptors', (t) => {
10
10
  [
11
11
  { pattern: '/foo', data: [{ a: 'foo' }] },
12
12
  { pattern: '/bar', data: [{ a: 'bar' }] },
13
- ]
13
+ ],
14
14
  )
15
15
  })
16
16
 
@@ -49,7 +49,7 @@ test('handles nested routes', (t) => {
49
49
  { pattern: '/foo/bar', data: [{ component: 'root' }, { component: 'foo' }, { component: 'bar' }] },
50
50
  { pattern: '/second', data: [{ component: 'second-root' }] },
51
51
  { pattern: '/baz/*', data: [{ component: 'second-root' }, { component: 'baz' }] },
52
- ]
52
+ ],
53
53
  )
54
54
  })
55
55
 
@@ -38,7 +38,7 @@ test('createRouter, listen, navigate and dispose', (t) => {
38
38
  'user=3?a=11&c=bla#test',
39
39
  'user=curr?curr=test',
40
40
  ],
41
- calls
41
+ calls,
42
42
  )
43
43
 
44
44
  dispose()
@@ -51,28 +51,28 @@ test('.href(to)', (t) => {
51
51
 
52
52
  t.deepEqual(
53
53
  router.href({ pathname: '/user/:id/friends', params: { id: 7 }, query: { a: 1, b: 2 } }),
54
- '/user/7/friends?a=1&b=2'
54
+ '/user/7/friends?a=1&b=2',
55
55
  )
56
56
  t.deepEqual(
57
57
  router.href({ pathname: '/user/:id/friends', params: { id: 7 }, query: { a: 1, b: 2 }, hash: '#bla' }),
58
- '/user/7/friends?a=1&b=2#bla'
58
+ '/user/7/friends?a=1&b=2#bla',
59
59
  )
60
60
  t.deepEqual(router.href({ pathname: '/user/:id/friends', params: { id: 8 }, hash: '#foo' }), '/user/8/friends#foo')
61
61
  t.deepEqual(
62
62
  router.href({ pathname: '/user/:id/friends', params: { id: 8 }, query: {}, hash: '#foo' }),
63
- '/user/8/friends#foo'
63
+ '/user/8/friends#foo',
64
64
  )
65
65
  t.deepEqual(
66
66
  router.href({ pathname: '/user/:id/friends', params: { id: 8 }, query: { q: null }, hash: '#foo' }),
67
- '/user/8/friends?q=null#foo'
67
+ '/user/8/friends?q=null#foo',
68
68
  )
69
69
  t.deepEqual(
70
70
  router.href({ pathname: '/user/:id/friends', params: { id: 8 }, query: { q: undefined }, hash: '#foo' }),
71
- '/user/8/friends#foo'
71
+ '/user/8/friends#foo',
72
72
  )
73
73
  t.deepEqual(
74
74
  router.href({ pathname: '/user/:id/friends', params: { id: 8 }, query: { q: undefined }, hash: '#foo' }),
75
- '/user/8/friends#foo'
75
+ '/user/8/friends#foo',
76
76
  )
77
77
  t.deepEqual(router.href({ params: { id: 8 }, query: { q: 1 }, hash: '#foo' }), '/?q=1#foo')
78
78
 
@@ -151,7 +151,7 @@ function createTestRouter(cb, { withoutCatchAll = false } = {}) {
151
151
  { path: '/user/:id/settings', datum: 'settings-data' },
152
152
  !withoutCatchAll && { path: '*', render: () => 'catchall' },
153
153
  ].filter(Boolean),
154
- cb
154
+ cb,
155
155
  )
156
156
  return { router, dispose }
157
157
  }