@arc-js/core 0.0.20 → 0.0.30
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.jsx +2 -6
- package/auto-rooting.tsx +1 -4
- package/package.json +1 -1
- package/rooting.hooks.jsx +2 -86
- package/rooting.hooks.tsx +19 -73
package/auto-rooting.jsx
CHANGED
|
@@ -2,16 +2,12 @@ import * as autoRoutes from './routes-utils';
|
|
|
2
2
|
import { useRootingActions } from './rooting.hooks';
|
|
3
3
|
import React from "react";
|
|
4
4
|
|
|
5
|
-
/**
|
|
6
|
-
* Permet d'initialiser toutes les routes de l'application
|
|
7
|
-
* @returns RouteObject[]
|
|
8
|
-
*/
|
|
9
5
|
export default () => {
|
|
10
6
|
let routes = autoRoutes.routes.map(route => ({
|
|
11
7
|
path: route.path,
|
|
12
|
-
element: route.layout ?
|
|
8
|
+
element: route.layout ? React.createElement(route.layout, null, React.createElement(route.component, null)) : React.createElement(route.component, null),
|
|
13
9
|
...(!!route.error ? {
|
|
14
|
-
errorElement:
|
|
10
|
+
errorElement: React.createElement(route.error, null)
|
|
15
11
|
} : {})
|
|
16
12
|
}));
|
|
17
13
|
let homeRoute = undefined;
|
package/auto-rooting.tsx
CHANGED
|
@@ -5,10 +5,7 @@ import { useRootingActions } from './rooting.hooks';
|
|
|
5
5
|
import { RouteDefinition } from './types';
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
* Permet d'initialiser toutes les routes de l'application
|
|
10
|
-
* @returns RouteObject[]
|
|
11
|
-
*/
|
|
8
|
+
|
|
12
9
|
export default () => {
|
|
13
10
|
let routes: RouteObject[] = autoRoutes.routes.map((route) => ({
|
|
14
11
|
path: route.path,
|
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.30",
|
|
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": [],
|
package/rooting.hooks.jsx
CHANGED
|
@@ -2,49 +2,15 @@ import { useEffect } from 'react';
|
|
|
2
2
|
import { useLocation, useNavigate, useParams, generatePath, createSearchParams, matchPath } from 'react-router-dom';
|
|
3
3
|
import { getLang } from './utils';
|
|
4
4
|
import { qust } from '@arc-js/qust';
|
|
5
|
-
import React from "react"
|
|
5
|
+
import React from "react"
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Cette fonction permet de recuperer tous les parameters de l'url
|
|
16
|
-
*/
|
|
17
8
|
function getParams() {
|
|
18
9
|
const queryString = window.location.search;
|
|
19
10
|
const urlParams = new URLSearchParams(queryString);
|
|
20
11
|
return urlParams;
|
|
21
12
|
}
|
|
22
|
-
;
|
|
23
|
-
/**
|
|
24
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
;
|
|
28
|
-
/**
|
|
29
|
-
* Interface du paramètre de configuration de la fonction "resolveRoute" .
|
|
30
|
-
*/
|
|
31
13
|
|
|
32
|
-
;
|
|
33
|
-
/**
|
|
34
|
-
* Interface du paramètre de configuration de la fonction "goToRoute" .
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
;
|
|
38
|
-
/**
|
|
39
|
-
* Interface de retour du hooks "useRootingActions".
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Cette fonction permet de recuperer une route en fonction de son path, ses paramètres et ses query parameters.
|
|
44
|
-
* @param config - la donnée de la route à ressortir
|
|
45
|
-
* @param incorrectUrl - la route qui sera prise en compte si le path n'existe pas
|
|
46
|
-
* @returns string
|
|
47
|
-
*/
|
|
48
14
|
export function nativeResolveRoute(config, incorrectUrl = "") {
|
|
49
15
|
try {
|
|
50
16
|
const params = typeof config?.params === 'object' && Array.isArray(config?.params) === false ? config?.params : {};
|
|
@@ -73,45 +39,15 @@ export function nativeResolveRoute(config, incorrectUrl = "") {
|
|
|
73
39
|
return incorrectUrl;
|
|
74
40
|
}
|
|
75
41
|
}
|
|
76
|
-
;
|
|
77
42
|
|
|
78
|
-
/**
|
|
79
|
-
* Ce hooks contient toutes les actions necessaires pour le routing.
|
|
80
|
-
* - recuperer les paramètres de la route
|
|
81
|
-
* - Recuperer les query parameters de la route
|
|
82
|
-
* - naviguer au travers des routes
|
|
83
|
-
* - recuperer une route en fonction de son path, ses paramètres et ses query parameters
|
|
84
|
-
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters
|
|
85
|
-
* - naviguer vers une route en fonction de son path, ses paramètres et ses query parameters en rafraîchissant le navigateur
|
|
86
|
-
* - recuperer l'url de la route courante
|
|
87
|
-
* - recuperer la chaîne de caractères contenant les query parameters
|
|
88
|
-
* @type {() => RootingActionReturns}
|
|
89
|
-
* @returns {RootingActionReturns} Resultat du hooks.
|
|
90
|
-
*/
|
|
91
43
|
export const useRootingActions = () => {
|
|
92
44
|
const location = useLocation();
|
|
93
45
|
const pathname = location.pathname;
|
|
94
|
-
/**
|
|
95
|
-
* L'ensemble des parametres de la route
|
|
96
|
-
* @type {Readonly<Params<string>>}
|
|
97
|
-
*/
|
|
98
46
|
const params = useParams();
|
|
99
|
-
/**
|
|
100
|
-
* L'url de la route courante
|
|
101
|
-
* @type {string}
|
|
102
|
-
*/
|
|
103
47
|
const pathName = useLocation().pathname;
|
|
104
|
-
/**
|
|
105
|
-
* La chaîne de caractères contenant les query parameters
|
|
106
|
-
* @type {string}
|
|
107
|
-
*/
|
|
108
48
|
const urlSearch = useLocation().search;
|
|
109
49
|
const paramsData = new URLSearchParams(useLocation().search);
|
|
110
50
|
|
|
111
|
-
/**
|
|
112
|
-
* L'ensemble des query parameters de la route
|
|
113
|
-
* @type {any}
|
|
114
|
-
*/
|
|
115
51
|
let queries = {};
|
|
116
52
|
for (const key of paramsData.keys()) {
|
|
117
53
|
const valueParamsData = paramsData.getAll(key).length === 1 ? paramsData.getAll(key)[0] : paramsData.getAll(key);
|
|
@@ -122,21 +58,10 @@ export const useRootingActions = () => {
|
|
|
122
58
|
}
|
|
123
59
|
const navigate = useNavigate();
|
|
124
60
|
|
|
125
|
-
/**
|
|
126
|
-
* Cette fonction permet de recuperer une route en fonction de son path, ses paramètres et ses query parameters.
|
|
127
|
-
* @param {ConfigResolveRoute} config - Paramètre de configuration ou de paramètrage.
|
|
128
|
-
* @type {(config: ConfigResolveRoute) => string}
|
|
129
|
-
* @returns {string} Resultat de la fonction.
|
|
130
|
-
*/
|
|
131
61
|
const resolveRoute = config => {
|
|
132
62
|
const incorrectUrl = pathName;
|
|
133
63
|
return nativeResolveRoute(config, incorrectUrl);
|
|
134
64
|
};
|
|
135
|
-
/**
|
|
136
|
-
* Cette fonction permet de naviguer vers une route en fonction de son path, ses paramètres et ses query parameters.
|
|
137
|
-
* @param {ConfigGoToRoute} config - Paramètre de configuration ou de paramètrage.
|
|
138
|
-
* @type {(config: ConfigGoToRoute) => void}
|
|
139
|
-
*/
|
|
140
65
|
const goToRoute = (config, loaderHandler = () => {}) => {
|
|
141
66
|
loaderHandler = !!loaderHandler ? loaderHandler : () => {};
|
|
142
67
|
if (!config?.queries) {
|
|
@@ -169,11 +94,6 @@ export const useRootingActions = () => {
|
|
|
169
94
|
});
|
|
170
95
|
}
|
|
171
96
|
};
|
|
172
|
-
/**
|
|
173
|
-
* 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.
|
|
174
|
-
* @param {ConfigGoAndReloadRoute} config - Paramètre de configuration ou de paramètrage.
|
|
175
|
-
* @type {(config: ConfigGoAndReloadRoute) => void}
|
|
176
|
-
*/
|
|
177
97
|
const goAndReloadRoute = (config, loaderHandler = () => {}) => {
|
|
178
98
|
loaderHandler = !!loaderHandler ? loaderHandler : () => {};
|
|
179
99
|
if (!config?.queries) {
|
|
@@ -188,11 +108,7 @@ export const useRootingActions = () => {
|
|
|
188
108
|
lang
|
|
189
109
|
};
|
|
190
110
|
config.queries = Object.fromEntries(Object.entries(config.queries || {}).filter(([key, value]) => value !== undefined && value !== null));
|
|
191
|
-
config.params = Object.fromEntries(Object.entries(config.params || {}).filter(([key, value]) => value !== undefined && value !== null))
|
|
192
|
-
// goToRoute({
|
|
193
|
-
// ...config,
|
|
194
|
-
// refreshPage: false,
|
|
195
|
-
// })
|
|
111
|
+
config.params = Object.fromEntries(Object.entries(config.params || {}).filter(([key, value]) => value !== undefined && value !== null))
|
|
196
112
|
const url = resolveRoute(config);
|
|
197
113
|
window.location = url;
|
|
198
114
|
if (typeof !!config?.enableLoader === 'undefined' && typeof !!config?.enableLoader === 'boolean' && !!config?.enableLoader) {
|
package/rooting.hooks.tsx
CHANGED
|
@@ -4,9 +4,7 @@ import { getLang } from './utils';
|
|
|
4
4
|
import { qust, Qust } from '@arc-js/qust';
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
9
|
-
*/
|
|
7
|
+
|
|
10
8
|
export interface ConfigGoToSpecificUrl {
|
|
11
9
|
path?: string;
|
|
12
10
|
queries?: any;
|
|
@@ -15,34 +13,26 @@ export interface ConfigGoToSpecificUrl {
|
|
|
15
13
|
enableLoader?: boolean;
|
|
16
14
|
};
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
* Cette fonction permet de recuperer tous les parameters de l'url
|
|
20
|
-
*/
|
|
16
|
+
|
|
21
17
|
function getParams() {
|
|
22
18
|
const queryString = window.location.search;
|
|
23
19
|
const urlParams = new URLSearchParams(queryString);
|
|
24
20
|
return urlParams;
|
|
25
21
|
};
|
|
26
|
-
|
|
27
|
-
* Interface du paramètre de configuration de la fonction "goAndReloadRoute" .
|
|
28
|
-
*/
|
|
22
|
+
|
|
29
23
|
export interface ConfigGoAndReloadRoute {
|
|
30
24
|
path?: string;
|
|
31
25
|
params?: any;
|
|
32
26
|
queries?: any;
|
|
33
27
|
enableLoader?: boolean;
|
|
34
28
|
};
|
|
35
|
-
|
|
36
|
-
* Interface du paramètre de configuration de la fonction "resolveRoute" .
|
|
37
|
-
*/
|
|
29
|
+
|
|
38
30
|
export interface ConfigResolveRoute {
|
|
39
31
|
path?: string;
|
|
40
32
|
params?: any;
|
|
41
33
|
queries?: any;
|
|
42
34
|
};
|
|
43
|
-
|
|
44
|
-
* Interface du paramètre de configuration de la fonction "goToRoute" .
|
|
45
|
-
*/
|
|
35
|
+
|
|
46
36
|
export interface ConfigGoToRoute {
|
|
47
37
|
path?: string;
|
|
48
38
|
params?: any;
|
|
@@ -51,9 +41,7 @@ export interface ConfigGoToRoute {
|
|
|
51
41
|
replace?: boolean;
|
|
52
42
|
enableLoader?: boolean;
|
|
53
43
|
};
|
|
54
|
-
|
|
55
|
-
* Interface de retour du hooks "useRootingActions".
|
|
56
|
-
*/
|
|
44
|
+
|
|
57
45
|
export interface RootingActionReturns {
|
|
58
46
|
params: Readonly<Params<string>>;
|
|
59
47
|
queries: any;
|
|
@@ -76,12 +64,7 @@ export interface RootingActionReturns {
|
|
|
76
64
|
}
|
|
77
65
|
|
|
78
66
|
|
|
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
|
-
*/
|
|
67
|
+
|
|
85
68
|
export function nativeResolveRoute(config: ConfigResolveRoute, incorrectUrl: string = "") {
|
|
86
69
|
try {
|
|
87
70
|
const params = (
|
|
@@ -123,43 +106,19 @@ export function nativeResolveRoute(config: ConfigResolveRoute, incorrectUrl: str
|
|
|
123
106
|
}
|
|
124
107
|
};
|
|
125
108
|
|
|
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
|
-
*/
|
|
109
|
+
|
|
139
110
|
export const useRootingActions = () => {
|
|
140
111
|
const location = useLocation();
|
|
141
112
|
const pathname = location.pathname;
|
|
142
|
-
|
|
143
|
-
* L'ensemble des parametres de la route
|
|
144
|
-
* @type {Readonly<Params<string>>}
|
|
145
|
-
*/
|
|
113
|
+
|
|
146
114
|
const params = useParams();
|
|
147
|
-
|
|
148
|
-
* L'url de la route courante
|
|
149
|
-
* @type {string}
|
|
150
|
-
*/
|
|
115
|
+
|
|
151
116
|
const pathName = useLocation().pathname;
|
|
152
|
-
|
|
153
|
-
* La chaîne de caractères contenant les query parameters
|
|
154
|
-
* @type {string}
|
|
155
|
-
*/
|
|
117
|
+
|
|
156
118
|
const urlSearch = useLocation().search;
|
|
157
119
|
const paramsData = new URLSearchParams(useLocation().search);
|
|
158
120
|
|
|
159
|
-
|
|
160
|
-
* L'ensemble des query parameters de la route
|
|
161
|
-
* @type {any}
|
|
162
|
-
*/
|
|
121
|
+
|
|
163
122
|
let queries: any = {};
|
|
164
123
|
for (const key of paramsData.keys()) {
|
|
165
124
|
const valueParamsData: any = (
|
|
@@ -172,21 +131,12 @@ export const useRootingActions = () => {
|
|
|
172
131
|
}
|
|
173
132
|
const navigate = useNavigate();
|
|
174
133
|
|
|
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
|
-
*/
|
|
134
|
+
|
|
181
135
|
const resolveRoute = (config: ConfigResolveRoute) => {
|
|
182
136
|
const incorrectUrl = pathName;
|
|
183
137
|
return nativeResolveRoute(config, incorrectUrl);
|
|
184
138
|
};
|
|
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
|
-
*/
|
|
139
|
+
|
|
190
140
|
const goToRoute = (
|
|
191
141
|
config: ConfigGoToRoute,
|
|
192
142
|
loaderHandler = () => {},
|
|
@@ -239,11 +189,7 @@ export const useRootingActions = () => {
|
|
|
239
189
|
);
|
|
240
190
|
}
|
|
241
191
|
};
|
|
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
|
-
*/
|
|
192
|
+
|
|
247
193
|
const goAndReloadRoute = (
|
|
248
194
|
config: ConfigGoAndReloadRoute,
|
|
249
195
|
loaderHandler = () => {},
|
|
@@ -266,10 +212,10 @@ export const useRootingActions = () => {
|
|
|
266
212
|
config.params = Object.fromEntries(
|
|
267
213
|
Object.entries(config.params || {}).filter(([key, value]) => value !== undefined && value !== null)
|
|
268
214
|
);
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
|
|
273
219
|
const url = resolveRoute(config);
|
|
274
220
|
|
|
275
221
|
window.location = url as string & Location;
|