@typed/navigation 0.17.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.
Files changed (115) hide show
  1. package/.nvmrc +1 -0
  2. package/biome.json +39 -0
  3. package/dist/Blocking.d.ts +23 -0
  4. package/dist/Blocking.js +41 -0
  5. package/dist/Blocking.js.map +1 -0
  6. package/dist/Destination.d.ts +11 -0
  7. package/dist/Destination.js +10 -0
  8. package/dist/Destination.js.map +1 -0
  9. package/dist/Error.d.ts +33 -0
  10. package/dist/Error.js +22 -0
  11. package/dist/Error.js.map +1 -0
  12. package/dist/Event.d.ts +45 -0
  13. package/dist/Event.js +17 -0
  14. package/dist/Event.js.map +1 -0
  15. package/dist/Forms.d.ts +79 -0
  16. package/dist/Forms.js +111 -0
  17. package/dist/Forms.js.map +1 -0
  18. package/dist/Handler.d.ts +6 -0
  19. package/dist/Handler.js +2 -0
  20. package/dist/Handler.js.map +1 -0
  21. package/dist/{dts/Layer.d.ts → Layer.d.ts} +11 -8
  22. package/dist/{esm/Layer.js → Layer.js} +2 -2
  23. package/dist/Layer.js.map +1 -0
  24. package/dist/NavigateOptions.d.ts +7 -0
  25. package/dist/NavigateOptions.js +7 -0
  26. package/dist/NavigateOptions.js.map +1 -0
  27. package/dist/Navigation.d.ts +79 -0
  28. package/dist/Navigation.js +49 -0
  29. package/dist/Navigation.js.map +1 -0
  30. package/dist/NavigationType.d.ts +3 -0
  31. package/dist/NavigationType.js +3 -0
  32. package/dist/NavigationType.js.map +1 -0
  33. package/dist/ProposedDestination.d.ts +13 -0
  34. package/dist/ProposedDestination.js +4 -0
  35. package/dist/ProposedDestination.js.map +1 -0
  36. package/dist/Url.d.ts +13 -0
  37. package/dist/Url.js +72 -0
  38. package/dist/Url.js.map +1 -0
  39. package/dist/index.d.ts +12 -0
  40. package/dist/index.js +13 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/internal/fromWindow.d.ts +4 -0
  43. package/dist/internal/fromWindow.js +358 -0
  44. package/dist/internal/fromWindow.js.map +1 -0
  45. package/dist/internal/memory.d.ts +6 -0
  46. package/dist/internal/memory.js +59 -0
  47. package/dist/internal/memory.js.map +1 -0
  48. package/dist/internal/shared.d.ts +109 -0
  49. package/dist/{esm/internal → internal}/shared.js +134 -165
  50. package/dist/internal/shared.js.map +1 -0
  51. package/package.json +35 -52
  52. package/readme.md +243 -0
  53. package/src/Blocking.ts +65 -65
  54. package/src/Destination.ts +14 -0
  55. package/src/Error.ts +28 -0
  56. package/src/Event.ts +26 -0
  57. package/src/Forms.ts +216 -0
  58. package/src/Handler.ts +16 -0
  59. package/src/Layer.ts +20 -9
  60. package/src/NavigateOptions.ts +9 -0
  61. package/src/Navigation.test.ts +697 -0
  62. package/src/Navigation.ts +133 -468
  63. package/src/NavigationType.ts +5 -0
  64. package/src/ProposedDestination.ts +8 -0
  65. package/src/Url.ts +106 -0
  66. package/src/index.ts +12 -17
  67. package/src/internal/fromWindow.ts +250 -180
  68. package/src/internal/memory.ts +62 -49
  69. package/src/internal/shared.ts +238 -305
  70. package/tsconfig.json +30 -0
  71. package/Blocking/package.json +0 -6
  72. package/LICENSE +0 -21
  73. package/Layer/package.json +0 -6
  74. package/Navigation/package.json +0 -6
  75. package/README.md +0 -5
  76. package/dist/cjs/Blocking.js +0 -58
  77. package/dist/cjs/Blocking.js.map +0 -1
  78. package/dist/cjs/Layer.js +0 -27
  79. package/dist/cjs/Layer.js.map +0 -1
  80. package/dist/cjs/Navigation.js +0 -275
  81. package/dist/cjs/Navigation.js.map +0 -1
  82. package/dist/cjs/index.js +0 -39
  83. package/dist/cjs/index.js.map +0 -1
  84. package/dist/cjs/internal/fromWindow.js +0 -421
  85. package/dist/cjs/internal/fromWindow.js.map +0 -1
  86. package/dist/cjs/internal/memory.js +0 -72
  87. package/dist/cjs/internal/memory.js.map +0 -1
  88. package/dist/cjs/internal/shared.js +0 -522
  89. package/dist/cjs/internal/shared.js.map +0 -1
  90. package/dist/dts/Blocking.d.ts +0 -34
  91. package/dist/dts/Blocking.d.ts.map +0 -1
  92. package/dist/dts/Layer.d.ts.map +0 -1
  93. package/dist/dts/Navigation.d.ts +0 -462
  94. package/dist/dts/Navigation.d.ts.map +0 -1
  95. package/dist/dts/index.d.ts +0 -17
  96. package/dist/dts/index.d.ts.map +0 -1
  97. package/dist/dts/internal/fromWindow.d.ts +0 -12
  98. package/dist/dts/internal/fromWindow.d.ts.map +0 -1
  99. package/dist/dts/internal/memory.d.ts +0 -6
  100. package/dist/dts/internal/memory.d.ts.map +0 -1
  101. package/dist/dts/internal/shared.d.ts +0 -114
  102. package/dist/dts/internal/shared.d.ts.map +0 -1
  103. package/dist/esm/Blocking.js +0 -46
  104. package/dist/esm/Blocking.js.map +0 -1
  105. package/dist/esm/Layer.js.map +0 -1
  106. package/dist/esm/Navigation.js +0 -237
  107. package/dist/esm/Navigation.js.map +0 -1
  108. package/dist/esm/index.js +0 -17
  109. package/dist/esm/index.js.map +0 -1
  110. package/dist/esm/internal/fromWindow.js +0 -310
  111. package/dist/esm/internal/fromWindow.js.map +0 -1
  112. package/dist/esm/internal/memory.js +0 -56
  113. package/dist/esm/internal/memory.js.map +0 -1
  114. package/dist/esm/internal/shared.js.map +0 -1
  115. package/dist/esm/package.json +0 -4
