source: imaps-frontend/node_modules/@remix-run/router/dist/history.d.ts

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 8.4 KB
Line 
1/**
2 * Actions represent the type of change to a location value.
3 */
4export declare enum Action {
5 /**
6 * A POP indicates a change to an arbitrary index in the history stack, such
7 * as a back or forward navigation. It does not describe the direction of the
8 * navigation, only that the current index changed.
9 *
10 * Note: This is the default action for newly created history objects.
11 */
12 Pop = "POP",
13 /**
14 * A PUSH indicates a new entry being added to the history stack, such as when
15 * a link is clicked and a new page loads. When this happens, all subsequent
16 * entries in the stack are lost.
17 */
18 Push = "PUSH",
19 /**
20 * A REPLACE indicates the entry at the current index in the history stack
21 * being replaced by a new one.
22 */
23 Replace = "REPLACE"
24}
25/**
26 * The pathname, search, and hash values of a URL.
27 */
28export interface Path {
29 /**
30 * A URL pathname, beginning with a /.
31 */
32 pathname: string;
33 /**
34 * A URL search string, beginning with a ?.
35 */
36 search: string;
37 /**
38 * A URL fragment identifier, beginning with a #.
39 */
40 hash: string;
41}
42/**
43 * An entry in a history stack. A location contains information about the
44 * URL path, as well as possibly some arbitrary state and a key.
45 */
46export interface Location<State = any> extends Path {
47 /**
48 * A value of arbitrary data associated with this location.
49 */
50 state: State;
51 /**
52 * A unique string associated with this location. May be used to safely store
53 * and retrieve data in some other storage API, like `localStorage`.
54 *
55 * Note: This value is always "default" on the initial location.
56 */
57 key: string;
58}
59/**
60 * A change to the current location.
61 */
62export interface Update {
63 /**
64 * The action that triggered the change.
65 */
66 action: Action;
67 /**
68 * The new location.
69 */
70 location: Location;
71 /**
72 * The delta between this location and the former location in the history stack
73 */
74 delta: number | null;
75}
76/**
77 * A function that receives notifications about location changes.
78 */
79export interface Listener {
80 (update: Update): void;
81}
82/**
83 * Describes a location that is the destination of some navigation, either via
84 * `history.push` or `history.replace`. This may be either a URL or the pieces
85 * of a URL path.
86 */
87export type To = string | Partial<Path>;
88/**
89 * A history is an interface to the navigation stack. The history serves as the
90 * source of truth for the current location, as well as provides a set of
91 * methods that may be used to change it.
92 *
93 * It is similar to the DOM's `window.history` object, but with a smaller, more
94 * focused API.
95 */
96export interface History {
97 /**
98 * The last action that modified the current location. This will always be
99 * Action.Pop when a history instance is first created. This value is mutable.
100 */
101 readonly action: Action;
102 /**
103 * The current location. This value is mutable.
104 */
105 readonly location: Location;
106 /**
107 * Returns a valid href for the given `to` value that may be used as
108 * the value of an <a href> attribute.
109 *
110 * @param to - The destination URL
111 */
112 createHref(to: To): string;
113 /**
114 * Returns a URL for the given `to` value
115 *
116 * @param to - The destination URL
117 */
118 createURL(to: To): URL;
119 /**
120 * Encode a location the same way window.history would do (no-op for memory
121 * history) so we ensure our PUSH/REPLACE navigations for data routers
122 * behave the same as POP
123 *
124 * @param to Unencoded path
125 */
126 encodeLocation(to: To): Path;
127 /**
128 * Pushes a new location onto the history stack, increasing its length by one.
129 * If there were any entries in the stack after the current one, they are
130 * lost.
131 *
132 * @param to - The new URL
133 * @param state - Data to associate with the new location
134 */
135 push(to: To, state?: any): void;
136 /**
137 * Replaces the current location in the history stack with a new one. The
138 * location that was replaced will no longer be available.
139 *
140 * @param to - The new URL
141 * @param state - Data to associate with the new location
142 */
143 replace(to: To, state?: any): void;
144 /**
145 * Navigates `n` entries backward/forward in the history stack relative to the
146 * current index. For example, a "back" navigation would use go(-1).
147 *
148 * @param delta - The delta in the stack index
149 */
150 go(delta: number): void;
151 /**
152 * Sets up a listener that will be called whenever the current location
153 * changes.
154 *
155 * @param listener - A function that will be called when the location changes
156 * @returns unlisten - A function that may be used to stop listening
157 */
158 listen(listener: Listener): () => void;
159}
160/**
161 * A user-supplied object that describes a location. Used when providing
162 * entries to `createMemoryHistory` via its `initialEntries` option.
163 */
164export type InitialEntry = string | Partial<Location>;
165export type MemoryHistoryOptions = {
166 initialEntries?: InitialEntry[];
167 initialIndex?: number;
168 v5Compat?: boolean;
169};
170/**
171 * A memory history stores locations in memory. This is useful in stateful
172 * environments where there is no web browser, such as node tests or React
173 * Native.
174 */
175export interface MemoryHistory extends History {
176 /**
177 * The current index in the history stack.
178 */
179 readonly index: number;
180}
181/**
182 * Memory history stores the current location in memory. It is designed for use
183 * in stateful non-browser environments like tests and React Native.
184 */
185export declare function createMemoryHistory(options?: MemoryHistoryOptions): MemoryHistory;
186/**
187 * A browser history stores the current location in regular URLs in a web
188 * browser environment. This is the standard for most web apps and provides the
189 * cleanest URLs the browser's address bar.
190 *
191 * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory
192 */
193export interface BrowserHistory extends UrlHistory {
194}
195export type BrowserHistoryOptions = UrlHistoryOptions;
196/**
197 * Browser history stores the location in regular URLs. This is the standard for
198 * most web apps, but it requires some configuration on the server to ensure you
199 * serve the same app at multiple URLs.
200 *
201 * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory
202 */
203export declare function createBrowserHistory(options?: BrowserHistoryOptions): BrowserHistory;
204/**
205 * A hash history stores the current location in the fragment identifier portion
206 * of the URL in a web browser environment.
207 *
208 * This is ideal for apps that do not control the server for some reason
209 * (because the fragment identifier is never sent to the server), including some
210 * shared hosting environments that do not provide fine-grained controls over
211 * which pages are served at which URLs.
212 *
213 * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory
214 */
215export interface HashHistory extends UrlHistory {
216}
217export type HashHistoryOptions = UrlHistoryOptions;
218/**
219 * Hash history stores the location in window.location.hash. This makes it ideal
220 * for situations where you don't want to send the location to the server for
221 * some reason, either because you do cannot configure it or the URL space is
222 * reserved for something else.
223 *
224 * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory
225 */
226export declare function createHashHistory(options?: HashHistoryOptions): HashHistory;
227/**
228 * @private
229 */
230export declare function invariant(value: boolean, message?: string): asserts value;
231export declare function invariant<T>(value: T | null | undefined, message?: string): asserts value is T;
232export declare function warning(cond: any, message: string): void;
233/**
234 * Creates a Location object with a unique key from the given Path
235 */
236export declare function createLocation(current: string | Location, to: To, state?: any, key?: string): Readonly<Location>;
237/**
238 * Creates a string URL path from the given pathname, search, and hash components.
239 */
240export declare function createPath({ pathname, search, hash, }: Partial<Path>): string;
241/**
242 * Parses a string URL path into its separate pathname, search, and hash components.
243 */
244export declare function parsePath(path: string): Partial<Path>;
245export interface UrlHistory extends History {
246}
247export type UrlHistoryOptions = {
248 window?: Window;
249 v5Compat?: boolean;
250};
Note: See TracBrowser for help on using the repository browser.