@typed/navigation 0.18.0 → 0.18.1
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/.nvmrc +1 -0
- package/biome.json +39 -0
- package/dist/Blocking.d.ts +23 -0
- package/dist/Blocking.js +41 -0
- package/dist/Blocking.js.map +1 -0
- package/dist/Destination.d.ts +11 -0
- package/dist/Destination.js +10 -0
- package/dist/Destination.js.map +1 -0
- package/dist/Error.d.ts +33 -0
- package/dist/Error.js +22 -0
- package/dist/Error.js.map +1 -0
- package/dist/Event.d.ts +45 -0
- package/dist/Event.js +17 -0
- package/dist/Event.js.map +1 -0
- package/dist/Forms.d.ts +79 -0
- package/dist/Forms.js +111 -0
- package/dist/Forms.js.map +1 -0
- package/dist/Handler.d.ts +6 -0
- package/dist/Handler.js +2 -0
- package/dist/Handler.js.map +1 -0
- package/dist/{dts/Layer.d.ts → Layer.d.ts} +11 -8
- package/dist/{esm/Layer.js → Layer.js} +2 -2
- package/dist/Layer.js.map +1 -0
- package/dist/NavigateOptions.d.ts +7 -0
- package/dist/NavigateOptions.js +7 -0
- package/dist/NavigateOptions.js.map +1 -0
- package/dist/Navigation.d.ts +79 -0
- package/dist/Navigation.js +49 -0
- package/dist/Navigation.js.map +1 -0
- package/dist/NavigationType.d.ts +3 -0
- package/dist/NavigationType.js +3 -0
- package/dist/NavigationType.js.map +1 -0
- package/dist/ProposedDestination.d.ts +13 -0
- package/dist/ProposedDestination.js +4 -0
- package/dist/ProposedDestination.js.map +1 -0
- package/dist/Url.d.ts +13 -0
- package/dist/Url.js +72 -0
- package/dist/Url.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/fromWindow.d.ts +4 -0
- package/dist/{esm/internal → internal}/fromWindow.js +125 -136
- package/dist/internal/fromWindow.js.map +1 -0
- package/dist/internal/memory.d.ts +6 -0
- package/dist/internal/memory.js +59 -0
- package/dist/internal/memory.js.map +1 -0
- package/dist/{dts/internal → internal}/shared.d.ts +44 -46
- package/dist/{esm/internal → internal}/shared.js +121 -168
- package/dist/internal/shared.js.map +1 -0
- package/package.json +35 -53
- package/readme.md +243 -0
- package/src/Blocking.ts +65 -65
- package/src/Destination.ts +14 -0
- package/src/Error.ts +28 -0
- package/src/Event.ts +26 -0
- package/src/Forms.ts +216 -0
- package/src/Handler.ts +16 -0
- package/src/Layer.ts +20 -9
- package/src/NavigateOptions.ts +9 -0
- package/src/Navigation.test.ts +697 -0
- package/src/Navigation.ts +135 -472
- package/src/NavigationType.ts +5 -0
- package/src/ProposedDestination.ts +8 -0
- package/src/Url.ts +106 -0
- package/src/index.ts +12 -17
- package/src/internal/fromWindow.ts +163 -234
- package/src/internal/memory.ts +62 -49
- package/src/internal/shared.ts +218 -377
- package/tsconfig.json +30 -0
- package/Blocking/package.json +0 -6
- package/LICENSE +0 -21
- package/Layer/package.json +0 -6
- package/Navigation/package.json +0 -6
- package/README.md +0 -5
- package/dist/cjs/Blocking.js +0 -58
- package/dist/cjs/Blocking.js.map +0 -1
- package/dist/cjs/Layer.js +0 -27
- package/dist/cjs/Layer.js.map +0 -1
- package/dist/cjs/Navigation.js +0 -278
- package/dist/cjs/Navigation.js.map +0 -1
- package/dist/cjs/index.js +0 -39
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/fromWindow.js +0 -436
- package/dist/cjs/internal/fromWindow.js.map +0 -1
- package/dist/cjs/internal/memory.js +0 -72
- package/dist/cjs/internal/memory.js.map +0 -1
- package/dist/cjs/internal/shared.js +0 -525
- package/dist/cjs/internal/shared.js.map +0 -1
- package/dist/dts/Blocking.d.ts +0 -34
- package/dist/dts/Blocking.d.ts.map +0 -1
- package/dist/dts/Layer.d.ts.map +0 -1
- package/dist/dts/Navigation.d.ts +0 -451
- package/dist/dts/Navigation.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -17
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/fromWindow.d.ts +0 -12
- package/dist/dts/internal/fromWindow.d.ts.map +0 -1
- package/dist/dts/internal/memory.d.ts +0 -6
- package/dist/dts/internal/memory.d.ts.map +0 -1
- package/dist/dts/internal/shared.d.ts.map +0 -1
- package/dist/esm/Blocking.js +0 -46
- package/dist/esm/Blocking.js.map +0 -1
- package/dist/esm/Layer.js.map +0 -1
- package/dist/esm/Navigation.js +0 -238
- package/dist/esm/Navigation.js.map +0 -1
- package/dist/esm/index.js +0 -17
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/fromWindow.js.map +0 -1
- package/dist/esm/internal/memory.js +0 -56
- package/dist/esm/internal/memory.js.map +0 -1
- package/dist/esm/internal/shared.js.map +0 -1
- package/dist/esm/package.json +0 -4
|
@@ -1,525 +0,0 @@
|
|
|
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 _platform = /*#__PURE__*/require("@effect/platform");
|
|
19
|
-
var _schema = /*#__PURE__*/require("@effect/schema");
|
|
20
|
-
var RefSubject = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@typed/fx/RefSubject"));
|
|
21
|
-
var _id = /*#__PURE__*/require("@typed/id");
|
|
22
|
-
var Effect = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Effect"));
|
|
23
|
-
var Either = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Either"));
|
|
24
|
-
var Option = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("effect/Option"));
|
|
25
|
-
var _Navigation = /*#__PURE__*/require("../Navigation.js");
|
|
26
|
-
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); }
|
|
27
|
-
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 && {}.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; }
|
|
28
|
-
const NavigationState = exports.NavigationState = /*#__PURE__*/_schema.Schema.Struct({
|
|
29
|
-
entries: /*#__PURE__*/_schema.Schema.Array(_Navigation.Destination),
|
|
30
|
-
index: _schema.Schema.Number,
|
|
31
|
-
transition: /*#__PURE__*/_schema.Schema.OptionFromNullishOr(_Navigation.Transition, null)
|
|
32
|
-
});
|
|
33
|
-
const getUrl = (origin, urlOrPath) => {
|
|
34
|
-
return typeof urlOrPath === "string" ? new URL(urlOrPath, origin) : urlOrPath;
|
|
35
|
-
};
|
|
36
|
-
exports.getUrl = getUrl;
|
|
37
|
-
const REDIRECT_STATUS_CODES = /*#__PURE__*/new Set([301, 302, 303, 307, 308]);
|
|
38
|
-
function setupFromModelAndIntent(modelAndIntent, origin, base, getRandomValues, newNavigationState) {
|
|
39
|
-
const {
|
|
40
|
-
beforeHandlers,
|
|
41
|
-
canGoBack,
|
|
42
|
-
canGoForward,
|
|
43
|
-
commit,
|
|
44
|
-
formDataHandlers,
|
|
45
|
-
handlers,
|
|
46
|
-
state
|
|
47
|
-
} = modelAndIntent;
|
|
48
|
-
const entries = RefSubject.map(state, s => s.entries);
|
|
49
|
-
const currentEntry = RefSubject.map(state, s => s.entries[s.index]);
|
|
50
|
-
const transition = RefSubject.map(state, s => s.transition);
|
|
51
|
-
const runBeforeHandlers = event => Effect.gen(function* () {
|
|
52
|
-
const handlers = yield* beforeHandlers;
|
|
53
|
-
const matches = [];
|
|
54
|
-
for (const [handler, ctx] of handlers) {
|
|
55
|
-
const exit = yield* handler(event).pipe(Effect.provide(ctx), Effect.either);
|
|
56
|
-
if (Either.isRight(exit)) {
|
|
57
|
-
const match = exit.right;
|
|
58
|
-
if (Option.isSome(match)) {
|
|
59
|
-
matches.push(Effect.provide(match.value, ctx));
|
|
60
|
-
}
|
|
61
|
-
} else {
|
|
62
|
-
return Option.some(exit.left);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if (matches.length > 0) {
|
|
66
|
-
for (const match of matches) {
|
|
67
|
-
const exit = yield* Effect.either(match);
|
|
68
|
-
if (Either.isLeft(exit)) {
|
|
69
|
-
return Option.some(exit.left);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
return Option.none();
|
|
74
|
-
});
|
|
75
|
-
const runHandlers = event => Effect.gen(function* () {
|
|
76
|
-
const eventHandlers = yield* handlers;
|
|
77
|
-
const matches = [];
|
|
78
|
-
for (const [handler, ctx] of eventHandlers) {
|
|
79
|
-
const match = yield* Effect.provide(handler(event), ctx);
|
|
80
|
-
if (Option.isSome(match)) {
|
|
81
|
-
matches.push(Effect.provide(match.value, ctx));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
if (matches.length > 0) {
|
|
85
|
-
yield* Effect.all(matches, {
|
|
86
|
-
discard: true
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
const runFormDataHandlers = event => Effect.gen(function* () {
|
|
91
|
-
const handlers = yield* formDataHandlers;
|
|
92
|
-
const matches = [];
|
|
93
|
-
for (const [handler, ctx] of handlers) {
|
|
94
|
-
const exit = yield* handler(event).pipe(Effect.provide(ctx), Effect.either);
|
|
95
|
-
if (Either.isRight(exit)) {
|
|
96
|
-
const match = exit.right;
|
|
97
|
-
if (Option.isSome(match)) {
|
|
98
|
-
matches.push(Effect.provide(match.value, ctx));
|
|
99
|
-
}
|
|
100
|
-
} else {
|
|
101
|
-
return Either.left(exit.left);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (matches.length > 0) {
|
|
105
|
-
for (const match of matches) {
|
|
106
|
-
const exit = yield* Effect.either(match);
|
|
107
|
-
if (Either.isLeft(exit)) {
|
|
108
|
-
return Either.left(exit.left);
|
|
109
|
-
} else if (Option.isSome(exit.right)) {
|
|
110
|
-
return Either.right(exit.right);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
} else {
|
|
114
|
-
// Only if there are 0 matches, we'll make a request to the server ourselves
|
|
115
|
-
const response = yield* makeFormDataRequest(event, Option.getOrElse(event.action, () => event.from.url.href));
|
|
116
|
-
return Either.right(Option.some(response));
|
|
117
|
-
}
|
|
118
|
-
return Either.right(Option.none());
|
|
119
|
-
});
|
|
120
|
-
const runNavigationEvent = (beforeEvent, get, set, depth, skipCommit = false) => Effect.gen(function* () {
|
|
121
|
-
let current = yield* get;
|
|
122
|
-
current = yield* set({
|
|
123
|
-
...current,
|
|
124
|
-
transition: Option.some(beforeEvent)
|
|
125
|
-
});
|
|
126
|
-
if (!skipCommit) {
|
|
127
|
-
const beforeError = yield* runBeforeHandlers(beforeEvent);
|
|
128
|
-
if (Option.isSome(beforeError)) {
|
|
129
|
-
return yield* handleError(beforeError.value, get, set, depth);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
const to = isDestination(beforeEvent.to) ? beforeEvent.to : yield* upgradeProposedDestination(beforeEvent.to);
|
|
133
|
-
if (!skipCommit) {
|
|
134
|
-
yield* commit(to, beforeEvent);
|
|
135
|
-
}
|
|
136
|
-
if (newNavigationState) {
|
|
137
|
-
const {
|
|
138
|
-
entries,
|
|
139
|
-
index
|
|
140
|
-
} = yield* set(newNavigationState());
|
|
141
|
-
return entries[index];
|
|
142
|
-
} else {
|
|
143
|
-
const event = {
|
|
144
|
-
type: beforeEvent.type,
|
|
145
|
-
info: beforeEvent.info,
|
|
146
|
-
destination: to
|
|
147
|
-
};
|
|
148
|
-
if (beforeEvent.type === "push") {
|
|
149
|
-
const index = current.index + 1;
|
|
150
|
-
const entries = current.entries.slice(0, index).concat([to]);
|
|
151
|
-
yield* set({
|
|
152
|
-
entries,
|
|
153
|
-
index,
|
|
154
|
-
transition: Option.none()
|
|
155
|
-
});
|
|
156
|
-
} else if (beforeEvent.type === "replace") {
|
|
157
|
-
const index = current.index;
|
|
158
|
-
const before = current.entries.slice(0, index);
|
|
159
|
-
const after = current.entries.slice(index + 1);
|
|
160
|
-
const entries = [...before, to, ...after];
|
|
161
|
-
yield* set({
|
|
162
|
-
entries,
|
|
163
|
-
index,
|
|
164
|
-
transition: Option.none()
|
|
165
|
-
});
|
|
166
|
-
} else if (beforeEvent.type === "reload") {
|
|
167
|
-
yield* set({
|
|
168
|
-
...current,
|
|
169
|
-
transition: Option.none()
|
|
170
|
-
});
|
|
171
|
-
} else {
|
|
172
|
-
const {
|
|
173
|
-
delta
|
|
174
|
-
} = beforeEvent;
|
|
175
|
-
const nextIndex = current.index + delta;
|
|
176
|
-
yield* set({
|
|
177
|
-
...current,
|
|
178
|
-
index: nextIndex,
|
|
179
|
-
transition: Option.none()
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
yield* runHandlers(event);
|
|
183
|
-
}
|
|
184
|
-
return to;
|
|
185
|
-
}).pipe(_id.GetRandomValues.provide(getRandomValues));
|
|
186
|
-
const handleError = (error, get, set, depth) => Effect.gen(function* () {
|
|
187
|
-
if (depth >= 25) {
|
|
188
|
-
return yield* Effect.dieMessage(`Redirect loop detected.`);
|
|
189
|
-
}
|
|
190
|
-
const {
|
|
191
|
-
entries,
|
|
192
|
-
index
|
|
193
|
-
} = yield* get;
|
|
194
|
-
const from = entries[index];
|
|
195
|
-
if (error._tag === "CancelNavigation") {
|
|
196
|
-
yield* set({
|
|
197
|
-
entries,
|
|
198
|
-
index,
|
|
199
|
-
transition: Option.none()
|
|
200
|
-
});
|
|
201
|
-
return from;
|
|
202
|
-
} else {
|
|
203
|
-
const event = yield* makeRedirectEvent(origin, error, from);
|
|
204
|
-
return yield* runNavigationEvent(event, get, set, depth + 1);
|
|
205
|
-
}
|
|
206
|
-
}).pipe(_id.GetRandomValues.provide(getRandomValues));
|
|
207
|
-
const navigate = (pathOrUrl, options, skipCommit = false) => state.runUpdates(({
|
|
208
|
-
get,
|
|
209
|
-
set
|
|
210
|
-
}) => Effect.gen(function* () {
|
|
211
|
-
const state = yield* get;
|
|
212
|
-
const from = state.entries[state.index];
|
|
213
|
-
const history = options?.history ?? "auto";
|
|
214
|
-
const to = yield* makeOrUpdateDestination(state, getUrl(origin, pathOrUrl), options?.state, origin).pipe(_id.GetRandomValues.provide(getRandomValues));
|
|
215
|
-
const type = history === "auto" ? from.key === to.key ? "replace" : "push" : history;
|
|
216
|
-
const event = {
|
|
217
|
-
type,
|
|
218
|
-
from,
|
|
219
|
-
to,
|
|
220
|
-
delta: type === "replace" ? 0 : 1,
|
|
221
|
-
info: options?.info
|
|
222
|
-
};
|
|
223
|
-
return yield* runNavigationEvent(event, get, set, 0, skipCommit);
|
|
224
|
-
}));
|
|
225
|
-
const traverseTo = (key, options, skipCommit = false) => state.runUpdates(({
|
|
226
|
-
get,
|
|
227
|
-
set
|
|
228
|
-
}) => Effect.gen(function* () {
|
|
229
|
-
const state = yield* get;
|
|
230
|
-
const {
|
|
231
|
-
entries,
|
|
232
|
-
index
|
|
233
|
-
} = state;
|
|
234
|
-
const from = entries[index];
|
|
235
|
-
const nextIndex = entries.findIndex(e => e.key === key);
|
|
236
|
-
if (nextIndex === -1) return from;
|
|
237
|
-
const id = yield* _id.makeUuid.pipe(_id.GetRandomValues.provide(getRandomValues));
|
|
238
|
-
const to = {
|
|
239
|
-
...entries[nextIndex],
|
|
240
|
-
id
|
|
241
|
-
};
|
|
242
|
-
const delta = nextIndex - index;
|
|
243
|
-
const event = {
|
|
244
|
-
type: "traverse",
|
|
245
|
-
from,
|
|
246
|
-
to,
|
|
247
|
-
delta,
|
|
248
|
-
info: options?.info
|
|
249
|
-
};
|
|
250
|
-
return yield* runNavigationEvent(event, get, set, 0, skipCommit);
|
|
251
|
-
}));
|
|
252
|
-
const back = (options, skipCommit = false) => Effect.gen(function* () {
|
|
253
|
-
const {
|
|
254
|
-
entries,
|
|
255
|
-
index
|
|
256
|
-
} = yield* state;
|
|
257
|
-
if (index === 0) return entries[index];
|
|
258
|
-
const {
|
|
259
|
-
key
|
|
260
|
-
} = entries[index - 1];
|
|
261
|
-
return yield* traverseTo(key, options, skipCommit);
|
|
262
|
-
});
|
|
263
|
-
const forward = (options, skipCommit = false) => Effect.gen(function* () {
|
|
264
|
-
const {
|
|
265
|
-
entries,
|
|
266
|
-
index
|
|
267
|
-
} = yield* state;
|
|
268
|
-
if (index === entries.length - 1) return entries[index];
|
|
269
|
-
const {
|
|
270
|
-
key
|
|
271
|
-
} = entries[index + 1];
|
|
272
|
-
return yield* traverseTo(key, options, skipCommit);
|
|
273
|
-
});
|
|
274
|
-
const reload = (options, skipCommit = false) => state.runUpdates(({
|
|
275
|
-
get,
|
|
276
|
-
set
|
|
277
|
-
}) => Effect.gen(function* () {
|
|
278
|
-
const {
|
|
279
|
-
entries,
|
|
280
|
-
index
|
|
281
|
-
} = yield* state;
|
|
282
|
-
const current = entries[index];
|
|
283
|
-
const event = {
|
|
284
|
-
type: "reload",
|
|
285
|
-
from: current,
|
|
286
|
-
to: current,
|
|
287
|
-
delta: 0,
|
|
288
|
-
info: options?.info
|
|
289
|
-
};
|
|
290
|
-
return yield* runNavigationEvent(event, get, set, 0, skipCommit);
|
|
291
|
-
}));
|
|
292
|
-
const beforeNavigation = handler => Effect.contextWithEffect(ctx => {
|
|
293
|
-
const entry = [handler, ctx];
|
|
294
|
-
return Effect.zipRight(RefSubject.update(beforeHandlers, handlers => new Set([...handlers, entry])), Effect.addFinalizer(() => RefSubject.update(beforeHandlers, handlers => {
|
|
295
|
-
const updated = new Set(handlers);
|
|
296
|
-
updated.delete(entry);
|
|
297
|
-
return updated;
|
|
298
|
-
})));
|
|
299
|
-
});
|
|
300
|
-
const onNavigation = handler => Effect.contextWithEffect(ctx => {
|
|
301
|
-
const entry = [handler, ctx];
|
|
302
|
-
return Effect.zipRight(RefSubject.update(handlers, handlers => new Set([...handlers, entry])), Effect.addFinalizer(() => RefSubject.update(handlers, handlers => {
|
|
303
|
-
const updated = new Set(handlers);
|
|
304
|
-
updated.delete(entry);
|
|
305
|
-
return updated;
|
|
306
|
-
})));
|
|
307
|
-
});
|
|
308
|
-
const updateCurrentEntry = options => state.runUpdates(({
|
|
309
|
-
get,
|
|
310
|
-
set
|
|
311
|
-
}) => Effect.gen(function* () {
|
|
312
|
-
const {
|
|
313
|
-
entries,
|
|
314
|
-
index
|
|
315
|
-
} = yield* get;
|
|
316
|
-
const current = entries[index];
|
|
317
|
-
const event = {
|
|
318
|
-
type: "replace",
|
|
319
|
-
from: current,
|
|
320
|
-
to: {
|
|
321
|
-
...current,
|
|
322
|
-
state: options.state
|
|
323
|
-
},
|
|
324
|
-
delta: 0,
|
|
325
|
-
info: null
|
|
326
|
-
};
|
|
327
|
-
return yield* runNavigationEvent(event, get, set, 0);
|
|
328
|
-
}));
|
|
329
|
-
const submit = (data, input) => state.runUpdates(({
|
|
330
|
-
get,
|
|
331
|
-
set
|
|
332
|
-
}) => Effect.gen(function* () {
|
|
333
|
-
const {
|
|
334
|
-
entries,
|
|
335
|
-
index
|
|
336
|
-
} = yield* get;
|
|
337
|
-
const from = entries[index];
|
|
338
|
-
const event = {
|
|
339
|
-
from,
|
|
340
|
-
data,
|
|
341
|
-
name: Option.fromNullable(input?.name),
|
|
342
|
-
action: Option.fromNullable(input?.action),
|
|
343
|
-
method: Option.fromNullable(input?.method),
|
|
344
|
-
encoding: Option.fromNullable(input?.encoding)
|
|
345
|
-
};
|
|
346
|
-
const either = yield* runFormDataHandlers(event);
|
|
347
|
-
if (Either.isLeft(either)) {
|
|
348
|
-
yield* handleError(either.left, get, set, 0);
|
|
349
|
-
return Option.none();
|
|
350
|
-
} else {
|
|
351
|
-
if (Option.isNone(either.right)) {
|
|
352
|
-
return either.right;
|
|
353
|
-
}
|
|
354
|
-
const response = either.right.value;
|
|
355
|
-
// If it is a redirect
|
|
356
|
-
if (REDIRECT_STATUS_CODES.has(response.status)) {
|
|
357
|
-
const location = _platform.Headers.get(response.headers, "location");
|
|
358
|
-
// And we have a location header
|
|
359
|
-
if (Option.isSome(location)) {
|
|
360
|
-
// Then we navigate to that location
|
|
361
|
-
yield* navigate(location.value, {
|
|
362
|
-
history: "replace"
|
|
363
|
-
});
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
return Option.some(response);
|
|
367
|
-
}
|
|
368
|
-
}));
|
|
369
|
-
const onFormData = handler => Effect.contextWithEffect(ctx => {
|
|
370
|
-
const entry = [handler, ctx];
|
|
371
|
-
return Effect.zipRight(RefSubject.update(formDataHandlers, handlers => new Set([...handlers, entry])), Effect.addFinalizer(() => RefSubject.update(formDataHandlers, handlers => {
|
|
372
|
-
const updated = new Set(handlers);
|
|
373
|
-
updated.delete(entry);
|
|
374
|
-
return updated;
|
|
375
|
-
})));
|
|
376
|
-
});
|
|
377
|
-
const navigation = {
|
|
378
|
-
back,
|
|
379
|
-
base,
|
|
380
|
-
beforeNavigation,
|
|
381
|
-
canGoBack,
|
|
382
|
-
canGoForward,
|
|
383
|
-
currentEntry,
|
|
384
|
-
entries,
|
|
385
|
-
forward,
|
|
386
|
-
navigate,
|
|
387
|
-
onNavigation,
|
|
388
|
-
origin,
|
|
389
|
-
reload,
|
|
390
|
-
transition,
|
|
391
|
-
traverseTo,
|
|
392
|
-
updateCurrentEntry,
|
|
393
|
-
submit,
|
|
394
|
-
onFormData
|
|
395
|
-
};
|
|
396
|
-
return navigation;
|
|
397
|
-
}
|
|
398
|
-
function makeRedirectEvent(origin, redirect, from) {
|
|
399
|
-
return Effect.gen(function* () {
|
|
400
|
-
const url = getUrl(origin, redirect.path);
|
|
401
|
-
const to = yield* makeDestination(url, redirect.options?.state, origin);
|
|
402
|
-
const event = {
|
|
403
|
-
type: "replace",
|
|
404
|
-
from,
|
|
405
|
-
to,
|
|
406
|
-
delta: 0,
|
|
407
|
-
info: redirect.options?.info
|
|
408
|
-
};
|
|
409
|
-
return event;
|
|
410
|
-
});
|
|
411
|
-
}
|
|
412
|
-
function makeOrUpdateDestination(navigationState, url, state, origin) {
|
|
413
|
-
return Effect.gen(function* () {
|
|
414
|
-
const current = navigationState.entries[navigationState.index];
|
|
415
|
-
const isSameOriginAndPath = url.origin === current.url.origin && url.pathname === current.url.pathname;
|
|
416
|
-
if (isSameOriginAndPath) {
|
|
417
|
-
const id = yield* _id.makeUuid;
|
|
418
|
-
const destination = {
|
|
419
|
-
id,
|
|
420
|
-
key: current.key,
|
|
421
|
-
url,
|
|
422
|
-
state: getOriginalState(state),
|
|
423
|
-
sameDocument: url.origin === origin
|
|
424
|
-
};
|
|
425
|
-
return destination;
|
|
426
|
-
} else {
|
|
427
|
-
return yield* makeDestination(url, state, origin);
|
|
428
|
-
}
|
|
429
|
-
});
|
|
430
|
-
}
|
|
431
|
-
function makeDestination(url, state, origin) {
|
|
432
|
-
return Effect.gen(function* () {
|
|
433
|
-
if (isPatchedState(state)) {
|
|
434
|
-
const destination = {
|
|
435
|
-
id: state.__typed__navigation__id__,
|
|
436
|
-
key: state.__typed__navigation__key__,
|
|
437
|
-
url,
|
|
438
|
-
state: state.__typed__navigation__state__,
|
|
439
|
-
sameDocument: url.origin === origin
|
|
440
|
-
};
|
|
441
|
-
return destination;
|
|
442
|
-
}
|
|
443
|
-
const id = yield* _id.makeUuid;
|
|
444
|
-
const key = yield* _id.makeUuid;
|
|
445
|
-
const destination = {
|
|
446
|
-
id,
|
|
447
|
-
key,
|
|
448
|
-
url,
|
|
449
|
-
state,
|
|
450
|
-
sameDocument: url.origin === origin
|
|
451
|
-
};
|
|
452
|
-
return destination;
|
|
453
|
-
});
|
|
454
|
-
}
|
|
455
|
-
function upgradeProposedDestination(proposed) {
|
|
456
|
-
return Effect.gen(function* () {
|
|
457
|
-
const id = yield* _id.makeUuid;
|
|
458
|
-
const key = yield* _id.makeUuid;
|
|
459
|
-
const destination = {
|
|
460
|
-
id,
|
|
461
|
-
key,
|
|
462
|
-
url: proposed.url,
|
|
463
|
-
state: proposed.state,
|
|
464
|
-
sameDocument: proposed.sameDocument
|
|
465
|
-
};
|
|
466
|
-
return destination;
|
|
467
|
-
});
|
|
468
|
-
}
|
|
469
|
-
function isPatchedState(state) {
|
|
470
|
-
if (state === null || !(typeof state === "object") || Array.isArray(state)) {
|
|
471
|
-
return false;
|
|
472
|
-
}
|
|
473
|
-
if ("__typed__navigation__id__" in state && "__typed__navigation__key__" in state) {
|
|
474
|
-
return true;
|
|
475
|
-
}
|
|
476
|
-
return false;
|
|
477
|
-
}
|
|
478
|
-
function getOriginalState(state) {
|
|
479
|
-
if (isPatchedState(state)) return state.__typed__navigation__state__;
|
|
480
|
-
return state;
|
|
481
|
-
}
|
|
482
|
-
function getOriginFromUrl(url) {
|
|
483
|
-
try {
|
|
484
|
-
if (typeof url === "string") {
|
|
485
|
-
return new URL(url).origin;
|
|
486
|
-
} else {
|
|
487
|
-
return url.origin;
|
|
488
|
-
}
|
|
489
|
-
} catch {
|
|
490
|
-
return "http://localhost";
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
function isDestination(proposed) {
|
|
494
|
-
return "id" in proposed && "key" in proposed;
|
|
495
|
-
}
|
|
496
|
-
const strictEqual = (a, b) => a === b;
|
|
497
|
-
function makeHandlersState() {
|
|
498
|
-
return Effect.gen(function* () {
|
|
499
|
-
const beforeHandlers = yield* RefSubject.fromEffect(Effect.sync(() => new Set()), {
|
|
500
|
-
eq: strictEqual
|
|
501
|
-
});
|
|
502
|
-
const handlers = yield* RefSubject.fromEffect(Effect.sync(() => new Set()), {
|
|
503
|
-
eq: strictEqual
|
|
504
|
-
});
|
|
505
|
-
const formDataHandlers = yield* RefSubject.fromEffect(Effect.sync(() => new Set()), {
|
|
506
|
-
eq: strictEqual
|
|
507
|
-
});
|
|
508
|
-
return {
|
|
509
|
-
beforeHandlers,
|
|
510
|
-
handlers,
|
|
511
|
-
formDataHandlers
|
|
512
|
-
};
|
|
513
|
-
});
|
|
514
|
-
}
|
|
515
|
-
function makeFormDataRequest(event, url) {
|
|
516
|
-
const headers = new globalThis.Headers();
|
|
517
|
-
if (Option.isSome(event.encoding)) {
|
|
518
|
-
headers.set("Content-Type", event.encoding.value);
|
|
519
|
-
}
|
|
520
|
-
const method = Option.getOrElse(event.method, () => "POST");
|
|
521
|
-
return Effect.flatMap(_platform.HttpClient.HttpClient, client => client.execute(_platform.HttpClientRequest.make(method)(url, {
|
|
522
|
-
headers: _platform.Headers.fromInput(headers)
|
|
523
|
-
}).pipe(_platform.HttpClientRequest.bodyFormData(event.data))));
|
|
524
|
-
}
|
|
525
|
-
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","names":["_platform","require","_schema","RefSubject","_interopRequireWildcard","_id","Effect","Either","Option","_Navigation","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NavigationState","exports","Schema","Struct","entries","Array","Destination","index","Number","transition","OptionFromNullishOr","Transition","getUrl","origin","urlOrPath","URL","REDIRECT_STATUS_CODES","Set","setupFromModelAndIntent","modelAndIntent","base","getRandomValues","newNavigationState","beforeHandlers","canGoBack","canGoForward","commit","formDataHandlers","handlers","state","map","s","currentEntry","runBeforeHandlers","event","gen","matches","handler","ctx","exit","pipe","provide","either","isRight","match","right","isSome","push","value","some","left","length","isLeft","none","runHandlers","eventHandlers","all","discard","runFormDataHandlers","response","makeFormDataRequest","getOrElse","action","from","url","href","runNavigationEvent","beforeEvent","depth","skipCommit","current","beforeError","handleError","to","isDestination","upgradeProposedDestination","type","info","destination","slice","concat","before","after","delta","nextIndex","GetRandomValues","error","dieMessage","_tag","makeRedirectEvent","navigate","pathOrUrl","options","runUpdates","history","makeOrUpdateDestination","key","traverseTo","findIndex","id","makeUuid","back","forward","reload","beforeNavigation","contextWithEffect","entry","zipRight","update","addFinalizer","updated","delete","onNavigation","updateCurrentEntry","submit","data","input","name","fromNullable","method","encoding","isNone","status","location","Headers","headers","onFormData","navigation","redirect","path","makeDestination","navigationState","isSameOriginAndPath","pathname","getOriginalState","sameDocument","isPatchedState","__typed__navigation__id__","__typed__navigation__key__","__typed__navigation__state__","proposed","isArray","getOriginFromUrl","strictEqual","b","makeHandlersState","fromEffect","sync","eq","globalThis","flatMap","HttpClient","client","execute","HttpClientRequest","make","fromInput","bodyFormData"],"sources":["../../../src/internal/shared.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/dts/Blocking.d.ts
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 1.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as RefSubject from "@typed/fx/RefSubject";
|
|
5
|
-
import * as Effect from "effect/Effect";
|
|
6
|
-
import * as Option from "effect/Option";
|
|
7
|
-
import type * as Scope from "effect/Scope";
|
|
8
|
-
import type { BeforeNavigationEvent, CancelNavigation, Destination, NavigateOptions, RedirectError } from "./Navigation.js";
|
|
9
|
-
import { Navigation } from "./Navigation.js";
|
|
10
|
-
/**
|
|
11
|
-
* @since 1.0.0
|
|
12
|
-
*/
|
|
13
|
-
export interface BlockNavigation extends RefSubject.Computed<Option.Option<Blocking>> {
|
|
14
|
-
readonly isBlocking: RefSubject.Computed<boolean>;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* @since 1.0.0
|
|
18
|
-
*/
|
|
19
|
-
export interface Blocking extends BeforeNavigationEvent {
|
|
20
|
-
readonly cancel: Effect.Effect<Destination>;
|
|
21
|
-
readonly confirm: Effect.Effect<Destination>;
|
|
22
|
-
readonly redirect: (urlOrPath: string | URL, options?: NavigateOptions) => Effect.Effect<Destination>;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* @since 1.0.0
|
|
26
|
-
*/
|
|
27
|
-
export interface UseBlockNavigationParams<R = never> {
|
|
28
|
-
readonly shouldBlock?: (event: BeforeNavigationEvent) => Effect.Effect<boolean, RedirectError | CancelNavigation, R>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @since 1.0.0
|
|
32
|
-
*/
|
|
33
|
-
export declare const useBlockNavigation: <R = never>(params?: UseBlockNavigationParams<R>) => Effect.Effect<BlockNavigation, never, Navigation | R | Scope.Scope>;
|
|
34
|
-
//# sourceMappingURL=Blocking.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Blocking.d.ts","sourceRoot":"","sources":["../../src/Blocking.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAIlD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAoB,UAAU,EAAkB,MAAM,iBAAiB,CAAA;AAE9E;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,qBAAqB;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IAC5C,QAAQ,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;CACtG;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,OAAO,EAAE,aAAa,GAAG,gBAAgB,EAAE,CAAC,CAAC,CAAA;CACrH;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,CAAC,mBAC1B,wBAAwB,CAAC,CAAC,CAAC,KAClC,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAkCjE,CAAA"}
|
package/dist/dts/Layer.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["../../src/Layer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtG;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,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,UAAU,CAAyB,CAAA;AAEhG;;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,UAAU,CAAgC,CAAA;AAErH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA"}
|