@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.
- package/dist/cjs/dom-intent.d.ts +3 -3
- package/dist/dom-intent.d.ts +3 -3
- package/dist/tsconfig.cjs.build.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/cjs/constant.d.ts +0 -2
- package/dist/cjs/constant.d.ts.map +0 -1
- package/dist/cjs/constant.js +0 -30
- package/dist/cjs/constant.js.map +0 -1
- package/dist/constant.d.ts +0 -2
- package/dist/constant.d.ts.map +0 -1
- package/dist/constant.js +0 -4
- package/dist/constant.js.map +0 -1
- package/dist/intent.d.ts +0 -31
- package/dist/intent.d.ts.map +0 -1
- package/dist/intent.js +0 -157
- package/dist/intent.js.map +0 -1
package/dist/cjs/constant.d.ts
DELETED
|
@@ -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/cjs/constant.js
DELETED
|
@@ -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
|
package/dist/cjs/constant.js.map
DELETED
|
@@ -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"}
|
package/dist/constant.d.ts
DELETED
package/dist/constant.d.ts.map
DELETED
|
@@ -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
package/dist/constant.js.map
DELETED
|
@@ -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
|
package/dist/intent.d.ts.map
DELETED
|
@@ -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
|
package/dist/intent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}
|