@typed/navigation 0.3.5 → 0.4.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.
Files changed (53) hide show
  1. package/dist/DOM.d.ts.map +1 -1
  2. package/dist/DOM.js +11 -13
  3. package/dist/DOM.js.map +1 -1
  4. package/dist/cjs/DOM.d.ts.map +1 -1
  5. package/dist/cjs/DOM.js +10 -12
  6. package/dist/cjs/DOM.js.map +1 -1
  7. package/dist/cjs/dom-intent.d.ts +8 -9
  8. package/dist/cjs/dom-intent.d.ts.map +1 -1
  9. package/dist/cjs/dom-intent.js +17 -18
  10. package/dist/cjs/dom-intent.js.map +1 -1
  11. package/dist/cjs/history.d.ts +1 -1
  12. package/dist/cjs/history.d.ts.map +1 -1
  13. package/dist/cjs/history.js +36 -23
  14. package/dist/cjs/history.js.map +1 -1
  15. package/dist/cjs/memory-intent.d.ts +6 -7
  16. package/dist/cjs/memory-intent.d.ts.map +1 -1
  17. package/dist/cjs/memory-intent.js +8 -1
  18. package/dist/cjs/memory-intent.js.map +1 -1
  19. package/dist/cjs/shared-intent.d.ts +2 -3
  20. package/dist/cjs/shared-intent.d.ts.map +1 -1
  21. package/dist/cjs/shared-intent.js.map +1 -1
  22. package/dist/cjs/storage.js +1 -1
  23. package/dist/cjs/storage.js.map +1 -1
  24. package/dist/dom-intent.d.ts +8 -9
  25. package/dist/dom-intent.d.ts.map +1 -1
  26. package/dist/dom-intent.js +18 -19
  27. package/dist/dom-intent.js.map +1 -1
  28. package/dist/history.d.ts +1 -1
  29. package/dist/history.d.ts.map +1 -1
  30. package/dist/history.js +36 -23
  31. package/dist/history.js.map +1 -1
  32. package/dist/memory-intent.d.ts +6 -7
  33. package/dist/memory-intent.d.ts.map +1 -1
  34. package/dist/memory-intent.js +8 -1
  35. package/dist/memory-intent.js.map +1 -1
  36. package/dist/shared-intent.d.ts +2 -3
  37. package/dist/shared-intent.d.ts.map +1 -1
  38. package/dist/shared-intent.js.map +1 -1
  39. package/dist/storage.js +1 -1
  40. package/dist/storage.js.map +1 -1
  41. package/dist/tsconfig.cjs.build.tsbuildinfo +1 -1
  42. package/package.json +11 -11
  43. package/project.json +3 -0
  44. package/src/DOM.test.ts +1 -4
  45. package/src/DOM.ts +18 -21
  46. package/src/dom-intent.ts +29 -37
  47. package/src/history.ts +43 -23
  48. package/src/memory-intent.ts +9 -6
  49. package/src/shared-intent.ts +2 -5
  50. package/src/storage.ts +1 -1
  51. package/tsconfig.build.tsbuildinfo +1 -1
  52. package/src/constant.ts +0 -5
  53. /package/{vite.config.js → vite.config.mjs} +0 -0
package/dist/DOM.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DOM.d.ts","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG5F,OAAO,EAAe,cAAc,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAO1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjF,MAAM,WAAW,oBAAoB;IAGnC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IAIpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,GAAG,aACL,oBAAoB,KAC5B,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAyHnD,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAQ/C;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,GAAG,UAEtF"}
1
+ {"version":3,"file":"DOM.d.ts","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG5F,OAAO,EAAe,cAAc,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAM1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjF,MAAM,WAAW,oBAAoB;IAGnC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IAIpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,GAAG,aACL,oBAAoB,KAC5B,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAuHnD,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAQ/C;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,GAAG,UAEtF"}
package/dist/DOM.js CHANGED
@@ -2,7 +2,7 @@ import { pipe } from '@effect/data/Function';
2
2
  import * as Option from '@effect/data/Option';
3
3
  import * as Effect from '@effect/io/Effect';
4
4
  import * as Context from '@typed/context';
5
- import { History, addWindowListener, Document } from '@typed/dom';
5
+ import { addWindowListener, Document } from '@typed/dom';
6
6
  import * as Fx from '@typed/fx';
7
7
  import { Navigation } from './Navigation.js';
8
8
  import { makeIntent } from './dom-intent.js';
