@typed/navigation 0.5.3 → 0.6.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.
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/cjs/Blocking.js +53 -0
- package/dist/cjs/Blocking.js.map +1 -0
- package/dist/cjs/Layer.js +27 -0
- package/dist/cjs/Layer.js.map +1 -0
- package/dist/cjs/Navigation.js +184 -62
- package/dist/cjs/Navigation.js.map +1 -1
- package/dist/cjs/index.js +36 -17
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/fromWindow.js +376 -0
- package/dist/cjs/internal/fromWindow.js.map +1 -0
- package/dist/cjs/internal/memory.js +67 -0
- package/dist/cjs/internal/memory.js.map +1 -0
- package/dist/cjs/internal/shared.js +403 -0
- package/dist/cjs/internal/shared.js.map +1 -0
- package/dist/dts/Blocking.d.ts +33 -0
- package/dist/dts/Blocking.d.ts.map +1 -0
- package/dist/dts/Layer.d.ts +44 -0
- package/dist/dts/Layer.d.ts.map +1 -0
- package/dist/dts/Navigation.d.ts +377 -0
- package/dist/dts/Navigation.d.ts.map +1 -0
- package/dist/dts/index.d.ts +17 -0
- package/dist/dts/index.d.ts.map +1 -0
- package/dist/dts/internal/fromWindow.d.ts +12 -0
- package/dist/dts/internal/fromWindow.d.ts.map +1 -0
- package/dist/dts/internal/memory.d.ts +6 -0
- package/dist/dts/internal/memory.d.ts.map +1 -0
- package/dist/dts/internal/shared.d.ts +139 -0
- package/dist/dts/internal/shared.d.ts.map +1 -0
- package/dist/esm/Blocking.js +39 -0
- package/dist/esm/Blocking.js.map +1 -0
- package/dist/esm/Layer.js +18 -0
- package/dist/esm/Layer.js.map +1 -0
- package/dist/esm/Navigation.js +166 -0
- package/dist/esm/Navigation.js.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/fromWindow.js +273 -0
- package/dist/esm/internal/fromWindow.js.map +1 -0
- package/dist/esm/internal/memory.js +54 -0
- package/dist/esm/internal/memory.js.map +1 -0
- package/dist/esm/internal/shared.js +336 -0
- package/dist/esm/internal/shared.js.map +1 -0
- package/dist/esm/package.json +4 -0
- package/package.json +52 -32
- package/src/Blocking.ts +102 -0
- package/src/Layer.ts +53 -0
- package/src/Navigation.ts +342 -159
- package/src/index.ts +17 -3
- package/src/internal/fromWindow.ts +421 -0
- package/src/internal/memory.ts +79 -0
- package/src/internal/shared.ts +514 -0
- package/dist/DOM.d.ts +0 -12
- package/dist/DOM.d.ts.map +0 -1
- package/dist/DOM.js +0 -87
- package/dist/DOM.js.map +0 -1
- package/dist/Memory.d.ts +0 -10
- package/dist/Memory.d.ts.map +0 -1
- package/dist/Memory.js +0 -55
- package/dist/Memory.js.map +0 -1
- package/dist/Navigation.d.ts +0 -116
- package/dist/Navigation.d.ts.map +0 -1
- package/dist/Navigation.js +0 -36
- package/dist/Navigation.js.map +0 -1
- package/dist/_makeServerWindow.d.ts +0 -16
- package/dist/_makeServerWindow.d.ts.map +0 -1
- package/dist/_makeServerWindow.js +0 -9
- package/dist/_makeServerWindow.js.map +0 -1
- package/dist/cjs/DOM.d.ts +0 -12
- package/dist/cjs/DOM.d.ts.map +0 -1
- package/dist/cjs/DOM.js +0 -116
- package/dist/cjs/DOM.js.map +0 -1
- package/dist/cjs/Memory.d.ts +0 -10
- package/dist/cjs/Memory.d.ts.map +0 -1
- package/dist/cjs/Memory.js +0 -82
- package/dist/cjs/Memory.js.map +0 -1
- package/dist/cjs/Navigation.d.ts +0 -116
- package/dist/cjs/Navigation.d.ts.map +0 -1
- package/dist/cjs/_makeServerWindow.d.ts +0 -16
- package/dist/cjs/_makeServerWindow.d.ts.map +0 -1
- package/dist/cjs/_makeServerWindow.js +0 -36
- package/dist/cjs/_makeServerWindow.js.map +0 -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/cjs/dom-intent.d.ts +0 -28
- package/dist/cjs/dom-intent.d.ts.map +0 -1
- package/dist/cjs/dom-intent.js +0 -172
- package/dist/cjs/dom-intent.js.map +0 -1
- package/dist/cjs/history.d.ts +0 -31
- package/dist/cjs/history.d.ts.map +0 -1
- package/dist/cjs/history.js +0 -131
- package/dist/cjs/history.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -4
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/json.d.ts +0 -13
- package/dist/cjs/json.d.ts.map +0 -1
- package/dist/cjs/json.js +0 -24
- package/dist/cjs/json.js.map +0 -1
- package/dist/cjs/memory-intent.d.ts +0 -27
- package/dist/cjs/memory-intent.d.ts.map +0 -1
- package/dist/cjs/memory-intent.js +0 -156
- package/dist/cjs/memory-intent.js.map +0 -1
- package/dist/cjs/model.d.ts +0 -22
- package/dist/cjs/model.d.ts.map +0 -1
- package/dist/cjs/model.js +0 -48
- package/dist/cjs/model.js.map +0 -1
- package/dist/cjs/shared-intent.d.ts +0 -14
- package/dist/cjs/shared-intent.d.ts.map +0 -1
- package/dist/cjs/shared-intent.js +0 -82
- package/dist/cjs/shared-intent.js.map +0 -1
- package/dist/cjs/storage.d.ts +0 -19
- package/dist/cjs/storage.d.ts.map +0 -1
- package/dist/cjs/storage.js +0 -101
- package/dist/cjs/storage.js.map +0 -1
- package/dist/cjs/util.d.ts +0 -5
- package/dist/cjs/util.d.ts.map +0 -1
- package/dist/cjs/util.js +0 -39
- package/dist/cjs/util.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/dom-intent.d.ts +0 -28
- package/dist/dom-intent.d.ts.map +0 -1
- package/dist/dom-intent.js +0 -140
- package/dist/dom-intent.js.map +0 -1
- package/dist/history.d.ts +0 -31
- package/dist/history.d.ts.map +0 -1
- package/dist/history.js +0 -104
- package/dist/history.js.map +0 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.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/json.d.ts +0 -13
- package/dist/json.d.ts.map +0 -1
- package/dist/json.js +0 -17
- package/dist/json.js.map +0 -1
- package/dist/memory-intent.d.ts +0 -27
- package/dist/memory-intent.d.ts.map +0 -1
- package/dist/memory-intent.js +0 -124
- package/dist/memory-intent.js.map +0 -1
- package/dist/model.d.ts +0 -22
- package/dist/model.d.ts.map +0 -1
- package/dist/model.js +0 -21
- package/dist/model.js.map +0 -1
- package/dist/shared-intent.d.ts +0 -14
- package/dist/shared-intent.d.ts.map +0 -1
- package/dist/shared-intent.js +0 -51
- package/dist/shared-intent.js.map +0 -1
- package/dist/storage.d.ts +0 -19
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -73
- package/dist/storage.js.map +0 -1
- package/dist/tsconfig.cjs.build.tsbuildinfo +0 -1
- package/dist/util.d.ts +0 -5
- package/dist/util.d.ts.map +0 -1
- package/dist/util.js +0 -12
- package/dist/util.js.map +0 -1
- package/eslintrc.json +0 -3
- package/project.json +0 -46
- package/src/DOM.test.ts +0 -699
- package/src/DOM.ts +0 -163
- package/src/Memory.test.ts +0 -464
- package/src/Memory.ts +0 -102
- package/src/_makeServerWindow.ts +0 -28
- package/src/dom-intent.ts +0 -268
- package/src/history.ts +0 -165
- package/src/json.ts +0 -31
- package/src/memory-intent.ts +0 -224
- package/src/model.ts +0 -54
- package/src/shared-intent.ts +0 -117
- package/src/storage.ts +0 -101
- package/src/util.ts +0 -20
- package/tsconfig.build.json +0 -4
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.cjs.build.json +0 -22
- package/tsconfig.json +0 -27
- package/vite.config.mjs +0 -3
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.NavigationState = void 0;
|
|
7
|
+
exports.getOriginFromUrl = getOriginFromUrl;
|
|
8
|
+
exports.getOriginalState = getOriginalState;
|
|
9
|
+
exports.getUrl = void 0;
|
|
10
|
+
exports.isDestination = isDestination;
|
|
11
|
+
exports.isPatchedState = isPatchedState;
|
|
12
|
+
exports.makeDestination = makeDestination;
|
|
13
|
+
exports.makeHandlersState = makeHandlersState;
|
|
14
|
+
exports.makeOrUpdateDestination = makeOrUpdateDestination;
|
|
15
|
+
exports.makeRedirectEvent = makeRedirectEvent;
|
|
16
|
+
exports.setupFromModelAndIntent = setupFromModelAndIntent;
|
|
17
|
+
exports.upgradeProposedDestination = upgradeProposedDestination;
|
|
18
|
+
var _schema = /*#__PURE__*/require("@effect/schema");
|
|
19
|
+
var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/fx/RefSubject"));
|
|
20
|
+
var _id = /*#__PURE__*/require("@typed/id");
|
|
21
|
+
var _effect = /*#__PURE__*/require("effect");
|
|
22
|
+
var _Navigation = /*#__PURE__*/require("../Navigation");
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
25
|
+
const NavigationState = exports.NavigationState = /*#__PURE__*/_schema.Schema.struct({
|
|
26
|
+
entries: /*#__PURE__*/_schema.Schema.array(_Navigation.Destination),
|
|
27
|
+
index: _schema.Schema.number,
|
|
28
|
+
transition: /*#__PURE__*/_schema.Schema.optionFromNullable(_Navigation.Transition)
|
|
29
|
+
});
|
|
30
|
+
const getUrl = (origin, urlOrPath) => {
|
|
31
|
+
return typeof urlOrPath === "string" ? new URL(urlOrPath, origin) : urlOrPath;
|
|
32
|
+
};
|
|
33
|
+
exports.getUrl = getUrl;
|
|
34
|
+
function setupFromModelAndIntent(modelAndIntent, origin, base, getRandomValues, newNavigationState) {
|
|
35
|
+
const {
|
|
36
|
+
beforeHandlers,
|
|
37
|
+
canGoBack,
|
|
38
|
+
canGoForward,
|
|
39
|
+
commit,
|
|
40
|
+
handlers,
|
|
41
|
+
state
|
|
42
|
+
} = modelAndIntent;
|
|
43
|
+
const entries = state.map(s => s.entries);
|
|
44
|
+
const currentEntry = state.map(s => s.entries[s.index]);
|
|
45
|
+
const transition = state.map(s => s.transition);
|
|
46
|
+
const runBeforeHandlers = event => _effect.Effect.gen(function* (_) {
|
|
47
|
+
const handlers = yield* _(beforeHandlers);
|
|
48
|
+
const matches = [];
|
|
49
|
+
for (const [handler, ctx] of handlers) {
|
|
50
|
+
const exit = yield* _(handler(event), _effect.Effect.provide(ctx), _effect.Effect.either);
|
|
51
|
+
if (_effect.Either.isRight(exit)) {
|
|
52
|
+
const match = exit.right;
|
|
53
|
+
if (_effect.Option.isSome(match)) {
|
|
54
|
+
matches.push(_effect.Effect.provide(match.value, ctx));
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
return _effect.Option.some(exit.left);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (matches.length > 0) {
|
|
61
|
+
for (const match of matches) {
|
|
62
|
+
const exit = yield* _(match, _effect.Effect.either);
|
|
63
|
+
if (_effect.Either.isLeft(exit)) {
|
|
64
|
+
return _effect.Option.some(exit.left);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return _effect.Option.none();
|
|
69
|
+
});
|
|
70
|
+
const runHandlers = event => _effect.Effect.gen(function* (_) {
|
|
71
|
+
const eventHandlers = yield* _(handlers);
|
|
72
|
+
const matches = [];
|
|
73
|
+
for (const [handler, ctx] of eventHandlers) {
|
|
74
|
+
const match = yield* _(handler(event), _effect.Effect.provide(ctx));
|
|
75
|
+
if (_effect.Option.isSome(match)) {
|
|
76
|
+
matches.push(_effect.Effect.provide(match.value, ctx));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (matches.length > 0) {
|
|
80
|
+
yield* _(_effect.Effect.all(matches));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
const runNavigationEvent = (beforeEvent, get, set, depth, skipCommit = false) => _effect.Effect.gen(function* (_) {
|
|
84
|
+
let current = yield* _(get);
|
|
85
|
+
current = yield* _(set({
|
|
86
|
+
...current,
|
|
87
|
+
transition: _effect.Option.some(beforeEvent)
|
|
88
|
+
}));
|
|
89
|
+
if (!skipCommit) {
|
|
90
|
+
const beforeError = yield* _(runBeforeHandlers(beforeEvent));
|
|
91
|
+
if (_effect.Option.isSome(beforeError)) {
|
|
92
|
+
return yield* _(handleError(beforeError.value, get, set, depth));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const to = isDestination(beforeEvent.to) ? beforeEvent.to : yield* _(upgradeProposedDestination(beforeEvent.to));
|
|
96
|
+
if (!skipCommit) {
|
|
97
|
+
yield* _(commit(to, beforeEvent));
|
|
98
|
+
}
|
|
99
|
+
if (newNavigationState) {
|
|
100
|
+
const {
|
|
101
|
+
entries,
|
|
102
|
+
index
|
|
103
|
+
} = yield* _(set(newNavigationState()));
|
|
104
|
+
return entries[index];
|
|
105
|
+
} else {
|
|
106
|
+
const event = {
|
|
107
|
+
type: beforeEvent.type,
|
|
108
|
+
info: beforeEvent.info,
|
|
109
|
+
destination: to
|
|
110
|
+
};
|
|
111
|
+
if (beforeEvent.type === "push") {
|
|
112
|
+
const index = current.index + 1;
|
|
113
|
+
const entries = current.entries.slice(0, index).concat([to]);
|
|
114
|
+
yield* _(set({
|
|
115
|
+
entries,
|
|
116
|
+
index,
|
|
117
|
+
transition: _effect.Option.none()
|
|
118
|
+
}));
|
|
119
|
+
} else if (beforeEvent.type === "replace") {
|
|
120
|
+
const index = current.index;
|
|
121
|
+
const before = current.entries.slice(0, index);
|
|
122
|
+
const after = current.entries.slice(index + 1);
|
|
123
|
+
const entries = [...before, to, ...after];
|
|
124
|
+
yield* _(set({
|
|
125
|
+
entries,
|
|
126
|
+
index,
|
|
127
|
+
transition: _effect.Option.none()
|
|
128
|
+
}));
|
|
129
|
+
} else if (beforeEvent.type === "reload") {
|
|
130
|
+
yield* _(set({
|
|
131
|
+
...current,
|
|
132
|
+
transition: _effect.Option.none()
|
|
133
|
+
}));
|
|
134
|
+
} else {
|
|
135
|
+
const {
|
|
136
|
+
delta
|
|
137
|
+
} = beforeEvent;
|
|
138
|
+
const nextIndex = current.index + delta;
|
|
139
|
+
yield* _(set({
|
|
140
|
+
...current,
|
|
141
|
+
index: nextIndex,
|
|
142
|
+
transition: _effect.Option.none()
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
yield* _(runHandlers(event));
|
|
146
|
+
}
|
|
147
|
+
return to;
|
|
148
|
+
}).pipe(_id.GetRandomValues.provide(getRandomValues));
|
|
149
|
+
const handleError = (error, get, set, depth) => _effect.Effect.gen(function* (_) {
|
|
150
|
+
if (depth >= 25) {
|
|
151
|
+
return yield* _(_effect.Effect.dieMessage(`Redirect loop detected.`));
|
|
152
|
+
}
|
|
153
|
+
const {
|
|
154
|
+
entries,
|
|
155
|
+
index
|
|
156
|
+
} = yield* _(get);
|
|
157
|
+
const from = entries[index];
|
|
158
|
+
if (error._tag === "CancelNavigation") {
|
|
159
|
+
yield* _(set({
|
|
160
|
+
entries,
|
|
161
|
+
index,
|
|
162
|
+
transition: _effect.Option.none()
|
|
163
|
+
}));
|
|
164
|
+
return from;
|
|
165
|
+
} else {
|
|
166
|
+
const event = yield* _(makeRedirectEvent(origin, error, from));
|
|
167
|
+
return yield* _(runNavigationEvent(event, get, set, depth + 1));
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
const navigate = (pathOrUrl, options, skipCommit = false) => state.runUpdate((get, set) => _effect.Effect.gen(function* (_) {
|
|
171
|
+
const state = yield* _(get);
|
|
172
|
+
const from = state.entries[state.index];
|
|
173
|
+
const history = options?.history ?? "auto";
|
|
174
|
+
const to = yield* _(makeOrUpdateDestination(state, getUrl(origin, pathOrUrl), options?.state, origin), _id.GetRandomValues.provide(getRandomValues));
|
|
175
|
+
const type = history === "auto" ? from.key === to.key ? "replace" : "push" : history;
|
|
176
|
+
const event = {
|
|
177
|
+
type,
|
|
178
|
+
from,
|
|
179
|
+
to,
|
|
180
|
+
delta: type === "replace" ? 0 : 1,
|
|
181
|
+
info: options?.info
|
|
182
|
+
};
|
|
183
|
+
return yield* _(runNavigationEvent(event, get, set, 0, skipCommit));
|
|
184
|
+
}));
|
|
185
|
+
const traverseTo = (key, options, skipCommit = false) => state.runUpdate((get, set) => _effect.Effect.gen(function* (_) {
|
|
186
|
+
const state = yield* _(get);
|
|
187
|
+
const {
|
|
188
|
+
entries,
|
|
189
|
+
index
|
|
190
|
+
} = state;
|
|
191
|
+
const from = entries[index];
|
|
192
|
+
const nextIndex = entries.findIndex(e => e.key === key);
|
|
193
|
+
if (nextIndex === -1) return from;
|
|
194
|
+
const id = yield* _(_id.makeUuid, _id.GetRandomValues.provide(getRandomValues));
|
|
195
|
+
const to = {
|
|
196
|
+
...entries[nextIndex],
|
|
197
|
+
id
|
|
198
|
+
};
|
|
199
|
+
const delta = nextIndex - index;
|
|
200
|
+
const event = {
|
|
201
|
+
type: "traverse",
|
|
202
|
+
from,
|
|
203
|
+
to,
|
|
204
|
+
delta,
|
|
205
|
+
info: options?.info
|
|
206
|
+
};
|
|
207
|
+
return yield* _(runNavigationEvent(event, get, set, 0, skipCommit));
|
|
208
|
+
}));
|
|
209
|
+
const back = (options, skipCommit = false) => _effect.Effect.gen(function* (_) {
|
|
210
|
+
const {
|
|
211
|
+
entries,
|
|
212
|
+
index
|
|
213
|
+
} = yield* _(state);
|
|
214
|
+
if (index === 0) return entries[index];
|
|
215
|
+
const {
|
|
216
|
+
key
|
|
217
|
+
} = entries[index - 1];
|
|
218
|
+
return yield* _(traverseTo(key, options, skipCommit));
|
|
219
|
+
});
|
|
220
|
+
const forward = (options, skipCommit = false) => _effect.Effect.gen(function* (_) {
|
|
221
|
+
const {
|
|
222
|
+
entries,
|
|
223
|
+
index
|
|
224
|
+
} = yield* _(state);
|
|
225
|
+
if (index === entries.length - 1) return entries[index];
|
|
226
|
+
const {
|
|
227
|
+
key
|
|
228
|
+
} = entries[index + 1];
|
|
229
|
+
return yield* _(traverseTo(key, options, skipCommit));
|
|
230
|
+
});
|
|
231
|
+
const reload = (options, skipCommit = false) => state.runUpdate((get, set) => _effect.Effect.gen(function* (_) {
|
|
232
|
+
const {
|
|
233
|
+
entries,
|
|
234
|
+
index
|
|
235
|
+
} = yield* _(state);
|
|
236
|
+
const current = entries[index];
|
|
237
|
+
const event = {
|
|
238
|
+
type: "reload",
|
|
239
|
+
from: current,
|
|
240
|
+
to: current,
|
|
241
|
+
delta: 0,
|
|
242
|
+
info: options?.info
|
|
243
|
+
};
|
|
244
|
+
return yield* _(runNavigationEvent(event, get, set, 0, skipCommit));
|
|
245
|
+
}));
|
|
246
|
+
const beforeNavigation = handler => _effect.Effect.contextWithEffect(ctx => {
|
|
247
|
+
const entry = [handler, ctx];
|
|
248
|
+
return _effect.Effect.zipRight(beforeHandlers.update(handlers => new Set([...handlers, entry])), _effect.Effect.addFinalizer(() => beforeHandlers.update(handlers => {
|
|
249
|
+
const updated = new Set(handlers);
|
|
250
|
+
updated.delete(entry);
|
|
251
|
+
return updated;
|
|
252
|
+
})));
|
|
253
|
+
});
|
|
254
|
+
const onNavigation = handler => _effect.Effect.contextWithEffect(ctx => {
|
|
255
|
+
const entry = [handler, ctx];
|
|
256
|
+
return _effect.Effect.zipRight(handlers.update(handlers => new Set([...handlers, entry])), _effect.Effect.addFinalizer(() => handlers.update(handlers => {
|
|
257
|
+
const updated = new Set(handlers);
|
|
258
|
+
updated.delete(entry);
|
|
259
|
+
return updated;
|
|
260
|
+
})));
|
|
261
|
+
});
|
|
262
|
+
const updateCurrentEntry = options => state.runUpdate((get, set) => _effect.Effect.gen(function* (_) {
|
|
263
|
+
const {
|
|
264
|
+
entries,
|
|
265
|
+
index
|
|
266
|
+
} = yield* _(get);
|
|
267
|
+
const current = entries[index];
|
|
268
|
+
const event = {
|
|
269
|
+
type: "replace",
|
|
270
|
+
from: current,
|
|
271
|
+
to: {
|
|
272
|
+
...current,
|
|
273
|
+
state: options.state
|
|
274
|
+
},
|
|
275
|
+
delta: 0,
|
|
276
|
+
info: null
|
|
277
|
+
};
|
|
278
|
+
return yield* _(runNavigationEvent(event, get, set, 0));
|
|
279
|
+
}));
|
|
280
|
+
const navigation = {
|
|
281
|
+
back,
|
|
282
|
+
base,
|
|
283
|
+
beforeNavigation,
|
|
284
|
+
canGoBack,
|
|
285
|
+
canGoForward,
|
|
286
|
+
currentEntry,
|
|
287
|
+
entries,
|
|
288
|
+
forward,
|
|
289
|
+
navigate,
|
|
290
|
+
onNavigation,
|
|
291
|
+
origin,
|
|
292
|
+
reload,
|
|
293
|
+
transition,
|
|
294
|
+
traverseTo,
|
|
295
|
+
updateCurrentEntry
|
|
296
|
+
};
|
|
297
|
+
return navigation;
|
|
298
|
+
}
|
|
299
|
+
function makeRedirectEvent(origin, redirect, from) {
|
|
300
|
+
return _effect.Effect.gen(function* (_) {
|
|
301
|
+
const url = getUrl(origin, redirect.path);
|
|
302
|
+
const to = yield* _(makeDestination(url, redirect.options?.state, origin));
|
|
303
|
+
const event = {
|
|
304
|
+
type: "replace",
|
|
305
|
+
from,
|
|
306
|
+
to,
|
|
307
|
+
delta: 0,
|
|
308
|
+
info: redirect.options?.info
|
|
309
|
+
};
|
|
310
|
+
return event;
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
function makeOrUpdateDestination(navigationState, url, state, origin) {
|
|
314
|
+
return _effect.Effect.gen(function* (_) {
|
|
315
|
+
const current = navigationState.entries[navigationState.index];
|
|
316
|
+
const isSameOriginAndPath = url.origin === current.url.origin && url.pathname === current.url.pathname;
|
|
317
|
+
if (isSameOriginAndPath) {
|
|
318
|
+
const id = yield* _(_id.makeUuid);
|
|
319
|
+
const destination = {
|
|
320
|
+
id,
|
|
321
|
+
key: current.key,
|
|
322
|
+
url,
|
|
323
|
+
state: getOriginalState(state),
|
|
324
|
+
sameDocument: url.origin === origin
|
|
325
|
+
};
|
|
326
|
+
return destination;
|
|
327
|
+
} else {
|
|
328
|
+
return yield* _(makeDestination(url, state, origin));
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
function makeDestination(url, state, origin) {
|
|
333
|
+
return _effect.Effect.gen(function* (_) {
|
|
334
|
+
if (isPatchedState(state)) {
|
|
335
|
+
const destination = {
|
|
336
|
+
id: state.id,
|
|
337
|
+
key: state.key,
|
|
338
|
+
url,
|
|
339
|
+
state: state.originalHistoryState,
|
|
340
|
+
sameDocument: url.origin === origin
|
|
341
|
+
};
|
|
342
|
+
return destination;
|
|
343
|
+
}
|
|
344
|
+
const id = yield* _(_id.makeUuid);
|
|
345
|
+
const key = yield* _(_id.makeUuid);
|
|
346
|
+
const destination = {
|
|
347
|
+
id,
|
|
348
|
+
key,
|
|
349
|
+
url,
|
|
350
|
+
state,
|
|
351
|
+
sameDocument: url.origin === origin
|
|
352
|
+
};
|
|
353
|
+
return destination;
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
function upgradeProposedDestination(proposed) {
|
|
357
|
+
return _effect.Effect.gen(function* (_) {
|
|
358
|
+
const id = yield* _(_id.makeUuid);
|
|
359
|
+
const key = yield* _(_id.makeUuid);
|
|
360
|
+
const destination = {
|
|
361
|
+
id,
|
|
362
|
+
key,
|
|
363
|
+
url: proposed.url,
|
|
364
|
+
state: proposed.state,
|
|
365
|
+
sameDocument: proposed.sameDocument
|
|
366
|
+
};
|
|
367
|
+
return destination;
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
function isPatchedState(state) {
|
|
371
|
+
if (state === null || !(typeof state === "object") || Array.isArray(state)) return false;
|
|
372
|
+
if ("id" in state && "key" in state && "originalHistoryState" in state) return true;
|
|
373
|
+
return false;
|
|
374
|
+
}
|
|
375
|
+
function getOriginalState(state) {
|
|
376
|
+
if (isPatchedState(state)) return state.originalHistoryState;
|
|
377
|
+
return state;
|
|
378
|
+
}
|
|
379
|
+
function getOriginFromUrl(url) {
|
|
380
|
+
try {
|
|
381
|
+
if (typeof url === "string") {
|
|
382
|
+
return new URL(url).origin;
|
|
383
|
+
} else {
|
|
384
|
+
return url.origin;
|
|
385
|
+
}
|
|
386
|
+
} catch {
|
|
387
|
+
return "http://localhost";
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function isDestination(proposed) {
|
|
391
|
+
return "id" in proposed && "key" in proposed;
|
|
392
|
+
}
|
|
393
|
+
function makeHandlersState() {
|
|
394
|
+
return _effect.Effect.gen(function* (_) {
|
|
395
|
+
const beforeHandlers = yield* _(RefSubject.fromEffect(_effect.Effect.sync(() => new Set())));
|
|
396
|
+
const handlers = yield* _(RefSubject.fromEffect(_effect.Effect.sync(() => new Set())));
|
|
397
|
+
return {
|
|
398
|
+
beforeHandlers,
|
|
399
|
+
handlers
|
|
400
|
+
};
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","names":["_schema","require","RefSubject","_interopRequireWildcard","_id","_effect","_Navigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","NavigationState","exports","Schema","struct","entries","array","Destination","index","number","transition","optionFromNullable","Transition","getUrl","origin","urlOrPath","URL","setupFromModelAndIntent","modelAndIntent","base","getRandomValues","newNavigationState","beforeHandlers","canGoBack","canGoForward","commit","handlers","state","map","s","currentEntry","runBeforeHandlers","event","Effect","gen","_","matches","handler","ctx","exit","provide","either","Either","isRight","match","right","Option","isSome","push","value","some","left","length","isLeft","none","runHandlers","eventHandlers","all","runNavigationEvent","beforeEvent","depth","skipCommit","current","beforeError","handleError","to","isDestination","upgradeProposedDestination","type","info","destination","slice","concat","before","after","delta","nextIndex","pipe","GetRandomValues","error","dieMessage","from","_tag","makeRedirectEvent","navigate","pathOrUrl","options","runUpdate","history","makeOrUpdateDestination","key","traverseTo","findIndex","id","makeUuid","back","forward","reload","beforeNavigation","contextWithEffect","entry","zipRight","update","Set","addFinalizer","updated","delete","onNavigation","updateCurrentEntry","navigation","redirect","url","path","makeDestination","navigationState","isSameOriginAndPath","pathname","getOriginalState","sameDocument","isPatchedState","originalHistoryState","proposed","Array","isArray","getOriginFromUrl","makeHandlersState","fromEffect","sync"],"sources":["../../../src/internal/shared.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Computed from "@typed/fx/Computed";
|
|
5
|
+
import type { Scope } from "effect";
|
|
6
|
+
import { Effect, Option } from "effect";
|
|
7
|
+
import type { BeforeNavigationEvent, CancelNavigation, Destination, NavigateOptions, RedirectError } from "./Navigation";
|
|
8
|
+
import { Navigation } from "./Navigation";
|
|
9
|
+
/**
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
export interface BlockNavigation extends Computed.Computed<never, never, Option.Option<Blocking>> {
|
|
13
|
+
readonly isBlocking: Computed.Computed<never, never, boolean>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
export interface Blocking extends BeforeNavigationEvent {
|
|
19
|
+
readonly cancel: Effect.Effect<never, never, Destination>;
|
|
20
|
+
readonly confirm: Effect.Effect<never, never, Destination>;
|
|
21
|
+
readonly redirect: (urlOrPath: string | URL, options?: NavigateOptions) => Effect.Effect<never, never, Destination>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
*/
|
|
26
|
+
export interface UseBlockNavigationParams<R = never> {
|
|
27
|
+
readonly shouldBlock?: (event: BeforeNavigationEvent) => Effect.Effect<R, RedirectError | CancelNavigation, boolean>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @since 1.0.0
|
|
31
|
+
*/
|
|
32
|
+
export declare const useBlockNavigation: <R = never>(params?: UseBlockNavigationParams<R>) => Effect.Effect<Navigation | Scope.Scope | R, never, BlockNavigation>;
|
|
33
|
+
//# sourceMappingURL=Blocking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Blocking.d.ts","sourceRoot":"","sources":["../../src/Blocking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AACnC,OAAO,EAAY,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACxH,OAAO,EAAoB,UAAU,EAAkB,MAAM,cAAc,CAAA;AAE3E;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/F,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,qBAAqB;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;CACpH;AAqBD;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,KAAK;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB,EAAE,OAAO,CAAC,CAAA;CACrH;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,0HAmC3B,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type { Effect, Layer } from "effect";
|
|
5
|
+
import type { BeforeNavigationEvent, Destination, Navigation, NavigationError } from "./Navigation";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
export declare const fromWindow: Layer.Layer<Window, never, Navigation>;
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
export interface MemoryOptions {
|
|
14
|
+
readonly entries: ReadonlyArray<Destination>;
|
|
15
|
+
readonly origin?: string | undefined;
|
|
16
|
+
readonly base?: string | undefined;
|
|
17
|
+
readonly currentIndex?: number | undefined;
|
|
18
|
+
readonly maxEntries?: number | undefined;
|
|
19
|
+
readonly commit?: Commit;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
export declare const memory: (options: MemoryOptions) => Layer.Layer<never, never, Navigation>;
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
*/
|
|
28
|
+
export interface InitialMemoryOptions {
|
|
29
|
+
readonly url: string | URL;
|
|
30
|
+
readonly origin?: string | undefined;
|
|
31
|
+
readonly base?: string | undefined;
|
|
32
|
+
readonly maxEntries?: number | undefined;
|
|
33
|
+
readonly state?: unknown;
|
|
34
|
+
readonly commit?: Commit;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
*/
|
|
39
|
+
export declare const initialMemory: (options: InitialMemoryOptions) => Layer.Layer<never, never, Navigation>;
|
|
40
|
+
/**
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
export type Commit = (to: Destination, event: BeforeNavigationEvent) => Effect.Effect<never, NavigationError, void>;
|
|
44
|
+
//# sourceMappingURL=Layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["../../src/Layer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAG3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAEnG;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAiC,CAAA;AAE/F;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAyB,CAAA;AAE9G;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CACrE,CAAA;AAE9B;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAA"}
|