@@ -1,421 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fromWindow = void 0;
7
- var Equivalence = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Equivalence"));
8
- var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/context"));
9
- var _Window = /*#__PURE__*/require("@typed/dom/Window");
10
- var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/fx/RefSubject"));
11
- var _id = /*#__PURE__*/require("@typed/id");
12
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
13
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
14
- var Runtime = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Runtime"));
15
- var Scope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Scope"));
16
- var Schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Schema"));
17
- var Exit = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Exit"));
18
- var _Navigation = /*#__PURE__*/require("../Navigation.js");
19
- var _shared = /*#__PURE__*/require("./shared.js");
20
- 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); }
21
- 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; }
22
- const fromWindow = exports.fromWindow = /*#__PURE__*/_Navigation.Navigation.scoped( /*#__PURE__*/_Window.Window.withEffect(window => {
23
- const getRandomValues = length => Effect.sync(() => window.crypto.getRandomValues(new Uint8Array(length)));
24
- return Effect.gen(function* () {
25
- const {
26
- run,
27
- runPromise
28
- } = yield* scopedRuntime();
29
- const hasNativeNavigation = !!window.navigation;
30
- const modelAndIntent = yield* hasNativeNavigation ? setupWithNavigation(window.navigation, runPromise) : setupWithHistory(window, event => run(handleHistoryEvent(event)));
31
- const navigation = (0, _shared.setupFromModelAndIntent)(modelAndIntent, window.location.origin, getBaseHref(window), getRandomValues, hasNativeNavigation ? () => getNavigationState(window.navigation) : undefined);
32
- return navigation;
33
- function handleHistoryEvent(event) {
34
- return Effect.gen(function* () {
35
- if (event._tag === "PushState") {
36
- return yield* navigation.navigate(event.url, {}, event.skipCommit);
37
- } else if (event._tag === "ReplaceState") {
38
- if (Option.isSome(event.url)) {
39
- return yield* navigation.navigate(event.url.value, {
40
- history: "replace",
41
- state: event.state
42
- }, event.skipCommit);
43
- } else {
44
- return yield* navigation.updateCurrentEntry(event);
45
- }
46
- } else if (event._tag === "Traverse") {
47
- const {
48
- entries,
49
- index
50
- } = yield* modelAndIntent.state;
51
- const toIndex = Math.min(Math.max(0, index + event.delta), entries.length - 1);
52
- const to = entries[toIndex];
53
- return yield* navigation.traverseTo(to.key, {}, event.skipCommit);
54
- } else {
55
- yield* navigation.traverseTo(event.key, {}, event.skipCommit);
56
- return yield* navigation.updateCurrentEntry({
57
- state: event.state
58
- });
59
- }
60
- });
61
- }
62
- }).pipe(_id.GetRandomValues.provide(getRandomValues));
63
- }));
64
- function getBaseHref(window) {
65
- const base = window.document.querySelector("base");
66
- return base ? base.href : "/";
67
- }
68
- const getNavigationState = navigation => {
69
- const entries = navigation.entries().map(nativeEntryToDestination);
70
- const {
71
- index
72
- } = navigation.currentEntry;
73
- return {
74
- entries,
75
- index,
76
- transition: Option.none()
77
- };
78
- };
79
- function setupWithNavigation(navigation, runPromise) {
80
- return Effect.gen(function* () {
81
- const state = yield* RefSubject.fromEffect(Effect.sync(() => getNavigationState(navigation)), {
82
- eq: Equivalence.make(Schema.typeSchema(Schema.typeSchema(_shared.NavigationState)))
83
- });
84
- const canGoBack = RefSubject.map(state, s => s.index > 0);
85
- const canGoForward = RefSubject.map(state, s => s.index < s.entries.length - 1);
86
- const {
87
- beforeHandlers,
88
- formDataHandlers,
89
- handlers
90
- } = yield* (0, _shared.makeHandlersState)();
91
- const commit = (to, event) => Effect.gen(function* (_) {
92
- const {
93
- key,
94
- state,
95
- url
96
- } = to;
97
- const {
98
- info,
99
- type
100
- } = event;
101
- if (type === "push" || type === "replace") {
102
- yield* _(Effect.promise(() => navigation.navigate(url.toString(), {
103
- history: type,
104
- state,
105
- info
106
- }).committed), Effect.catchAllDefect(error => Effect.fail(new _Navigation.NavigationError({
107
- error
108
- }))));
109
- } else if (event.type === "reload") {
110
- yield* _(Effect.promise(() => navigation.reload({
111
- state,
112
- info
113
- }).committed), Effect.catchAllDefect(error => Effect.fail(new _Navigation.NavigationError({
114
- error
115
- }))));
116
- } else {
117
- yield* _(Effect.promise(() => navigation.traverseTo(key, {
118
- info
119
- }).committed), Effect.catchAllDefect(error => Effect.fail(new _Navigation.NavigationError({
120
- error
121
- }))));
122
- }
123
- });
124
- const runHandlers = native => Effect.gen(function* () {
125
- const eventHandlers = yield* handlers;
126
- const matches = [];
127
- const event = {
128
- type: native.navigationType,
129
- destination: nativeEntryToDestination(navigation.currentEntry),
130
- info: native.info
131
- };
132
- for (const [handler, ctx] of eventHandlers) {
133
- const match = yield* Effect.provide(handler(event), ctx);
134
- if (Option.isSome(match)) {
135
- matches.push(Effect.provide(match.value, ctx));
136
- }
137
- }
138
- if (matches.length > 0) {
139
- yield* Effect.all(matches);
140
- }
141
- });
142
- navigation.addEventListener("navigate", ev => {
143
- if (shouldNotIntercept(ev)) return;
144
- ev.intercept({
145
- handler: () => runPromise(runHandlers(ev))
146
- });
147
- });
148
- return {
149
- state,
150
- canGoBack,
151
- canGoForward,
152
- beforeHandlers,
153
- handlers,
154
- formDataHandlers,
155
- commit
156
- };
157
- });
158
- }
159
- function nativeEntryToDestination(entry) {
160
- return {
161
- id: (0, _id.Uuid)(entry.id),
162
- key: (0, _id.Uuid)(entry.key),
163
- url: new URL(entry.url),
164
- state: entry.getState(),
165
- sameDocument: entry.sameDocument
166
- };
167
- }
168
- function shouldNotIntercept(navigationEvent) {
169
- return !navigationEvent.canIntercept ||
170
- // If this is just a hashChange,
171
- // just let the browser handle scrolling to the content.
172
- navigationEvent.hashChange ||
173
- // If this is a download,
174
- // let the browser perform the download.
175
- !!navigationEvent.downloadRequest ||
176
- // If this is a form submission,
177
- // let that go to the server.
178
- !!navigationEvent.formData;
179
- }
180
- function setupWithHistory(window, onEvent) {
181
- return Effect.gen(function* () {
182
- const {
183
- location
184
- } = window;
185
- const {
186
- original: history,
187
- unpatch
188
- } = patchHistory(window, onEvent);
189
- yield* Effect.addFinalizer(() => unpatch);
190
- const state = yield* RefSubject.fromEffect(Effect.suspend(() => Effect.map((0, _shared.makeDestination)(new URL(location.href), history.state, location.origin), destination => ({
191
- entries: [destination],
192
- index: 0,
193
- transition: Option.none()
194
- }))), {
195
- eq: Equivalence.make(Schema.typeSchema(_shared.NavigationState))
196
- });
197
- const canGoBack = RefSubject.map(state, s => s.index > 0);
198
- const canGoForward = RefSubject.map(state, s => s.index < s.entries.length - 1);
199
- const {
200
- beforeHandlers,
201
- formDataHandlers,
202
- handlers
203
- } = yield* (0, _shared.makeHandlersState)();
204
- const commit = ({
205
- id,
206
- key,
207
- state,
208
- url
209
- }, event) => Effect.sync(() => {
210
- const {
211
- type
212
- } = event;
213
- if (type === "push") {
214
- history.pushState({
215
- id,
216
- key,
217
- originalHistoryState: state
218
- }, "", url);
219
- } else if (type === "replace") {
220
- history.replaceState({
221
- id,
222
- key,
223
- originalHistoryState: state
224
- }, "", url);
225
- } else if (event.type === "reload") {
226
- location.reload();
227
- } else {
228
- history.go(event.delta);
229
- }
230
- });
231
- return {
232
- state,
233
- canGoBack,
234
- canGoForward,
235
- beforeHandlers,
236
- handlers,
237
- formDataHandlers,
238
- commit
239
- };
240
- });
241
- }
242
- function patchHistory(window, onEvent) {
243
- const {
244
- history,
245
- location
246
- } = window;
247
- const stateDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(history), "state");
248
- const methods = {
249
- pushState: history.pushState.bind(history),
250
- replaceState: history.replaceState.bind(history),
251
- go: history.go.bind(history),
252
- back: history.back.bind(history),
253
- forward: history.forward.bind(history)
254
- };
255
- const getState = stateDescriptor?.get?.bind(history);
256
- const original = {
257
- get length() {
258
- return history.length;
259
- },
260
- get scrollRestoration() {
261
- return history.scrollRestoration;
262
- },
263
- set scrollRestoration(mode) {
264
- history.scrollRestoration = mode;
265
- },
266
- get state() {
267
- return getState?.() ?? history.state;
268
- },
269
- ...methods,
270
- pushState(data, _, url) {
271
- if (!stateDescriptor) {
272
- ;
273
- history.state = data;
274
- }
275
- return methods.pushState(data, _, url);
276
- },
277
- replaceState(data, _, url) {
278
- if (!stateDescriptor) {
279
- ;
280
- history.state = data;
281
- }
282
- return methods.replaceState(data, _, url);
283
- }
284
- };
285
- history.pushState = (state, _, url) => {
286
- if (url) {
287
- onEvent({
288
- _tag: "PushState",
289
- state,
290
- url: (0, _shared.getUrl)(location.origin, url),
291
- skipCommit: false
292
- });
293
- } else {
294
- onEvent({
295
- _tag: "ReplaceState",
296
- state,
297
- url: Option.none(),
298
- skipCommit: false
299
- });
300
- }
301
- };
302
- history.replaceState = (state, _, url) => {
303
- onEvent({
304
- _tag: "ReplaceState",
305
- state,
306
- url: url ? Option.some((0, _shared.getUrl)(location.origin, url)) : Option.none(),
307
- skipCommit: false
308
- });
309
- };
310
- history.go = delta => {
311
- if (delta && delta !== 0) {
312
- onEvent({
313
- _tag: "Traverse",
314
- delta,
315
- skipCommit: false
316
- });
317
- }
318
- };
319
- history.back = () => {
320
- onEvent({
321
- _tag: "Traverse",
322
- delta: -1,
323
- skipCommit: false
324
- });
325
- };
326
- history.forward = () => {
327
- onEvent({
328
- _tag: "Traverse",
329
- delta: 1,
330
- skipCommit: false
331
- });
332
- };
333
- // In a proper browser this will allow patching to hide the id/key's associated with the state
334
- if (stateDescriptor) {
335
- try {
336
- Object.defineProperty(history, "state", {
337
- get() {
338
- return (0, _shared.getOriginalState)(stateDescriptor.get.call(history));
339
- }
340
- });
341
- } catch {
342
- // We tried, but it didn't work
343
- }
344
- }
345
- const onHashChange = ev => {
346
- onEvent({
347
- _tag: "ReplaceState",
348
- state: history.state,
349
- url: Option.some(new URL(ev.newURL)),
350
- skipCommit: false
351
- });
352
- };
353
- window.addEventListener("hashchange", onHashChange, {
354
- capture: true
355
- });
356
- const onPopState = ev => {
357
- if ((0, _shared.isPatchedState)(ev.state)) {
358
- onEvent({
359
- _tag: "TraverseTo",
360
- key: ev.state.key,
361
- state: ev.state.originalHistoryState,
362
- skipCommit: true
363
- });
364
- } else {
365
- onEvent({
366
- _tag: "ReplaceState",
367
- state: ev.state,
368
- url: Option.some(new URL(location.href)),
369
- skipCommit: true
370
- });
371
- }
372
- };
373
- window.addEventListener("popstate", onPopState, {
374
- capture: true
375
- });
376
- const unpatch = Effect.sync(() => {
377
- history.pushState = original.pushState;
378
- history.replaceState = original.replaceState;
379
- history.go = original.go;
380
- history.back = original.back;
381
- history.forward = original.forward;
382
- if (stateDescriptor) {
383
- try {
384
- Object.defineProperty(history, "state", stateDescriptor);
385
- } catch {
386
- // We tried, but it didn't work
387
- }
388
- }
389
- window.removeEventListener("hashchange", onHashChange);
390
- window.removeEventListener("popstate", onPopState);
391
- });
392
- return {
393
- original,
394
- patched: history,
395
- unpatch
396
- };
397
- }
398
- function scopedRuntime() {
399
- return Effect.map(Effect.runtime(), runtime => {
400
- const scope = Context.get(runtime.context, Scope.Scope);
401
- const runFork = Runtime.runFork(runtime);
402
- const runPromise = effect => new Promise((resolve, reject) => {
403
- const fiber = runFork(effect, {
404
- scope
405
- });
406
- fiber.addObserver(Exit.match({
407
- onFailure: cause => reject(Runtime.makeFiberFailure(cause)),
408
- onSuccess: resolve
409
- }));
410
- });
411
- return {
412
- runtime,
413
- scope: Context.unsafeGet(runtime.context, Scope.Scope),
414
- run: eff => runFork(eff, {
415
- scope
416
- }),
417
- runPromise
418
- };
419
- });
420
- }
421
- //# sourceMappingURL=fromWindow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fromWindow.js","names":["Equivalence","_interopRequireWildcard","require","Context","_Window","RefSubject","_id","Effect","Option","Runtime","Scope","Schema","Exit","_Navigation","_shared","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","fromWindow","exports","Navigation","scoped","Window","withEffect","window","getRandomValues","length","sync","crypto","Uint8Array","gen","run","runPromise","scopedRuntime","hasNativeNavigation","navigation","modelAndIntent","setupWithNavigation","setupWithHistory","event","handleHistoryEvent","setupFromModelAndIntent","location","origin","getBaseHref","getNavigationState","undefined","_tag","navigate","url","skipCommit","isSome","value","history","state","updateCurrentEntry","entries","index","toIndex","Math","min","max","delta","to","traverseTo","key","pipe","GetRandomValues","provide","base","document","querySelector","href","map","nativeEntryToDestination","currentEntry","transition","none","fromEffect","eq","make","typeSchema","NavigationState","canGoBack","s","canGoForward","beforeHandlers","formDataHandlers","handlers","makeHandlersState","commit","_","info","type","promise","toString","committed","catchAllDefect","error","fail","NavigationError","reload","runHandlers","native","eventHandlers","matches","navigationType","destination","handler","ctx","match","push","all","addEventListener","ev","shouldNotIntercept","intercept","entry","id","Uuid","URL","getState","sameDocument","navigationEvent","canIntercept","hashChange","downloadRequest","formData","onEvent","original","unpatch","patchHistory","addFinalizer","suspend","makeDestination","pushState","originalHistoryState","replaceState","go","stateDescriptor","getPrototypeOf","methods","bind","back","forward","scrollRestoration","mode","data","getUrl","some","getOriginalState","onHashChange","newURL","capture","onPopState","isPatchedState","removeEventListener","patched","runtime","scope","context","runFork","effect","Promise","resolve","reject","fiber","addObserver","onFailure","cause","makeFiberFailure","onSuccess","unsafeGet","eff"],"sources":["../../../src/internal/fromWindow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.initialMemory = initialMemory;
7
- exports.memory = void 0;
8
- var _schema = /*#__PURE__*/require("@effect/schema");
9
- var Equivalence = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/schema/Equivalence"));
10
- var RefSubject = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@typed/fx/RefSubject"));
11
- var _id = /*#__PURE__*/require("@typed/id");
12
- var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
13
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
14
- var _Navigation = /*#__PURE__*/require("../Navigation.js");
15
- var _shared = /*#__PURE__*/require("./shared.js");
16
- 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); }
17
- 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; }
18
- const memory = options => _Navigation.Navigation.scoped(Effect.gen(function* () {
19
- const getRandomValues = yield* _id.GetRandomValues;
20
- const modelAndIntent = yield* setupMemory(options);
21
- const current = options.entries[options.currentIndex ?? 0];
22
- const origin = options.origin ?? (0, _shared.getOriginFromUrl)(current.url);
23
- const base = options.base ?? "/";
24
- return (0, _shared.setupFromModelAndIntent)(modelAndIntent, origin, base, getRandomValues);
25
- }).pipe(Effect.provide(_id.getRandomValues)));
26
- exports.memory = memory;
27
- function initialMemory(options) {
28
- return _Navigation.Navigation.scoped(Effect.gen(function* () {
29
- const getRandomValues = yield* _id.GetRandomValues;
30
- const origin = options.origin ?? (0, _shared.getOriginFromUrl)(options.url);
31
- const base = options.base ?? "/";
32
- const destination = yield* (0, _shared.makeDestination)((0, _shared.getUrl)(origin, options.url), options.state, origin);
33
- const memoryOptions = {
34
- entries: [destination],
35
- origin,
36
- base,
37
- currentIndex: 0,
38
- maxEntries: options.maxEntries
39
- };
40
- const modelAndIntent = yield* setupMemory(memoryOptions);
41
- return (0, _shared.setupFromModelAndIntent)(modelAndIntent, origin, base, getRandomValues);
42
- }).pipe(Effect.provide(_id.getRandomValues)));
43
- }
44
- function setupMemory(options) {
45
- return Effect.gen(function* () {
46
- const state = yield* RefSubject.of({
47
- entries: options.entries,
48
- index: options.currentIndex ?? options.entries.length - 1,
49
- transition: Option.none()
50
- }, {
51
- eq: Equivalence.make(_schema.Schema.typeSchema(_shared.NavigationState))
52
- });
53
- const canGoBack = RefSubject.map(state, s => s.index > 0);
54
- const canGoForward = RefSubject.map(state, s => s.index < s.entries.length - 1);
55
- const {
56
- beforeHandlers,
57
- formDataHandlers,
58
- handlers
59
- } = yield* (0, _shared.makeHandlersState)();
60
- const commit = options.commit ?? (() => Effect.void);
61
- return {
62
- state,
63
- canGoBack,
64
- canGoForward,
65
- beforeHandlers,
66
- handlers,
67
- formDataHandlers,
68
- commit
69
- };
70
- });
71
- }
72
- //# sourceMappingURL=memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory.js","names":["_schema","require","Equivalence","_interopRequireWildcard","RefSubject","_id","Effect","Option","_Navigation","_shared","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","memory","options","Navigation","scoped","gen","getRandomValues","GetRandomValues","modelAndIntent","setupMemory","current","entries","currentIndex","origin","getOriginFromUrl","url","base","setupFromModelAndIntent","pipe","provide","exports","initialMemory","destination","makeDestination","getUrl","state","memoryOptions","maxEntries","of","index","length","transition","none","eq","make","Schema","typeSchema","NavigationState","canGoBack","map","s","canGoForward","beforeHandlers","formDataHandlers","handlers","makeHandlersState","commit","void"],"sources":["../../../src/internal/memory.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}