@typed/navigation 0.5.2 → 0.5.4

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.
@@ -1,2 +0,0 @@
1
- export declare const ServiceId: any;
2
- //# sourceMappingURL=constant.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,EAAE,GAAkD,CAAA"}
@@ -1,30 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ServiceId = void 0;
27
- const Global = __importStar(require("@effect/data/Global"));
28
- const id = '@typed/navigation/ServiceId';
29
- exports.ServiceId = Global.globalValue(id, () => Symbol.for(id));
30
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../../src/constant.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA6C;AAE7C,MAAM,EAAE,GAAG,6BAA6B,CAAA;AAE3B,QAAA,SAAS,GAAQ,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA"}
@@ -1,2 +0,0 @@
1
- export declare const ServiceId: any;
2
- //# sourceMappingURL=constant.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS,EAAE,GAAkD,CAAA"}
package/dist/constant.js DELETED
@@ -1,4 +0,0 @@
1
- import * as Global from '@effect/data/Global';
2
- const id = '@typed/navigation/ServiceId';
3
- export const ServiceId = Global.globalValue(id, () => Symbol.for(id));
4
- //# sourceMappingURL=constant.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constant.js","sourceRoot":"","sources":["../src/constant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAE7C,MAAM,EAAE,GAAG,6BAA6B,CAAA;AAExC,MAAM,CAAC,MAAM,SAAS,GAAQ,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA"}
package/dist/intent.d.ts DELETED
@@ -1,31 +0,0 @@
1
- import * as Option from '@effect/data/Option';
2
- import * as Effect from '@effect/io/Effect';
3
- import * as Scope from '@effect/io/Scope';
4
- import { History, Location } from '@typed/dom';
5
- import type { DomNavigationOptions } from './DOM.js';
6
- import { Destination, NavigateOptions, NavigationError, NavigationEvent } from './Navigation.js';
7
- import { Model } from './model.js';
8
- export declare function makeIntent(model: Model, options: DomNavigationOptions): {
9
- readonly back: (skipHistory: boolean) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Destination>;
10
- readonly forward: (skipHistory: boolean) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Destination>;
11
- readonly push: (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | Location | History, NavigationError, Destination>;
12
- readonly replace: (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | Location | History, NavigationError, Destination>;
13
- readonly navigate: (url: string, options?: NavigateOptions) => Effect.Effect<import("@typed/dom").Storage | Location | History, NavigationError, Destination>;
14
- readonly go: (delta: number, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Destination>;
15
- readonly goTo: (key: string) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Option.None<Destination> | Option.Some<Destination>>;
16
- readonly reload: Effect.Effect<import("@typed/dom").Storage | Location, NavigationError, Destination>;
17
- readonly onNavigation: <R>(handler: (event: NavigationEvent) => Effect.Effect<R, NavigationError, unknown>) => Effect.Effect<Scope.Scope | R, never, void>;
18
- };
19
- export type Intent = ReturnType<typeof makeIntent>;
20
- type Notify = ReturnType<typeof makeNotify>;
21
- type Save = ReturnType<typeof makeSave>;
22
- export declare const makeNotify: (model: Model) => (event: NavigationEvent) => Effect.Effect<never, NavigationError, void>;
23
- export declare const makeSave: (model: Model) => (event: NavigationEvent) => Effect.Effect<import("@typed/dom").Storage, never, void>;
24
- export declare const makeOnNavigation: ({ eventHandlers }: Model) => <R>(handler: (event: NavigationEvent) => Effect.Effect<R, NavigationError, unknown>) => Effect.Effect<Scope.Scope | R, never, void>;
25
- export declare const makeReload: (model: Model, notify: Notify, save: Save) => Effect.Effect<import("@typed/dom").Storage | Location, NavigationError, Destination>;
26
- export declare const makeReplace: (model: Model, notify: Notify, save: Save) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | Location | History, NavigationError, Destination>;
27
- export declare const makePush: (model: Model, notify: Notify, save: Save, maxEntries: number) => (url: string, options?: NavigateOptions, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | Location | History, NavigationError, Destination>;
28
- export declare const makeGo: (model: Model, notify: Notify, save: Save) => (delta: number, skipHistory?: boolean) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Destination>;
29
- export declare const makeGoTo: (model: Model, go: ReturnType<typeof makeGo>) => (key: string) => Effect.Effect<import("@typed/dom").Storage | History, NavigationError, Option.None<Destination> | Option.Some<Destination>>;
30
- export {};
31
- //# sourceMappingURL=intent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AACzC,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;AAOlC,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB;iCAS9C,OAAO;oCACJ,OAAO;;;6BAGd,MAAM,YAAW,eAAe;;;;;EAOnD;AAED,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAElD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAC3C,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAA;AAGvC,eAAO,MAAM,UAAU,UAAW,KAAK,aAAa,eAAe,gDAK/D,CAAA;AAEJ,eAAO,MAAM,QAAQ,UAAW,KAAK,aAAa,eAAe,6DAa7D,CAAA;AAEJ,eAAO,MAAM,gBAAgB,sBACP,KAAK,0BAEN,eAAe,+FAY/B,CAAA;AAEL,eAAO,MAAM,UAAU,UAAW,KAAK,UAAU,MAAM,QAAQ,IAAI,yFAe/D,CAAA;AAEJ,eAAO,MAAM,WAAW,UACd,KAAK,UAAU,MAAM,QAAQ,IAAI,WACnC,MAAM,YAAW,eAAe,0HAyClC,CAAA;AAEN,eAAO,MAAM,QAAQ,UACX,KAAK,UAAU,MAAM,QAAQ,IAAI,cAAc,MAAM,WACvD,MAAM,YAAW,eAAe,0HA+ClC,CAAA;AAEN,eAAO,MAAM,MAAM,UACT,KAAK,UAAU,MAAM,QAAQ,IAAI,aACjC,MAAM,+GAiCV,CAAA;AAEN,eAAO,MAAM,QAAQ,UAAW,KAAK,MAAM,WAAW,aAAa,CAAC,WAAW,MAAM,gIAejF,CAAA"}
package/dist/intent.js DELETED
@@ -1,157 +0,0 @@
1
- import * as Option from '@effect/data/Option';
2
- import * as Effect from '@effect/io/Effect';
3
- import { History, Location } from '@typed/dom';
4
- import { NavigationType, } from './Navigation.js';
5
- import { ServiceId } from './constant.js';
6
- import { encodeEvent } from './json.js';
7
- import { saveToStorage } from './storage.js';
8
- import { createKey, getUrl } from './util.js';
9
- // Roughly the number of History entries in a browser anyways
10
- const DEFAULT_MAX_ENTRIES = 50;
11
- export function makeIntent(model, options) {
12
- const maxEntries = Math.abs(options.maxEntries ?? DEFAULT_MAX_ENTRIES);
13
- const notify = makeNotify(model);
14
- const save = makeSave(model);
15
- const go = makeGo(model, notify, save);
16
- const replace = makeReplace(model, notify, save);
17
- const push = makePush(model, notify, save, maxEntries);
18
- return {
19
- back: (skipHistory) => go(-1, skipHistory),
20
- forward: (skipHistory) => go(1, skipHistory),
21
- push,
22
- replace,
23
- navigate: (url, options = {}) => options.history === 'replace' ? replace(url, options) : push(url, options),
24
- go: go,
25
- goTo: makeGoTo(model, go),
26
- reload: makeReload(model, notify, save),
27
- onNavigation: makeOnNavigation(model),
28
- };
29
- }
30
- // Anytime there are changes to the model, we need to notify all event handlers
31
- export const makeNotify = (model) => (event) => Effect.gen(function* ($) {
32
- // Notify event handlers
33
- if (model.eventHandlers.size > 0)
34
- yield* $(Effect.forEachDiscard(model.eventHandlers, (handler) => handler(event)));
35
- });
36
- export const makeSave = (model) => (event) => Effect.gen(function* ($) {
37
- const events = yield* $(model.events);
38
- const index = yield* $(model.index);
39
- // Save to storage
40
- yield* $(saveToStorage(events, index));
41
- // Update current entry
42
- yield* $(model.currentEntry.set(event.destination));
43
- // Update canGoForward
44
- yield* $(model.canGoForward.set(index < events.length - 1));
45
- });
46
- export const makeOnNavigation = ({ eventHandlers }) => (handler) => Effect.uninterruptibleMask((restore) => Effect.gen(function* ($) {
47
- const context = yield* $(Effect.context());
48
- const handler_ = (event) => restore(Effect.provideContext(handler(event), context));
49
- eventHandlers.add(handler_);
50
- yield* $(Effect.addFinalizer(() => Effect.sync(() => eventHandlers.delete(handler_))));
51
- }));
52
- export const makeReload = (model, notify, save) => Effect.gen(function* ($) {
53
- const i = yield* $(model.index.get);
54
- const e = yield* $(model.events);
55
- const event = e[i];
56
- const reloadEvent = { ...event, navigationType: NavigationType.Reload };
57
- yield* $(notify(reloadEvent));
58
- yield* $(save(reloadEvent));
59
- const location = yield* $(Location);
60
- location.reload();
61
- return event.destination;
62
- });
63
- export const makeReplace = (model, notify, save) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
64
- const location = yield* $(Location);
65
- const entry = yield* $(model.currentEntry.get);
66
- const destination = {
67
- key: entry.key,
68
- url: getUrl(url, location.origin),
69
- state: options.state,
70
- };
71
- const event = {
72
- destination,
73
- hashChange: entry.url.hash !== destination.url.hash,
74
- navigationType: NavigationType.Replace,
75
- };
76
- yield* $(notify(event));
77
- if (!skipHistory) {
78
- const history = yield* $(History);
79
- history.replaceState.call(ServiceId, { state: options.state, event: encodeEvent(event) }, '', url);
80
- }
81
- const currentIndex = yield* $(model.index);
82
- yield* $(model.events.update((entries) => {
83
- const updated = entries.slice(0);
84
- updated[currentIndex] = event;
85
- return updated;
86
- }));
87
- yield* $(save(event));
88
- return destination;
89
- });
90
- export const makePush = (model, notify, save, maxEntries) => (url, options = {}, skipHistory = false) => Effect.gen(function* ($) {
91
- const location = yield* $(Location);
92
- const entry = yield* $(model.currentEntry.get);
93
- const destination = {
94
- key: yield* $(createKey),
95
- url: getUrl(url, location.origin),
96
- state: options.state,
97
- };
98
- const event = {
99
- destination,
100
- hashChange: entry.url.hash !== destination.url.hash,
101
- navigationType: NavigationType.Push,
102
- };
103
- // Notify event handlers
104
- yield* $(notify(event));
105
- if (!skipHistory) {
106
- const history = yield* $(History);
107
- history.pushState.call(ServiceId, { state: options.state, event: encodeEvent(event) }, '', url);
108
- }
109
- const currentIndex = yield* $(model.index);
110
- // Remove all entries after the current index
111
- // and add the new destination to the end
112
- yield* $(model.events.update((entries) => {
113
- const updated = entries.slice(0, currentIndex + 1);
114
- updated.push(event);
115
- return updated.slice(-maxEntries);
116
- }));
117
- // Update the index to the new destination
118
- yield* $(model.index.update((i) => i + 1));
119
- yield* $(save(event));
120
- return destination;
121
- });
122
- export const makeGo = (model, notify, save) => (delta, skipHistory = false) => Effect.gen(function* ($) {
123
- const currentEntries = yield* $(model.events);
124
- const totalEntries = currentEntries.length;
125
- const currentIndex = yield* $(model.index);
126
- // Nothing to do here
127
- if (delta === 0)
128
- return currentEntries[currentIndex].destination;
129
- const nextIndex = delta > 0
130
- ? Math.min(currentIndex + delta, totalEntries - 1)
131
- : Math.max(currentIndex + delta, 0);
132
- const nextEntry = currentEntries[nextIndex];
133
- yield* $(notify({
134
- ...nextEntry,
135
- navigationType: nextIndex > currentIndex ? NavigationType.Forward : NavigationType.Back,
136
- }));
137
- if (!skipHistory) {
138
- const history = yield* $(History);
139
- history.go.call(ServiceId, delta);
140
- }
141
- yield* $(model.index.set(nextIndex));
142
- yield* $(save(nextEntry));
143
- return nextEntry.destination;
144
- });
145
- export const makeGoTo = (model, go) => (key) => Effect.gen(function* ($) {
146
- const entries = yield* $(model.entries);
147
- const currentIndex = yield* $(model.index);
148
- const nextIndex = entries.findIndex((destination) => destination.key === key);
149
- if (nextIndex === -1)
150
- return Option.none();
151
- const delta = nextIndex - currentIndex;
152
- if (delta !== 0) {
153
- return Option.some(yield* $(go(delta)));
154
- }
155
- return Option.some(entries[nextIndex]);
156
- });
157
- //# sourceMappingURL=intent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}