@@ -13,14 +13,15 @@ export const dom = (options = {}) => {
13
13
  return Navigation.layerScoped(Effect.gen(function* ($) {
14
14
  // Get resources
15
15
  const context = yield* $(Effect.context());
16
- const history = Context.get(context, History);
17
16
  const document = Context.get(context, Document);
18
17
  const base = document.querySelector('base');
19
18
  const baseHref = base ? getBasePathFromHref(base.href) : '/';
19
+ // Patch History API to enable sending events
20
+ const [history, historyEvents] = yield* $(patchHistory);
20
21
  // Create model and intent
21
22
  const [initialEntries, initialIndex] = yield* $(getInitialValues(baseHref, options));
22
23
  const model = yield* $(makeModel(initialEntries, initialIndex));
23
- const intent = makeIntent(model, baseHref, options);
24
+ const intent = makeIntent(model, baseHref, history, options);
24
25
  // Used to ensure ordering of navigation events
25
26
  const lock = Effect.unsafeMakeSemaphore(1).withPermits(1);
26
27
  const handleNavigationError = (depth) => (error) => Effect.provideContext(Effect.gen(function* ($) {
@@ -53,24 +54,21 @@ export const dom = (options = {}) => {
53
54
  onNavigationEnd: (handler, options) => Effect.asUnit(intent.onNavigationEnd(handler, options)),
54
55
  reload: provideLocked(catchNavigationError(intent.reload)),
55
56
  };
56
- // Patch History API to enable sending events
57
- const historyEvents = yield* $(patchHistory);
58
57
  // Listen to various events and update our model
59
58
  yield* $(Fx.mergeAll(
60
59
  // Listen to history events and keep track of entries
61
- pipe(historyEvents, Fx.flatMapEffect((event) => lock(onHistoryEvent(event, intent)))),
60
+ pipe(historyEvents, Fx.mapEffect((event) => lock(onHistoryEvent(event, intent)))),
62
61
  // Listen to hash changes and push them to the history
63
- pipe(addWindowListener('hashchange', { capture: true }), Fx.flatMapEffect((ev) => lock(intent.push(ev.newURL, { state: history.state }, true)))),
62
+ pipe(addWindowListener('hashchange', { capture: true }), Fx.mapEffect((ev) => lock(intent.push(ev.newURL, { state: history.state }, true)))),
64
63
  // Listen to popstate events and go to the correct entry
65
- pipe(addWindowListener('popstate'), Fx.map((ev) => {
64
+ pipe(addWindowListener('popstate'), Fx.mapEffect(Effect.unifiedFn((ev) => {
66
65
  // TODO: Should we throw some kind of error here?
67
66
  // This should never happen if you are solely using the Navigation Service
68
- if (!ev.state || !ev.state.event) {
69
- return Option.none();
67
+ if (!ev.state || !ev.state.key) {
68
+ return lock(intent.push(location.href, { state: history.state }, true));
70
69
  }
71
- const navigation = ev.state.event;
72
- return Option.some(lock(intent.goTo(navigation.destination.key)));
73
- }), Fx.compact, Fx.flattenEffect)), Fx.drain, Effect.forkScoped);
70
+ return lock(intent.goTo(ev.state.key));
71
+ })))), Fx.drain, Effect.forkScoped);
74
72
  return navigation;
75
73
  }));
76
74
  };
package/dist/DOM.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../src/DOM.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DOM.d.ts","sourceRoot":"","sources":["../../src/DOM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG5F,OAAO,EAAe,cAAc,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAO1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjF,MAAM,WAAW,oBAAoB;IAGnC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IAIpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,GAAG,aACL,oBAAoB,KAC5B,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAyHnD,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAQ/C;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,GAAG,UAEtF"}
1
+ {"version":3,"file":"DOM.d.ts","sourceRoot":"","sources":["../../src/DOM.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAqB,QAAQ,EAAE,MAAM,YAAY,CAAA;AAG5F,OAAO,EAAe,cAAc,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAM1F,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAEjF,MAAM,WAAW,oBAAoB;IAGnC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAA;IAIpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,eAAO,MAAM,GAAG,aACL,oBAAoB,KAC5B,WAAW,CAAC,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAuHnD,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,UAQ/C;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,GAAG,UAEtF"}
package/dist/cjs/DOM.js CHANGED
@@ -39,14 +39,15 @@ const dom = (options = {}) => {
39
39
  return Navigation_js_1.Navigation.layerScoped(Effect.gen(function* ($) {
40
40
  // Get resources
41
41
  const context = yield* $(Effect.context());
42
- const history = Context.get(context, dom_1.History);
43
42
  const document = Context.get(context, dom_1.Document);
44
43
  const base = document.querySelector('base');
45
44
  const baseHref = base ? getBasePathFromHref(base.href) : '/';
45
+ // Patch History API to enable sending events
46
+ const [history, historyEvents] = yield* $(history_js_1.patchHistory);
46
47
  // Create model and intent
47
48
  const [initialEntries, initialIndex] = yield* $((0, storage_js_1.getInitialValues)(baseHref, options));
48
49
  const model = yield* $((0, model_js_1.makeModel)(initialEntries, initialIndex));
49
- const intent = (0, dom_intent_js_1.makeIntent)(model, baseHref, options);
50
+ const intent = (0, dom_intent_js_1.makeIntent)(model, baseHref, history, options);
50
51
  // Used to ensure ordering of navigation events
51
52
  const lock = Effect.unsafeMakeSemaphore(1).withPermits(1);
52
53
  const handleNavigationError = (depth) => (error) => Effect.provideContext(Effect.gen(function* ($) {
@@ -79,24 +80,21 @@ const dom = (options = {}) => {
79
80
  onNavigationEnd: (handler, options) => Effect.asUnit(intent.onNavigationEnd(handler, options)),
80
81
  reload: provideLocked(catchNavigationError(intent.reload)),
81
82
  };
82
- // Patch History API to enable sending events
83
- const historyEvents = yield* $(history_js_1.patchHistory);
84
83
  // Listen to various events and update our model
85
84
  yield* $(Fx.mergeAll(
86
85
  // Listen to history events and keep track of entries
87
- (0, Function_1.pipe)(historyEvents, Fx.flatMapEffect((event) => lock((0, history_js_1.onHistoryEvent)(event, intent)))),
86
+ (0, Function_1.pipe)(historyEvents, Fx.mapEffect((event) => lock((0, history_js_1.onHistoryEvent)(event, intent)))),
88
87
  // Listen to hash changes and push them to the history
89
- (0, Function_1.pipe)((0, dom_1.addWindowListener)('hashchange', { capture: true }), Fx.flatMapEffect((ev) => lock(intent.push(ev.newURL, { state: history.state }, true)))),
88
+ (0, Function_1.pipe)((0, dom_1.addWindowListener)('hashchange', { capture: true }), Fx.mapEffect((ev) => lock(intent.push(ev.newURL, { state: history.state }, true)))),
90
89
  // Listen to popstate events and go to the correct entry
91
- (0, Function_1.pipe)((0, dom_1.addWindowListener)('popstate'), Fx.map((ev) => {
90
+ (0, Function_1.pipe)((0, dom_1.addWindowListener)('popstate'), Fx.mapEffect(Effect.unifiedFn((ev) => {
92
91
  // TODO: Should we throw some kind of error here?
93
92
  // This should never happen if you are solely using the Navigation Service
94
- if (!ev.state || !ev.state.event) {
95
- return Option.none();
93
+ if (!ev.state || !ev.state.key) {
94
+ return lock(intent.push(location.href, { state: history.state }, true));
96
95
  }
97
- const navigation = ev.state.event;
98
- return Option.some(lock(intent.goTo(navigation.destination.key)));
99
- }), Fx.compact, Fx.flattenEffect)), Fx.drain, Effect.forkScoped);
96
+ return lock(intent.goTo(ev.state.key));
97
+ })))), Fx.drain, Effect.forkScoped);
100
98
  return navigation;
101
99
  }));
102
100
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../../src/DOM.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DOM.js","sourceRoot":"","sources":["../../src/DOM.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { Option } from '@effect/data/Option';
2
- import * as Cause from '@effect/io/Cause';
3
2
  import * as Effect from '@effect/io/Effect';
4
- import { History, Location } from '@typed/dom';
3
+ import { Location } from '@typed/dom';
5
4
  import type { DomNavigationOptions } from './DOM.js';
6
5
  import { Destination, NavigateOptions, NavigationError, NavigationEvent } from './Navigation.js';
7
6
  import { Model } from './model.js';
@@ -14,16 +13,16 @@ export type DomIntent = {
14
13
  readonly navigate: (url: string, options?: NavigateOptions) => ReturnType<ReturnType<typeof makePush | typeof makeReplace>>;
15
14
  readonly notify: Notify;
16
15
  readonly go: ReturnType<typeof makeGo>;
17
- readonly goTo: (key: string) => Effect.Effect<Storage | History, Cause.NoSuchElementException | NavigationError, Option<Destination>>;
16
+ readonly goTo: (key: string) => Effect.Effect<Storage | History, NavigationError, Option<Destination>>;
18
17
  readonly reload: ReturnType<typeof makeReload>;
19
18
  readonly onNavigation: ReturnType<typeof makeOnNavigation>;
20
19
  readonly onNavigationEnd: ReturnType<typeof makeOnNavigationEnd>;
21
20
  };
22
- export declare const makeIntent: (model: Model, base: string, options: DomNavigationOptions) => DomIntent;
21
+ export declare const makeIntent: (model: Model, base: string, history: History, options: DomNavigationOptions) => DomIntent;
23
22
  export type Intent = ReturnType<typeof makeIntent>;
24
- export declare const makeSave: (model: Model) => (event: NavigationEvent) => Effect.Effect<Storage, Cause.NoSuchElementException, void>;
25
- export declare const makeReload: (model: Model, notify: Notify, save: Save<Storage>) => Effect.Effect<Storage | Location, NavigationError | Cause.NoSuchElementException, Destination>;
26
- export declare const makeReplace: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>, base: string) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<Storage | History | Location, NavigationError | Cause.NoSuchElementException, Destination>;
27
- export declare const makePush: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>, base: string, maxEntries: number) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<Storage | History | Location, NavigationError | Cause.NoSuchElementException, Destination>;
28
- export declare const makeGo: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>) => (delta: number, skipHistory?: boolean) => Effect.Effect<Storage | History, NavigationError | Cause.NoSuchElementException, Destination>;
23
+ export declare const makeSave: (model: Model) => (event: NavigationEvent) => Effect.Effect<Storage, never, void>;
24
+ export declare const makeReload: (model: Model, notify: Notify, save: Save<Storage>) => Effect.Effect<Location | Storage, NavigationError, Destination>;
25
+ export declare const makeReplace: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>, history: History, base: string) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<Location | Storage, NavigationError, Destination>;
26
+ export declare const makePush: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>, base: string, history: History, maxEntries: number) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<Location | Storage, NavigationError, Destination>;
27
+ export declare const makeGo: (model: Model, notify: Notify, notifyEnd: NotifyEnd, save: Save<Storage>, history: History) => (delta: number, skipHistory?: boolean) => Effect.Effect<Storage, NavigationError, Destination>;
29
28
  //# sourceMappingURL=dom-intent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-intent.d.ts","sourceRoot":"","sources":["../../src/dom-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EAEhB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,MAAM,EACN,SAAS,EACT,IAAI,EAIJ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAO3B,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAE9E,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEjF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAA;IAE1C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;IAEhD,QAAQ,CAAC,QAAQ,EAAE,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,KACtB,UAAU,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAG,OAAO,WAAW,CAAC,CAAC,CAAA;IAEjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAChB,OAAO,GAAG,OAAO,EACjB,KAAK,CAAC,sBAAsB,GAAG,eAAe,EAC9C,MAAM,CAAC,WAAW,CAAC,CACpB,CAAA;IAED,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;IAE9C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAE1D,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACjE,CAAA;AAED,eAAO,MAAM,UAAU,UACd,KAAK,QACN,MAAM,WACH,oBAAoB,KAC5B,SAuBF,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,eAAO,MAAM,QAAQ,UACX,KAAK,aACL,eAAe,KAAG,aAAa,CAAC,OAAO,EAAE,MAAM,sBAAsB,EAAE,IAAI,CAgB/E,CAAA;AAEN,eAAO,MAAM,UAAU,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,OAAO,CAAC,mGAexE,CAAA;AAEJ,eAAO,MAAM,WAAW,UACd,KAAK,UAAU,MAAM,aAAa,SAAS,QAAQ,KAAK,OAAO,CAAC,QAAQ,MAAM,WAChF,MAAM,YAAW,eAAe,oIA0ClC,CAAA;AAEN,eAAO,MAAM,QAAQ,UAEV,KAAK,UACJ,MAAM,aACH,SAAS,QACd,KAAK,OAAO,CAAC,QACb,MAAM,cACA,MAAM,WAEd,MAAM,YAAW,eAAe,oIAgDlC,CAAA;AAEN,eAAO,MAAM,MAAM,UACT,KAAK,UAAU,MAAM,aAAa,SAAS,QAAQ,KAAK,OAAO,CAAC,aAChE,MAAM,yHAmCV,CAAA"}
1
+ {"version":3,"file":"dom-intent.d.ts","sourceRoot":"","sources":["../../src/dom-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EAEhB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,MAAM,EACN,SAAS,EACT,IAAI,EAIJ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAO3B,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAE9E,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEjF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAA;IAE1C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;IAEhD,QAAQ,CAAC,QAAQ,EAAE,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,KACtB,UAAU,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAG,OAAO,WAAW,CAAC,CAAC,CAAA;IAEjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAE3E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;IAE9C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAE1D,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACjE,CAAA;AAED,eAAO,MAAM,UAAU,UACd,KAAK,QACN,MAAM,WACH,OAAO,WACP,oBAAoB,KAC5B,SAuBF,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,eAAO,MAAM,QAAQ,UACX,KAAK,aACL,eAAe,KAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAgBxD,CAAA;AAEN,eAAO,MAAM,UAAU,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,OAAO,CAAC,oEAexE,CAAA;AAEJ,eAAO,MAAM,WAAW,UAEb,KAAK,UACJ,MAAM,aACH,SAAS,QACd,KAAK,OAAO,CAAC,WACV,OAAO,QACV,MAAM,WAER,MAAM,YAAW,eAAe,2FAmClC,CAAA;AAEN,eAAO,MAAM,QAAQ,UAEV,KAAK,UACJ,MAAM,aACH,SAAS,QACd,KAAK,OAAO,CAAC,QACb,MAAM,WACH,OAAO,cACJ,MAAM,WAEd,MAAM,YAAW,eAAe,2FA+ClC,CAAA;AAEN,eAAO,MAAM,MAAM,UACT,KAAK,UAAU,MAAM,aAAa,SAAS,QAAQ,KAAK,OAAO,CAAC,WAAW,OAAO,aAClF,MAAM,gFAiCV,CAAA"}
@@ -27,21 +27,19 @@ exports.makeGo = exports.makePush = exports.makeReplace = exports.makeReload = e
27
27
  const Effect = __importStar(require("@effect/io/Effect"));
28
28
  const dom_1 = require("@typed/dom");
29
29
  const Navigation_js_1 = require("./Navigation.js");
30
- const constant_js_1 = require("./constant.js");
31
- const json_js_1 = require("./json.js");
32
30
  const shared_intent_js_1 = require("./shared-intent.js");
33
31
  const storage_js_1 = require("./storage.js");
34
32
  const util_js_1 = require("./util.js");
35
33
  // Roughly the number of History entries in a browser anyways
36
34
  const DEFAULT_MAX_ENTRIES = 50;
37
- const makeIntent = (model, base, options) => {
35
+ const makeIntent = (model, base, history, options) => {
38
36
  const maxEntries = Math.abs(options.maxEntries ?? DEFAULT_MAX_ENTRIES);
39
37
  const notify = (0, shared_intent_js_1.makeNotify)(model);
40
38
  const notifyEnd = (0, shared_intent_js_1.makeNotifyEnd)(model);
41
39
  const save = (0, exports.makeSave)(model);
42
- const go = (0, exports.makeGo)(model, notify, notifyEnd, save);
43
- const replace = (0, exports.makeReplace)(model, notify, notifyEnd, save, base);
44
- const push = (0, exports.makePush)(model, notify, notifyEnd, save, base, maxEntries);
40
+ const go = (0, exports.makeGo)(model, notify, notifyEnd, save, history);
41
+ const replace = (0, exports.makeReplace)(model, notify, notifyEnd, save, history, base);
42
+ const push = (0, exports.makePush)(model, notify, notifyEnd, save, base, history, maxEntries);
45
43
  return {
46
44
  back: (skipHistory) => go(-1, skipHistory),
47
45
  forward: (skipHistory) => go(1, skipHistory),
@@ -82,7 +80,7 @@ const makeReload = (model, notify, save) => Effect.gen(function* ($) {
82
80
  return event.destination;
83
81
  });
84
82
  exports.makeReload = makeReload;
85
- const makeReplace = (model, notify, notifyEnd, save, base) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
83
+ const makeReplace = (model, notify, notifyEnd, save, history, base) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
86
84
  const location = yield* $(dom_1.Location);
87
85
  const entry = yield* $(model.currentEntry.get);
88
86
  const destination = {
@@ -97,8 +95,7 @@ const makeReplace = (model, notify, notifyEnd, save, base) => (url, options = {}
97
95
  };
98
96
  yield* $(notify(event));
99
97
  if (!skipHistory) {
100
- const history = yield* $(dom_1.History);
101
- history.replaceState.call(constant_js_1.ServiceId, { state: options.state, event: (0, json_js_1.encodeEvent)(event) }, '', url);
98
+ history.replaceState({ key: destination.key, state: options.state }, '', url);
102
99
  }
103
100
  const currentIndex = yield* $(model.index);
104
101
  yield* $(model.events.update((entries) => {
@@ -111,12 +108,16 @@ const makeReplace = (model, notify, notifyEnd, save, base) => (url, options = {}
111
108
  return destination;
112
109
  });
113
110
  exports.makeReplace = makeReplace;
114
- const makePush = (model, notify, notifyEnd, save, base, maxEntries) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
111
+ const makePush = (model, notify, notifyEnd, save, base, history, maxEntries) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
115
112
  const location = yield* $(dom_1.Location);
116
113
  const entry = yield* $(model.currentEntry.get);
114
+ const destinationUrl = (0, util_js_1.getUrl)(url, base, location.origin);
115
+ if (entry.url.href === destinationUrl.href) {
116
+ return entry;
117
+ }
117
118
  const destination = {
118
119
  key: yield* $(util_js_1.createKey),
119
- url: (0, util_js_1.getUrl)(url, base, location.origin),
120
+ url: destinationUrl,
120
121
  state: options.state,
121
122
  };
122
123
  const event = {
@@ -127,8 +128,7 @@ const makePush = (model, notify, notifyEnd, save, base, maxEntries) => (url, opt
127
128
  // Notify event handlers
128
129
  yield* $(notify(event));
129
130
  if (!skipHistory) {
130
- const history = yield* $(dom_1.History);
131
- history.pushState.call(constant_js_1.ServiceId, { state: options.state, event: (0, json_js_1.encodeEvent)(event) }, '', url);
131
+ history.pushState({ key: destination.key, state: options.state }, '', url);
132
132
  }
133
133
  const currentIndex = yield* $(model.index);
134
134
  // Remove all entries after the current index
@@ -139,13 +139,13 @@ const makePush = (model, notify, notifyEnd, save, base, maxEntries) => (url, opt
139
139
  return updated.slice(-maxEntries);
140
140
  }));
141
141
  // Update the index to the new destination
142
- yield* $(model.index.update((i) => i + 1));
142
+ yield* $(model.index.update((i) => Math.min(i + 1, maxEntries)));
143
143
  yield* $(save(event));
144
144
  yield* $(notifyEnd(event));
145
145
  return destination;
146
146
  });
147
147
  exports.makePush = makePush;
148
- const makeGo = (model, notify, notifyEnd, save) => (delta, skipHistory = false) => Effect.gen(function* ($) {
148
+ const makeGo = (model, notify, notifyEnd, save, history) => (delta, skipHistory = false) => Effect.gen(function* ($) {
149
149
  const currentEntries = yield* $(model.events);
150
150
  const totalEntries = currentEntries.length;
151
151
  const currentIndex = yield* $(model.index);
@@ -154,15 +154,14 @@ const makeGo = (model, notify, notifyEnd, save) => (delta, skipHistory = false)
154
154
  return currentEntries[currentIndex].destination;
155
155
  const nextIndex = delta > 0
156
156
  ? Math.min(currentIndex + delta, totalEntries - 1)
157
- : Math.max(currentIndex + delta, 0);
157
+ : Math.min(Math.max(currentIndex + delta, 0));
158
158
  const nextEntry = currentEntries[nextIndex];
159
159
  yield* $(notify({
160
160
  ...nextEntry,
161
161
  navigationType: nextIndex > currentIndex ? Navigation_js_1.NavigationType.Forward : Navigation_js_1.NavigationType.Back,
162
162
  }));
163
163
  if (!skipHistory) {
164
- const history = yield* $(dom_1.History);
165
- history.go.call(constant_js_1.ServiceId, delta);
164
+ history.go(delta);
166
165
  }
167
166
  yield* $(model.index.set(nextIndex));
168
167
  yield* $(save(nextEntry));
@@ -1 +1 @@
1
- {"version":3,"file":"dom-intent.js","sourceRoot":"","sources":["../../src/dom-intent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom-intent.js","sourceRoot":"","sources":["../../src/dom-intent.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,6 @@ export interface BackEvent {
26
26
  export interface ForwardEvent {
27
27
  readonly _tag: 'Forward';
28
28
  }
29
- export declare const patchHistory: Effect.Effect<History | Scope.Scope, never, Fx.Subject<never, HistoryEvent>>;
29
+ export declare const patchHistory: Effect.Effect<History | Scope.Scope, never, readonly [History, Fx.Subject<never, HistoryEvent>]>;
30
30
  export declare function onHistoryEvent(event: HistoryEvent, intent: DomIntent): Effect.Effect<History | Location | Storage, Cause.NoSuchElementException | NavigationError, Destination>;
31
31
  //# sourceMappingURL=history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAE/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAA;AAElG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CACtC,OAAO,GAAG,KAAK,CAAC,KAAK,EACrB,KAAK,EACL,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAe/B,CAAA;AA6DF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,SAAS,GAChB,MAAM,CAAC,MAAM,CACd,OAAO,GAAG,QAAQ,GAAG,OAAO,EAC5B,KAAK,CAAC,sBAAsB,GAAG,eAAe,EAC9C,WAAW,CACZ,CAeA"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAG3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAE/B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,iBAAiB,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,CAAA;AAElG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CACzB;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CACtC,OAAO,GAAG,KAAK,CAAC,KAAK,EACrB,KAAK,EACL,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAuCnD,CAAA;AA0DF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,SAAS,GAChB,MAAM,CAAC,MAAM,CACd,OAAO,GAAG,QAAQ,GAAG,OAAO,EAC5B,KAAK,CAAC,sBAAsB,GAAG,eAAe,EAC9C,WAAW,CACZ,CAeA"}
@@ -29,9 +29,29 @@ const Fiber = __importStar(require("@effect/io/Fiber"));
29
29
  const Runtime = __importStar(require("@effect/io/Runtime"));
30
30
  const dom_1 = require("@typed/dom");
31
31
  const Fx = __importStar(require("@typed/fx"));
32
- const constant_js_1 = require("./constant.js");
33
32
  exports.patchHistory = Effect.gen(function* ($) {
34
33
  const history = yield* $(dom_1.History);
34
+ const stateDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(history), 'state');
35
+ // Create a clone that always operates on the original history
36
+ const clone = {
37
+ get length() {
38
+ return history.length;
39
+ },
40
+ get scrollRestoration() {
41
+ return history.scrollRestoration;
42
+ },
43
+ set scrollRestoration(value) {
44
+ history.scrollRestoration = value;
45
+ },
46
+ get state() {
47
+ return stateDescriptor?.get?.call(history);
48
+ },
49
+ back: history.back.bind(history),
50
+ forward: history.forward.bind(history),
51
+ go: history.go.bind(history),
52
+ pushState: history.pushState.bind(history),
53
+ replaceState: history.replaceState.bind(history),
54
+ };
35
55
  const scope = yield* $(Effect.scope);
36
56
  const historyEvents = Fx.makeSubject();
37
57
  const runtime = yield* $(Effect.runtime());
@@ -39,7 +59,7 @@ exports.patchHistory = Effect.gen(function* ($) {
39
59
  const cleanup = patchHistory_(history, (event) => runFork(Effect.flatMap(Effect.forkIn(historyEvents.event(event), scope), Fiber.join)));
40
60
  // unpatch history upon finalization
41
61
  yield* $(Effect.addFinalizer(() => Effect.sync(cleanup)));
42
- return historyEvents;
62
+ return [clone, historyEvents];
43
63
  });
44
64
  function patchHistory_(history, sendEvent) {
45
65
  const pushState = history.pushState;
@@ -47,43 +67,35 @@ function patchHistory_(history, sendEvent) {
47
67
  const go = history.go;
48
68
  const back = history.back;
49
69
  const forward = history.forward;
50
- history.pushState = function (state, title, url) {
51
- pushState.call(history, state, title, url);
52
- if (url && this !== constant_js_1.ServiceId)
70
+ history.pushState = function (state, _, url) {
71
+ if (url)
53
72
  sendEvent({ _tag: 'PushState', state, url: url.toString() });
54
73
  };
55
- history.replaceState = function (state, title, url) {
56
- replaceState.call(history, state, title, url);
57
- if (url && this !== constant_js_1.ServiceId)
74
+ history.replaceState = function (state, _, url) {
75
+ if (url)
58
76
  sendEvent({ _tag: 'ReplaceState', state, url: url.toString() });
59
77
  };
60
78
  history.go = function (delta) {
61
79
  if (!delta)
62
80
  return;
63
- go.call(history, delta);
64
- if (this !== constant_js_1.ServiceId)
65
- sendEvent({ _tag: 'Go', delta });
81
+ sendEvent({ _tag: 'Go', delta });
66
82
  };
67
83
  history.back = function () {
68
- back.call(history);
69
- if (this !== constant_js_1.ServiceId)
70
- sendEvent({ _tag: 'Back' });
84
+ sendEvent({ _tag: 'Back' });
71
85
  };
72
86
  history.forward = function () {
73
- forward.call(history);
74
- if (this !== constant_js_1.ServiceId)
75
- sendEvent({ _tag: 'Forward' });
87
+ sendEvent({ _tag: 'Forward' });
76
88
  };
77
89
  const stateDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(history), 'state');
90
+ // Override state to always return the original state
78
91
  Object.defineProperty(history, 'state', {
79
- ...stateDescriptor,
80
92
  get() {
81
- return stateDescriptor?.get?.call(history)?.state;
93
+ const state = stateDescriptor?.get?.call(history);
94
+ if (state && state.key && state.state)
95
+ return state.state;
96
+ return state;
82
97
  },
83
98
  });
84
- Object.defineProperty(history, 'originalState', {
85
- ...stateDescriptor,
86
- });
87
99
  // Reset history to original state
88
100
  return () => {
89
101
  history.pushState = pushState;
@@ -91,8 +103,9 @@ function patchHistory_(history, sendEvent) {
91
103
  history.go = go;
92
104
  history.back = back;
93
105
  history.forward = forward;
94
- if (stateDescriptor)
106
+ if (stateDescriptor) {
95
107
  Object.defineProperty(history, 'state', stateDescriptor);
108
+ }
96
109
  };
97
110
  }
98
111
  function onHistoryEvent(event, intent) {
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/history.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { Option } from '@effect/data/Option';
2
- import * as Cause from '@effect/io/Cause';
3
2
  import * as Effect from '@effect/io/Effect';
4
3
  import type { MemoryNavigationOptions } from './Memory.js';
5
4
  import { Destination, NavigateOptions, NavigationError, NavigationEvent } from './Navigation.js';
@@ -13,16 +12,16 @@ export type MemoryIntent = {
13
12
  readonly navigate: (url: string, options?: NavigateOptions) => ReturnType<ReturnType<typeof makePush | typeof makeReplace>>;
14
13
  readonly notify: Notify;
15
14
  readonly go: ReturnType<typeof makeGo>;
16
- readonly goTo: (key: string) => Effect.Effect<never, Cause.NoSuchElementException | NavigationError, Option<Destination>>;
15
+ readonly goTo: (key: string) => Effect.Effect<never, NavigationError, Option<Destination>>;
17
16
  readonly reload: ReturnType<typeof makeReload>;
18
17
  readonly onNavigation: ReturnType<typeof makeOnNavigation>;
19
18
  readonly onNavigationEnd: ReturnType<typeof makeOnNavigationEnd>;
20
19
  };
21
20
  export declare function makeIntent(model: Model, options: MemoryNavigationOptions): MemoryIntent;
22
21
  export type Intent = ReturnType<typeof makeIntent>;
23
- export declare const makeSave: (model: Model) => (event: NavigationEvent) => Effect.Effect<never, Cause.NoSuchElementException, void>;
24
- export declare const makeReload: (model: Model, notify: Notify, save: Save<never>) => Effect.Effect<never, NavigationError | Cause.NoSuchElementException, Destination>;
25
- export declare const makeReplace: (model: Model, notify: Notify, save: Save<never>, base: string, origin: string) => (url: string, options?: NavigateOptions) => Effect.Effect<never, NavigationError | Cause.NoSuchElementException, Destination>;
26
- export declare const makePush: (model: Model, notify: Notify, save: Save<never>, base: string, origin: string, maxEntries: number) => (url: string, options?: NavigateOptions) => Effect.Effect<never, NavigationError | Cause.NoSuchElementException, Destination>;
27
- export declare const makeGo: (model: Model, notify: Notify, save: Save<never>) => (delta: number) => Effect.Effect<never, NavigationError | Cause.NoSuchElementException, Destination>;
22
+ export declare const makeSave: (model: Model) => (event: NavigationEvent) => Effect.Effect<never, never, void>;
23
+ export declare const makeReload: (model: Model, notify: Notify, save: Save<never>) => Effect.Effect<never, NavigationError, Destination>;
24
+ export declare const makeReplace: (model: Model, notify: Notify, save: Save<never>, base: string, origin: string) => (url: string, options?: NavigateOptions) => Effect.Effect<never, NavigationError, Destination>;
25
+ export declare const makePush: (model: Model, notify: Notify, save: Save<never>, base: string, origin: string, maxEntries: number) => (url: string, options?: NavigateOptions) => Effect.Effect<never, NavigationError, Destination>;
26
+ export declare const makeGo: (model: Model, notify: Notify, save: Save<never>) => (delta: number) => Effect.Effect<never, NavigationError, Destination>;
28
27
  //# sourceMappingURL=memory-intent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-intent.d.ts","sourceRoot":"","sources":["../../src/memory-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EAEhB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,MAAM,EACN,IAAI,EAGJ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAM3B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEpD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEvD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAA;IAE1C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;IAEhD,QAAQ,CAAC,QAAQ,EAAE,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,KACtB,UAAU,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAG,OAAO,WAAW,CAAC,CAAC,CAAA;IAEjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,CACb,GAAG,EAAE,MAAM,KACR,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,GAAG,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAE9F,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;IAE9C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAE1D,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACjE,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAwBvF;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,eAAO,MAAM,QAAQ,EAAE,CACrB,KAAK,EAAE,KAAK,KACT,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAclF,CAAA;AAEN,eAAO,MAAM,UAAU,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,sFAWtE,CAAA;AAEJ,eAAO,MAAM,WAAW,UACd,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,QAAQ,MAAM,UAAU,MAAM,WACxE,MAAM,YAAW,eAAe,sFA6BlC,CAAA;AAEN,eAAO,MAAM,QAAQ,UAEV,KAAK,UACJ,MAAM,QACR,KAAK,KAAK,CAAC,QACX,MAAM,UACJ,MAAM,cACF,MAAM,WAEd,MAAM,YAAW,eAAe,sFAmClC,CAAA;AAEN,eAAO,MAAM,MAAM,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,aAAa,MAAM,sFA2BrF,CAAA"}
1
+ {"version":3,"file":"memory-intent.d.ts","sourceRoot":"","sources":["../../src/memory-intent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,eAAe,EAEhB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EACL,MAAM,EACN,IAAI,EAGJ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;AAM3B,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEpD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAA;IAEvD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAA;IAE1C,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,CAAA;IAEhD,QAAQ,CAAC,QAAQ,EAAE,CACjB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,KACtB,UAAU,CAAC,UAAU,CAAC,OAAO,QAAQ,GAAG,OAAO,WAAW,CAAC,CAAC,CAAA;IAEjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAEvB,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;IAEtC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAE1F,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;IAE9C,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;IAE1D,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;CACjE,CAAA;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAwBvF;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,eAAO,MAAM,QAAQ,EAAE,CACrB,KAAK,EAAE,KAAK,KACT,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAc3D,CAAA;AAEN,eAAO,MAAM,UAAU,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,uDAWtE,CAAA;AAEJ,eAAO,MAAM,WAAW,UACd,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,QAAQ,MAAM,UAAU,MAAM,WACxE,MAAM,YAAW,eAAe,uDA6BlC,CAAA;AAEN,eAAO,MAAM,QAAQ,UAEV,KAAK,UACJ,MAAM,QACR,KAAK,KAAK,CAAC,QACX,MAAM,UACJ,MAAM,cACF,MAAM,WAEd,MAAM,YAAW,eAAe,uDAmClC,CAAA;AAEN,eAAO,MAAM,MAAM,UAAW,KAAK,UAAU,MAAM,QAAQ,KAAK,KAAK,CAAC,aAAa,MAAM,uDA2BrF,CAAA"}
@@ -139,11 +139,18 @@ const makeGo = (model, notify, save) => (delta) => Effect.gen(function* ($) {
139
139
  const nextEntry = currentEntries[nextIndex];
140
140
  yield* $(notify({
141
141
  ...nextEntry,
142
- navigationType: nextIndex > currentIndex ? Navigation_js_1.NavigationType.Forward : Navigation_js_1.NavigationType.Back,
142
+ navigationType: getNavigationType(currentIndex, nextIndex),
143
143
  }));
144
144
  yield* $(model.index.set(nextIndex));
145
145
  yield* $(save(nextEntry));
146
146
  return nextEntry.destination;
147
147
  });
148
148
  exports.makeGo = makeGo;
149
+ function getNavigationType(currentIndex, nextIndex) {
150
+ if (nextIndex > currentIndex)
151
+ return Navigation_js_1.NavigationType.Forward;
152
+ if (nextIndex < currentIndex)
153
+ return Navigation_js_1.NavigationType.Back;
154
+ return Navigation_js_1.NavigationType.Reload;
155
+ }
149
156
  //# sourceMappingURL=memory-intent.js.map