@arc-js/core 0.0.11 → 0.0.12
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/auto-rooting.tsx +55 -0
- package/package.json +1 -1
- package/rooting.hooks.tsx +400 -0
- package/auto-rooting.d.ts +0 -10
- package/auto-rooting.min.jsx.map +0 -1
- package/rooting.hooks.d.ts +0 -87
- package/rooting.hooks.min.jsx.map +0 -1
package/auto-rooting.tsx
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Navigate, RouteObject } from "react-router-dom";
|
|
2
|
+
import { lazy } from 'react';
|
|
3
|
+
import * as autoRoutes from './routes-utils';
|
|
4
|
+
import { useRootingActions } from './rooting.hooks';
|
|
5
|
+
import { RouteDefinition } from './types';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Permet d'initialiser toutes les routes de l'application
|
|
10
|
+
* @returns RouteObject[]
|
|
11
|
+
*/
|
|
12
|
+
export default () => {
|
|
13
|
+
let routes: RouteObject[] = autoRoutes.routes.map((route) => ({
|
|
14
|
+
path: route.path,
|
|
15
|
+
element: route.layout ? (
|
|
16
|
+
<route.layout>
|
|
17
|
+
<route.component />
|
|
18
|
+
</route.layout>
|
|
19
|
+
) : (
|
|
20
|
+
<route.component />
|
|
21
|
+
),
|
|
22
|
+
...(!!route.error ? {
|
|
23
|
+
errorElement: <route.error />,
|
|
24
|
+
} : {}),
|
|
25
|
+
}));
|
|
26
|
+
let homeRoute: RouteObject | undefined = undefined;
|
|
27
|
+
let notFoundRoute: RouteObject | undefined = undefined;
|
|
28
|
+
homeRoute = routes.find((a) => a.path === '/');
|
|
29
|
+
notFoundRoute = routes.find((a) => a.path === '*');
|
|
30
|
+
routes = [
|
|
31
|
+
...(!!homeRoute ? [homeRoute] : []),
|
|
32
|
+
...routes.filter((route) => !(
|
|
33
|
+
!!route.path &&
|
|
34
|
+
['/', '*'].includes(route.path)
|
|
35
|
+
)),
|
|
36
|
+
...(!!notFoundRoute ? [notFoundRoute] : []),
|
|
37
|
+
].filter((route) => (
|
|
38
|
+
!!route.path && (
|
|
39
|
+
route.path.indexOf('/_404') === -1 &&
|
|
40
|
+
route.path.indexOf('/_layout') === -1
|
|
41
|
+
)
|
|
42
|
+
));
|
|
43
|
+
|
|
44
|
+
if(process.env?.NODE_ENV === 'development') {
|
|
45
|
+
console.log(`[router -> routes.tsx] notFoundRoute:: `, notFoundRoute);
|
|
46
|
+
console.log(`[router -> routes.tsx] autoRoutes:: `, autoRoutes);
|
|
47
|
+
console.log(`[router -> routes.tsx] routes:: `, routes);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return routes;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
useRootingActions,
|
|
55
|
+
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.0.
|
|
6
|
+
"version": "0.0.12",
|
|
7
7
|
"description": "CORE est un module de routage intelligent et auto-configuré pour les applications React avec TypeScript/Javascript. Il fournit un système de routage basé sur la structure de fichiers, des hooks de navigation avancés et une configuration minimale pour les applications modulaires.",
|
|
8
8
|
"main": "index.js",
|
|
9
9
|
"keywords": [],
|
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
import React, { useContext, useEffect } from 'react';
|
|
2
|
+
import { useLocation, useNavigate, useParams, generatePath, createSearchParams, NavigateFunction, Params, matchPath } from 'react-router-dom';
|
|
3
|
+
import { getLang } from '../src/utils';
|
|
4
|
+
import { qust, Qust } from '@arc-js/qust';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
9
|
+
*/
|
|
10
|
+
export interface ConfigGoToSpecificUrl {
|
|
11
|
+
path?: string;
|
|
12
|
+
queries?: any;
|
|
13
|
+
refreshPage?: boolean;
|
|
14
|
+
replace?: boolean;
|
|
15
|
+
enableLoader?: boolean;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Cette fonction permet de recuperer tous les parameters de l'url
|
|
20
|
+
*/
|
|
21
|
+
function getParams() {
|
|
22
|
+
const queryString = window.location.search;
|
|
23
|
+
const urlParams = new URLSearchParams(queryString);
|
|
24
|
+
return urlParams;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
28
|
+
*/
|
|
29
|
+
export interface ConfigGoAndReloadRoute {
|
|
30
|
+
path?: string;
|
|
31
|
+
params?: any;
|
|
32
|
+
queries?: any;
|
|
33
|
+
enableLoader?: boolean;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Interface du paramètre de configuration de la fonction "resolveRoute" .
|
|
37
|
+
*/
|
|
38
|
+
export interface ConfigResolveRoute {
|
|
39
|
+
path?: string;
|
|
40
|
+
params?: any;
|
|
41
|
+
queries?: any;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Interface du paramètre de configuration de la fonction "goToRoute" .
|
|
45
|
+
*/
|
|
46
|
+
export interface ConfigGoToRoute {
|
|
47
|
+
path?: string;
|
|
48
|
+
params?: any;
|
|
49
|
+
queries?: any;
|
|
50
|
+
refreshPage?: boolean;
|
|
51
|
+
replace?: boolean;
|
|
52
|
+
enableLoader?: boolean;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Interface de retour du hooks "useRootingActions".
|
|
56
|
+
*/
|
|
57
|
+
export interface RootingActionReturns {
|
|
58
|
+
params: Readonly<Params<string>>;
|
|
59
|
+
queries: any;
|
|
60
|
+
getParams: () => URLSearchParams;
|
|
61
|
+
navigate: NavigateFunction;
|
|
62
|
+
resolveRoute: (config: ConfigResolveRoute) => string;
|
|
63
|
+
goToRoute: (config: ConfigGoToRoute) => void;
|
|
64
|
+
goAndReloadRoute: (config: ConfigGoAndReloadRoute) => void;
|
|
65
|
+
pathName: string;
|
|
66
|
+
urlSearch: string;
|
|
67
|
+
getUrlData: (url: string | URL) => {
|
|
68
|
+
host: string;
|
|
69
|
+
hostname: string;
|
|
70
|
+
pathname: string;
|
|
71
|
+
search: string;
|
|
72
|
+
queries: any;
|
|
73
|
+
} | undefined;
|
|
74
|
+
goToUrl: (config: ConfigGoToSpecificUrl) => string;
|
|
75
|
+
checkIfIsCurrentRoute: (path?: string, exact?: boolean, strict?: boolean) => boolean;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Cette fonction permet de recuperer une route en fonction de son path, ses paramètres et ses query parameters.
|
|
81
|
+
* @param config - la donnée de la route à ressortir
|
|
82
|
+
* @param incorrectUrl - la route qui sera prise en compte si le path n'existe pas
|
|
83
|
+
* @returns string
|
|
84
|
+
*/
|
|
85
|
+
export function nativeResolveRoute(config: ConfigResolveRoute, incorrectUrl: string = "") {
|
|
86
|
+
try {
|
|
87
|
+
const params = (
|
|
88
|
+
typeof config?.params === 'object' &&
|
|
89
|
+
Array.isArray(config?.params) === false
|
|
90
|
+
) ? config?.params : {};
|
|
91
|
+
const queries = (
|
|
92
|
+
typeof config?.queries === 'object' &&
|
|
93
|
+
Array.isArray(config?.queries) === false
|
|
94
|
+
) ? config?.queries : {};
|
|
95
|
+
const path = (
|
|
96
|
+
typeof config?.path === 'string'
|
|
97
|
+
) ? config?.path : incorrectUrl;
|
|
98
|
+
|
|
99
|
+
if(!config?.queries) {
|
|
100
|
+
config.queries = {};
|
|
101
|
+
}
|
|
102
|
+
let lang = getLang(config?.queries?.lang);
|
|
103
|
+
if(!!config?.queries?.lang && config?.queries?.lang != 'fr') {
|
|
104
|
+
lang = getLang(config?.queries?.lang || getParams().get('lang') || 'fr');
|
|
105
|
+
}
|
|
106
|
+
config.queries = {
|
|
107
|
+
...config.queries,
|
|
108
|
+
lang,
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
let res = generatePath(path, params);
|
|
112
|
+
if(Object.keys(queries).length > 0) {
|
|
113
|
+
res = `${res}?${createSearchParams(queries)}`;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return res;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
if(process.env?.NODE_ENV === 'development') {
|
|
119
|
+
console.log(error);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return incorrectUrl;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Ce hooks contient toutes les actions necessaires pour le routing.
|
|
128
|
+
* - recuperer les paramètres de la route
|
|
129
|
+
* - Recuperer les query parameters de la route
|
|
130
|
+
* - naviguer au travers des routes
|
|
131
|
+
* - recuperer une route en fonction de son path, ses paramètres et ses query parameters
|
|
132
|
+
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters
|
|
133
|
+
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters en rafraîchissant le navigateur
|
|
134
|
+
* - recuperer l'url de la route courante
|
|
135
|
+
* - recuperer la chaîne de caractères contenant les query parameters
|
|
136
|
+
* @type {() => RootingActionReturns}
|
|
137
|
+
* @returns {RootingActionReturns} Resultat du hooks.
|
|
138
|
+
*/
|
|
139
|
+
export const useRootingActions = () => {
|
|
140
|
+
const location = useLocation();
|
|
141
|
+
const pathname = location.pathname;
|
|
142
|
+
/**
|
|
143
|
+
* L'ensemble des parametres de la route
|
|
144
|
+
* @type {Readonly<Params<string>>}
|
|
145
|
+
*/
|
|
146
|
+
const params = useParams();
|
|
147
|
+
/**
|
|
148
|
+
* L'url de la route courante
|
|
149
|
+
* @type {string}
|
|
150
|
+
*/
|
|
151
|
+
const pathName = useLocation().pathname;
|
|
152
|
+
/**
|
|
153
|
+
* La chaîne de caractères contenant les query parameters
|
|
154
|
+
* @type {string}
|
|
155
|
+
*/
|
|
156
|
+
const urlSearch = useLocation().search;
|
|
157
|
+
const paramsData = new URLSearchParams(useLocation().search);
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* L'ensemble des query parameters de la route
|
|
161
|
+
* @type {any}
|
|
162
|
+
*/
|
|
163
|
+
let queries: any = {};
|
|
164
|
+
for (const key of paramsData.keys()) {
|
|
165
|
+
const valueParamsData: any = (
|
|
166
|
+
paramsData.getAll(key).length === 1
|
|
167
|
+
) ? paramsData.getAll(key)[0] : paramsData.getAll(key);
|
|
168
|
+
queries = {
|
|
169
|
+
...queries,
|
|
170
|
+
[key]: valueParamsData,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
const navigate = useNavigate();
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Cette fonction permet de recuperer une route en fonction de son path, ses paramètres et ses query parameters.
|
|
177
|
+
* @param {ConfigResolveRoute} config - Paramètre de configuration ou de paramètrage.
|
|
178
|
+
* @type {(config: ConfigResolveRoute) => string}
|
|
179
|
+
* @returns {string} Resultat de la fonction.
|
|
180
|
+
*/
|
|
181
|
+
const resolveRoute = (config: ConfigResolveRoute) => {
|
|
182
|
+
const incorrectUrl = pathName;
|
|
183
|
+
return nativeResolveRoute(config, incorrectUrl);
|
|
184
|
+
};
|
|
185
|
+
/**
|
|
186
|
+
* Cette fonction permet de naviguer vers une route en fonction de son path, ses paramètres et ses query parameters.
|
|
187
|
+
* @param {ConfigGoToRoute} config - Paramètre de configuration ou de paramètrage.
|
|
188
|
+
* @type {(config: ConfigGoToRoute) => void}
|
|
189
|
+
*/
|
|
190
|
+
const goToRoute = (
|
|
191
|
+
config: ConfigGoToRoute,
|
|
192
|
+
loaderHandler = () => {},
|
|
193
|
+
) => {
|
|
194
|
+
loaderHandler = !!loaderHandler ? loaderHandler : () => {};
|
|
195
|
+
if(!config?.queries) {
|
|
196
|
+
config.queries = {};
|
|
197
|
+
}
|
|
198
|
+
let lang = getLang(config?.queries?.lang);
|
|
199
|
+
if(!!config?.queries?.lang && config?.queries?.lang != 'fr') {
|
|
200
|
+
lang = getLang(config?.queries?.lang || getParams().get('lang') || 'fr');
|
|
201
|
+
}
|
|
202
|
+
config.queries = {
|
|
203
|
+
...config.queries,
|
|
204
|
+
lang,
|
|
205
|
+
};
|
|
206
|
+
config.queries = Object.fromEntries(
|
|
207
|
+
Object.entries(config.queries || {}).filter(([key, value]) => value !== undefined && value !== null)
|
|
208
|
+
);
|
|
209
|
+
config.params = Object.fromEntries(
|
|
210
|
+
Object.entries(config.params || {}).filter(([key, value]) => value !== undefined && value !== null)
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
if(
|
|
214
|
+
typeof !!config?.enableLoader === 'undefined' &&
|
|
215
|
+
(
|
|
216
|
+
typeof !!config?.enableLoader === 'boolean' &&
|
|
217
|
+
!!config?.enableLoader
|
|
218
|
+
)
|
|
219
|
+
) {
|
|
220
|
+
loaderHandler();
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const refreshPage = (
|
|
224
|
+
typeof config?.refreshPage === 'boolean'
|
|
225
|
+
) ? config?.refreshPage : false;
|
|
226
|
+
const pathF = resolveRoute({
|
|
227
|
+
path: config?.path,
|
|
228
|
+
params: config?.params,
|
|
229
|
+
queries: config?.queries,
|
|
230
|
+
});
|
|
231
|
+
if(!!refreshPage) {
|
|
232
|
+
window.location = pathF as string & Location;
|
|
233
|
+
} else {
|
|
234
|
+
navigate(
|
|
235
|
+
pathF,
|
|
236
|
+
{
|
|
237
|
+
replace: config?.replace,
|
|
238
|
+
},
|
|
239
|
+
);
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Cette fonction permet de naviguer vers une route en fonction de son path, ses paramètres et ses query parameters en rafraîchissant le navigateur.
|
|
244
|
+
* @param {ConfigGoAndReloadRoute} config - Paramètre de configuration ou de paramètrage.
|
|
245
|
+
* @type {(config: ConfigGoAndReloadRoute) => void}
|
|
246
|
+
*/
|
|
247
|
+
const goAndReloadRoute = (
|
|
248
|
+
config: ConfigGoAndReloadRoute,
|
|
249
|
+
loaderHandler = () => {},
|
|
250
|
+
) => {
|
|
251
|
+
loaderHandler = !!loaderHandler ? loaderHandler : () => {};
|
|
252
|
+
if(!config?.queries) {
|
|
253
|
+
config.queries = {};
|
|
254
|
+
}
|
|
255
|
+
let lang = getLang(config?.queries?.lang);
|
|
256
|
+
if(!!config?.queries?.lang && config?.queries?.lang != 'fr') {
|
|
257
|
+
lang = getLang(config?.queries?.lang || getParams().get('lang') || 'fr');
|
|
258
|
+
}
|
|
259
|
+
config.queries = {
|
|
260
|
+
...config.queries,
|
|
261
|
+
lang,
|
|
262
|
+
};
|
|
263
|
+
config.queries = Object.fromEntries(
|
|
264
|
+
Object.entries(config.queries || {}).filter(([key, value]) => value !== undefined && value !== null)
|
|
265
|
+
);
|
|
266
|
+
config.params = Object.fromEntries(
|
|
267
|
+
Object.entries(config.params || {}).filter(([key, value]) => value !== undefined && value !== null)
|
|
268
|
+
);
|
|
269
|
+
// goToRoute({
|
|
270
|
+
// ...config,
|
|
271
|
+
// refreshPage: false,
|
|
272
|
+
// })
|
|
273
|
+
const url = resolveRoute(config);
|
|
274
|
+
|
|
275
|
+
window.location = url as string & Location;
|
|
276
|
+
|
|
277
|
+
if(
|
|
278
|
+
typeof !!config?.enableLoader === 'undefined' &&
|
|
279
|
+
(
|
|
280
|
+
typeof !!config?.enableLoader === 'boolean' &&
|
|
281
|
+
!!config?.enableLoader
|
|
282
|
+
)
|
|
283
|
+
) {
|
|
284
|
+
loaderHandler();
|
|
285
|
+
}
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
const getUrlData = (url: string | URL) => {
|
|
289
|
+
let urlF: URL | undefined = undefined;
|
|
290
|
+
if(
|
|
291
|
+
typeof url === 'string' &&
|
|
292
|
+
url.length > 0
|
|
293
|
+
) {
|
|
294
|
+
urlF = new URL(url);
|
|
295
|
+
} else if(
|
|
296
|
+
url instanceof URL
|
|
297
|
+
) {
|
|
298
|
+
urlF = url;
|
|
299
|
+
}
|
|
300
|
+
const paramsData = urlF?.search ? new URLSearchParams(urlF?.search) : undefined;
|
|
301
|
+
let queries: any = undefined;
|
|
302
|
+
if(!!paramsData) {
|
|
303
|
+
queries = {};
|
|
304
|
+
for (const key of paramsData.keys()) {
|
|
305
|
+
const valueParamsData: any = (
|
|
306
|
+
paramsData.getAll(key).length === 1
|
|
307
|
+
) ? paramsData.getAll(key)[0] : paramsData.getAll(key);
|
|
308
|
+
queries = {
|
|
309
|
+
...queries,
|
|
310
|
+
[key]: valueParamsData,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
return urlF ? {
|
|
316
|
+
host: urlF?.host,
|
|
317
|
+
hostname: urlF?.hostname,
|
|
318
|
+
pathname: urlF?.pathname,
|
|
319
|
+
search: urlF?.search,
|
|
320
|
+
queries,
|
|
321
|
+
} : undefined;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const goToUrl = (config: ConfigGoToSpecificUrl) => {
|
|
325
|
+
const incorrectUrl = "";
|
|
326
|
+
const queries = (
|
|
327
|
+
typeof config?.queries === 'object' &&
|
|
328
|
+
Array.isArray(config?.queries) === false
|
|
329
|
+
) ? config?.queries : {};
|
|
330
|
+
const path = (
|
|
331
|
+
typeof config?.path === 'string'
|
|
332
|
+
) ? config?.path : incorrectUrl;
|
|
333
|
+
|
|
334
|
+
if(!config?.queries) {
|
|
335
|
+
config.queries = {};
|
|
336
|
+
}
|
|
337
|
+
let lang = getLang(config?.queries?.lang);
|
|
338
|
+
if(!!config?.queries?.lang && config?.queries?.lang != 'fr') {
|
|
339
|
+
lang = getLang(config?.queries?.lang || getParams().get('lang') || 'fr');
|
|
340
|
+
}
|
|
341
|
+
config.queries = {
|
|
342
|
+
...config.queries,
|
|
343
|
+
lang,
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
const uncleanUrl = qust.stringify(queries);
|
|
347
|
+
const qsValue = decodeURI(uncleanUrl);
|
|
348
|
+
|
|
349
|
+
const url = `${path}?${qsValue}`;
|
|
350
|
+
|
|
351
|
+
if(!!config?.refreshPage) {
|
|
352
|
+
window.location = url as string & Location;
|
|
353
|
+
} else {
|
|
354
|
+
window.location.assign(url);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
const checkIfIsCurrentRoute = (
|
|
359
|
+
path?: string,
|
|
360
|
+
exact: boolean = true,
|
|
361
|
+
strict: boolean = true,
|
|
362
|
+
) => {
|
|
363
|
+
const pathF = (
|
|
364
|
+
typeof path === 'string' &&
|
|
365
|
+
path.length > 0
|
|
366
|
+
) ? path : '';
|
|
367
|
+
const exactF = (
|
|
368
|
+
typeof exact === 'boolean'
|
|
369
|
+
) ? exact : true;
|
|
370
|
+
const strictF = (
|
|
371
|
+
typeof strict === 'boolean'
|
|
372
|
+
) ? strict : true;
|
|
373
|
+
|
|
374
|
+
const matchAbout = matchPath({
|
|
375
|
+
path: pathF,
|
|
376
|
+
end: exactF,
|
|
377
|
+
caseSensitive: strictF,
|
|
378
|
+
}, pathname);
|
|
379
|
+
return !!matchAbout;
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
useEffect(() => {
|
|
383
|
+
|
|
384
|
+
}, []);
|
|
385
|
+
|
|
386
|
+
return {
|
|
387
|
+
params,
|
|
388
|
+
queries,
|
|
389
|
+
navigate,
|
|
390
|
+
resolveRoute,
|
|
391
|
+
goToRoute,
|
|
392
|
+
goAndReloadRoute,
|
|
393
|
+
pathName,
|
|
394
|
+
urlSearch,
|
|
395
|
+
getUrlData,
|
|
396
|
+
goToUrl,
|
|
397
|
+
getParams,
|
|
398
|
+
checkIfIsCurrentRoute,
|
|
399
|
+
} as RootingActionReturns;
|
|
400
|
+
};
|
package/auto-rooting.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { RouteObject } from 'react-router-dom';
|
|
2
|
-
export { useRootingActions } from './rooting.hooks.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Permet d'initialiser toutes les routes de l'application
|
|
6
|
-
* @returns RouteObject[]
|
|
7
|
-
*/
|
|
8
|
-
declare const _default: () => RouteObject[];
|
|
9
|
-
|
|
10
|
-
export { _default as default };
|
package/auto-rooting.min.jsx.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-rooting.min.jsx","sources":["auto-rooting.jsx"],"names":["jsxRuntimeExports","routesUtils_js","routes","autoRooting","let","routes$1","map","path","route","element","layout","jsx","children","component","error","errorElement","homeRoute","find","a","notFoundRoute","filter","includes","indexOf","process","env","NODE_ENV"],"mappings":"OAAcA,sBAAiD,KAAxB,+BAC3BC,uBAAoB,2BACvBC,MAAiC,KAAnB,4CACgC,KAArB,sBAElC,IAAIC,YAAc,KACdC,IAAIC,EAAWH,OAAOI,IAAI,IAAW,CACjCC,KAAMC,EAAMD,KACZE,QAASD,EAAME,OAAUV,kBAAkBW,IAAIH,EAAME,OAAQ,CAAEE,SAAUZ,kBAAkBW,IAAIH,EAAMK,UAAW,EAAE,CAAE,CAAE,EAAKb,kBAAkBW,IAAIH,EAAMK,UAAW,EAAG,EACrK,GAAML,EAAMM,MAAQ,CAChBC,aAAcf,kBAAkBW,IAAIH,EAAMM,MAAO,EAAE,CACvD,EAAI,EACP,EAAC,EACFV,IAEAY,EAAYX,EAASY,KAAK,GAAkB,MAAXC,EAAEX,IAAY,EAC/CY,EAAgBd,EAASY,KAAK,GAAkB,MAAXC,EAAEX,IAAY,EAanD,OAZAF,EAAW,CACP,GAAMW,EAAY,CAACA,GAAa,GAChC,GAAGX,EAASe,OAAO,GAAW,EAAIZ,EAAMD,MACpC,CAAC,IAAK,KAAKc,SAASb,EAAMD,IAAI,EAAE,EACpC,GAAMY,EAAgB,CAACA,GAAiB,IAC1CC,OAAO,GAAY,CAAC,CAACZ,EAAMD,MAAyC,CAAC,IAAjCC,EAAMD,KAAKe,QAAQ,OAAO,GACzB,CAAC,IAApCd,EAAMD,KAAKe,QAAQ,UAAU,CAAU,EACvCC,QAAQC,KAAKC,SAKVpB,CACX,SAESF,sBAAwB","sourceRoot":"../core"}
|
package/rooting.hooks.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Params, NavigateFunction } from 'react-router-dom';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
5
|
-
*/
|
|
6
|
-
interface ConfigGoToSpecificUrl {
|
|
7
|
-
path?: string;
|
|
8
|
-
queries?: any;
|
|
9
|
-
refreshPage?: boolean;
|
|
10
|
-
replace?: boolean;
|
|
11
|
-
enableLoader?: boolean;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
15
|
-
*/
|
|
16
|
-
interface ConfigGoAndReloadRoute {
|
|
17
|
-
path?: string;
|
|
18
|
-
params?: any;
|
|
19
|
-
queries?: any;
|
|
20
|
-
enableLoader?: boolean;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Interface du paramètre de configuration de la fonction "resolveRoute" .
|
|
24
|
-
*/
|
|
25
|
-
interface ConfigResolveRoute {
|
|
26
|
-
path?: string;
|
|
27
|
-
params?: any;
|
|
28
|
-
queries?: any;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Interface du paramètre de configuration de la fonction "goToRoute" .
|
|
32
|
-
*/
|
|
33
|
-
interface ConfigGoToRoute {
|
|
34
|
-
path?: string;
|
|
35
|
-
params?: any;
|
|
36
|
-
queries?: any;
|
|
37
|
-
refreshPage?: boolean;
|
|
38
|
-
replace?: boolean;
|
|
39
|
-
enableLoader?: boolean;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Interface de retour du hooks "useRootingActions".
|
|
43
|
-
*/
|
|
44
|
-
interface RootingActionReturns {
|
|
45
|
-
params: Readonly<Params<string>>;
|
|
46
|
-
queries: any;
|
|
47
|
-
getParams: () => URLSearchParams;
|
|
48
|
-
navigate: NavigateFunction;
|
|
49
|
-
resolveRoute: (config: ConfigResolveRoute) => string;
|
|
50
|
-
goToRoute: (config: ConfigGoToRoute) => void;
|
|
51
|
-
goAndReloadRoute: (config: ConfigGoAndReloadRoute) => void;
|
|
52
|
-
pathName: string;
|
|
53
|
-
urlSearch: string;
|
|
54
|
-
getUrlData: (url: string | URL) => {
|
|
55
|
-
host: string;
|
|
56
|
-
hostname: string;
|
|
57
|
-
pathname: string;
|
|
58
|
-
search: string;
|
|
59
|
-
queries: any;
|
|
60
|
-
} | undefined;
|
|
61
|
-
goToUrl: (config: ConfigGoToSpecificUrl) => string;
|
|
62
|
-
checkIfIsCurrentRoute: (path?: string, exact?: boolean, strict?: boolean) => boolean;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Cette fonction permet de recuperer une route en fonction de son path, ses paramètres et ses query parameters.
|
|
66
|
-
* @param config - la donnée de la route à ressortir
|
|
67
|
-
* @param incorrectUrl - la route qui sera prise en compte si le path n'existe pas
|
|
68
|
-
* @returns string
|
|
69
|
-
*/
|
|
70
|
-
declare function nativeResolveRoute(config: ConfigResolveRoute, incorrectUrl?: string): string;
|
|
71
|
-
/**
|
|
72
|
-
* Ce hooks contient toutes les actions necessaires pour le routing.
|
|
73
|
-
* - recuperer les paramètres de la route
|
|
74
|
-
* - Recuperer les query parameters de la route
|
|
75
|
-
* - naviguer au travers des routes
|
|
76
|
-
* - recuperer une route en fonction de son path, ses paramètres et ses query parameters
|
|
77
|
-
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters
|
|
78
|
-
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters en rafraîchissant le navigateur
|
|
79
|
-
* - recuperer l'url de la route courante
|
|
80
|
-
* - recuperer la chaîne de caractères contenant les query parameters
|
|
81
|
-
* @type {() => RootingActionReturns}
|
|
82
|
-
* @returns {RootingActionReturns} Resultat du hooks.
|
|
83
|
-
*/
|
|
84
|
-
declare const useRootingActions: () => RootingActionReturns;
|
|
85
|
-
|
|
86
|
-
export { nativeResolveRoute, useRootingActions };
|
|
87
|
-
export type { ConfigGoAndReloadRoute, ConfigGoToRoute, ConfigGoToSpecificUrl, ConfigResolveRoute, RootingActionReturns };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rooting.hooks.min.jsx","sources":["rooting.hooks.jsx"],"names":["reactExports","distExports","getLang","qust","getParams","queryString","window","location","search","URLSearchParams","nativeResolveRoute","config","incorrectUrl","params","Array","isArray","queries","path","let","lang","res","get","generatePath","Object","keys","length","createSearchParams","error","process","env","NODE_ENV","useRootingActions","pathname","useLocation","useParams","pathName","key","urlSearch","paramsData","valueParamsData","getAll","navigate","useNavigate","resolveRoute","useEffect","goToRoute","loaderHandler","fromEntries","entries","filter","value","enableLoader","refreshPage","pathF","replace","goAndReloadRoute","url","getUrlData","urlF","undefined","URL","host","hostname","goToUrl","uncleanUrl","stringify","decodeURI","assign","checkIfIsCurrentRoute","exact","strict","matchPath","end","caseSensitive"],"mappings":"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","sourceRoot":"../core"}
|