@reidelsaltres/pureper 0.1.65 → 0.1.67
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/worker/Router.d.ts +1 -8
- package/out/foundation/worker/Router.d.ts.map +1 -1
- package/out/foundation/worker/Router.js +13 -3
- package/out/foundation/worker/Router.js.map +1 -1
- package/out/foundation/worker/ServiceWorker.d.ts.map +1 -1
- package/out/foundation/worker/ServiceWorker.js +1 -3
- package/out/foundation/worker/ServiceWorker.js.map +1 -1
- package/package.json +1 -1
- package/src/foundation/worker/Router.ts +13 -12
- package/src/foundation/worker/ServiceWorker.ts +1 -6
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
declare global {
|
|
2
|
-
interface Window {
|
|
3
|
-
RouterConfig?: {
|
|
4
|
-
ASSET_PATH: string;
|
|
5
|
-
};
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
1
|
import UniHtml from "../component_api/UniHtml.js";
|
|
9
2
|
export interface Route<T extends UniHtml = UniHtml> {
|
|
10
3
|
route: string;
|
|
@@ -23,7 +16,7 @@ export declare abstract class Router {
|
|
|
23
16
|
static getPersistedRoute(): URL | null;
|
|
24
17
|
static clearPersistedRoute(): void;
|
|
25
18
|
static legacyRouteTo(route: string): void;
|
|
26
|
-
static tryRouteTo(url: URL): void;
|
|
19
|
+
static tryRouteTo(url: URL, pushState?: boolean): void;
|
|
27
20
|
static tryFindRoute(url: URL): Route;
|
|
28
21
|
static registerRoute<T extends UniHtml>(path: string, route: string, pageFactory: (search?: URLSearchParams) => T, inheritedRoute?: Route): Promise<Route>;
|
|
29
22
|
private static createPage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,CAAC;CAC9C;AACD,oBAAY,UAAU;IACpB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,EAAO,CAAC;AAClC,eAAO,MAAM,QAAQ,EAAE,MAAM,EAAO,CAAC;AAErC,8BAAsB,MAAM;WACZ,kBAAkB,CAAC,GAAG,EAAE,GAAG;WAO3B,iBAAiB,IAAI,GAAG,GAAG,IAAI;WAS/B,mBAAmB;WASnB,aAAa,CAAC,KAAK,EAAE,MAAM;WAM3B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,OAAc;WAc9C,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;WAQvB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,EAC5H,cAAc,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAazC,OAAO,CAAC,MAAM,CAAC,UAAU;CAG1B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
const globals = self;
|
|
2
1
|
export var AccessType;
|
|
3
2
|
(function (AccessType) {
|
|
4
3
|
AccessType[AccessType["OFFLINE"] = 0] = "OFFLINE";
|
|
@@ -40,12 +39,12 @@ export class Router {
|
|
|
40
39
|
window.location.replace(url.href);
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
|
-
static tryRouteTo(url) {
|
|
42
|
+
static tryRouteTo(url, pushState = true) {
|
|
44
43
|
try {
|
|
45
44
|
const found = this.tryFindRoute(url);
|
|
46
45
|
const page = this.createPage(found, url.searchParams);
|
|
47
46
|
page.load(document.getElementById('page'));
|
|
48
|
-
if (typeof window !== "undefined" && window.location) {
|
|
47
|
+
if (pushState && typeof window !== "undefined" && window.location) {
|
|
49
48
|
window.history.pushState(page, '', url.href);
|
|
50
49
|
}
|
|
51
50
|
}
|
|
@@ -72,6 +71,7 @@ export class Router {
|
|
|
72
71
|
return route.pageFactory(search);
|
|
73
72
|
}
|
|
74
73
|
}
|
|
74
|
+
//For SPA navigation
|
|
75
75
|
document.addEventListener('click', e => {
|
|
76
76
|
const target = e.target;
|
|
77
77
|
if (target) {
|
|
@@ -83,6 +83,16 @@ document.addEventListener('click', e => {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
});
|
|
86
|
+
//For back/forward navigation
|
|
87
|
+
window.addEventListener('popstate', e => {
|
|
88
|
+
try {
|
|
89
|
+
const url = new URL(window.location.href);
|
|
90
|
+
Router.tryRouteTo(url, false);
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.error('[Router] (popstate): failed to route to current location', error);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
86
96
|
window.addEventListener('DOMContentLoaded', () => {
|
|
87
97
|
const checkRoutes = () => {
|
|
88
98
|
const routes = ROUTES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorker.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/ServiceWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ServiceWorker.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/ServiceWorker.ts"],"names":[],"mappings":"AAgEA,MAAM,CAAC,OAAO,OAAO,aAAa;IAC9B;;;OAGG;WACU,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnD;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,IAAI;IAM1B;;;OAGG;IACH,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAkBpC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB9C;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;CAQ5C"}
|
|
@@ -2,14 +2,12 @@ const swSelf = self;
|
|
|
2
2
|
// Автоматически генерируем CACHE_NAME из base.json
|
|
3
3
|
//import base from '../../../data/base.json';
|
|
4
4
|
const CACHE_NAME = `pureper-v1`;
|
|
5
|
-
const BASE_PATH = '/Pureper'; // GitHub Pages base path
|
|
6
|
-
const IS_GITHUB_PAGES = swSelf.location.hostname.includes('github.io');
|
|
7
5
|
const STATIC_ASSETS = [
|
|
8
6
|
'/index.html'
|
|
9
7
|
];
|
|
10
8
|
if ('serviceWorker' in navigator) {
|
|
11
9
|
window.addEventListener('load', () => {
|
|
12
|
-
navigator.serviceWorker.register('serviceWorker.js', { type: 'module' })
|
|
10
|
+
navigator.serviceWorker.register('./serviceWorker.js', { type: 'module' })
|
|
13
11
|
.then((registration) => {
|
|
14
12
|
console.log('ServiceWorker registration successful:', registration.scope);
|
|
15
13
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceWorker.js","sourceRoot":"","sources":["../../../src/foundation/worker/ServiceWorker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ServiceWorker.js","sourceRoot":"","sources":["../../../src/foundation/worker/ServiceWorker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
// Add RouterConfig type to window for TypeScript
|
|
2
|
-
declare global {
|
|
3
|
-
interface Window {
|
|
4
|
-
RouterConfig?: { ASSET_PATH: string };
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
1
|
import UniHtml from "../component_api/UniHtml.js";
|
|
8
|
-
import { ServiceWorkerGlobalScope } from "./api/ServiceWorkerGlobalScope.js";
|
|
9
|
-
|
|
10
|
-
const globals = self as any as ServiceWorkerGlobalScope;
|
|
11
2
|
|
|
12
3
|
export interface Route<T extends UniHtml = UniHtml> {
|
|
13
4
|
route: string;
|
|
@@ -56,14 +47,14 @@ export abstract class Router {
|
|
|
56
47
|
window.location.replace(url.href);
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
|
-
public static tryRouteTo(url: URL) {
|
|
50
|
+
public static tryRouteTo(url: URL, pushState: boolean = true) {
|
|
60
51
|
try {
|
|
61
52
|
const found: Route = this.tryFindRoute(url);
|
|
62
53
|
const page: UniHtml = this.createPage(found, url.searchParams);
|
|
63
54
|
|
|
64
55
|
page.load(document.getElementById('page')!);
|
|
65
56
|
|
|
66
|
-
if (typeof window !== "undefined" && window.location) {
|
|
57
|
+
if (pushState && typeof window !== "undefined" && window.location) {
|
|
67
58
|
window.history.pushState(page, '', url.href);
|
|
68
59
|
}
|
|
69
60
|
} catch (error) {
|
|
@@ -92,12 +83,12 @@ export abstract class Router {
|
|
|
92
83
|
return Promise.resolve(routeObj);
|
|
93
84
|
}
|
|
94
85
|
|
|
95
|
-
|
|
96
86
|
private static createPage(route: Route, search?: URLSearchParams): UniHtml {
|
|
97
87
|
return route.pageFactory(search);
|
|
98
88
|
}
|
|
99
89
|
}
|
|
100
90
|
|
|
91
|
+
//For SPA navigation
|
|
101
92
|
document.addEventListener('click', e => {
|
|
102
93
|
const target = e.target as Element | null;
|
|
103
94
|
if (target) {
|
|
@@ -110,6 +101,16 @@ document.addEventListener('click', e => {
|
|
|
110
101
|
}
|
|
111
102
|
});
|
|
112
103
|
|
|
104
|
+
//For back/forward navigation
|
|
105
|
+
window.addEventListener('popstate', e => {
|
|
106
|
+
try {
|
|
107
|
+
const url = new URL(window.location.href);
|
|
108
|
+
Router.tryRouteTo(url, false);
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error('[Router] (popstate): failed to route to current location', error);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
113
114
|
window.addEventListener('DOMContentLoaded', () => {
|
|
114
115
|
const checkRoutes = () => {
|
|
115
116
|
const routes = ROUTES;
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { ExtendableEvent } from './api/ExtendableEvent.js';
|
|
7
7
|
import type { FetchEvent } from './api/FetchEvent.js';
|
|
8
|
-
import type { ExtendableMessageEvent } from './api/ExtendableMessageEvent.js';
|
|
9
|
-
import type { Clients } from './api/Clients.js';
|
|
10
8
|
import type { ServiceWorkerGlobalScope } from './api/ServiceWorkerGlobalScope.js';
|
|
11
9
|
|
|
12
10
|
// Type assertion for Service Worker context
|
|
@@ -17,16 +15,13 @@ const swSelf = self;
|
|
|
17
15
|
//import base from '../../../data/base.json';
|
|
18
16
|
const CACHE_NAME = `pureper-v1`;
|
|
19
17
|
|
|
20
|
-
const BASE_PATH = '/Pureper'; // GitHub Pages base path
|
|
21
|
-
const IS_GITHUB_PAGES = swSelf.location.hostname.includes('github.io');
|
|
22
|
-
|
|
23
18
|
const STATIC_ASSETS: string[] = [
|
|
24
19
|
'/index.html'
|
|
25
20
|
];
|
|
26
21
|
|
|
27
22
|
if ('serviceWorker' in navigator) {
|
|
28
23
|
window.addEventListener('load', () => {
|
|
29
|
-
navigator.serviceWorker.register('serviceWorker.js', { type: 'module' })
|
|
24
|
+
navigator.serviceWorker.register('./serviceWorker.js', { type: 'module' })
|
|
30
25
|
.then((registration) => {
|
|
31
26
|
console.log('ServiceWorker registration successful:', registration.scope);
|
|
32
27
|
})
|