@arc-js/core 0.0.30 → 0.0.50
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/README.md +1 -3
- package/minimal-config.js +4 -4
- package/minimal-config.min.js +1 -1
- package/package.json +6 -3
- package/routes-utils.js +21 -21
- package/routes-utils.min.js +1 -1
- package/vite.config.ts +14 -0
package/README.md
CHANGED
package/minimal-config.js
CHANGED
|
@@ -18,13 +18,13 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
const configModules = import.meta.glob([
|
|
21
|
-
'
|
|
22
|
-
'
|
|
21
|
+
'./config.json',
|
|
22
|
+
'./modules/**/config.json'
|
|
23
23
|
]);
|
|
24
24
|
function cleanPathConfig(filePath) {
|
|
25
25
|
return filePath
|
|
26
|
-
.replace(
|
|
27
|
-
.replace(
|
|
26
|
+
.replace(/^\./, '')
|
|
27
|
+
.replace(/^\.\/modules\//, '')
|
|
28
28
|
.replace(/^\/modules\//, '')
|
|
29
29
|
.replace(/config\.json$/, '');
|
|
30
30
|
}
|
package/minimal-config.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function __awaiter(t,a,r,u){return new(r=r||Promise)(function(e,n){function i(t){try{l(u.next(t))}catch(t){n(t)}}function o(t){try{l(u.throw(t))}catch(t){n(t)}}function l(t){var n;t.done?e(t.value):((n=t.value)instanceof r?n:new r(function(t){t(n)})).then(i,o)}l((u=u.apply(t,a||[])).next())})}let configModules=import.meta.glob(["
|
|
1
|
+
function __awaiter(t,a,r,u){return new(r=r||Promise)(function(e,n){function i(t){try{l(u.next(t))}catch(t){n(t)}}function o(t){try{l(u.throw(t))}catch(t){n(t)}}function l(t){var n;t.done?e(t.value):((n=t.value)instanceof r?n:new r(function(t){t(n)})).then(i,o)}l((u=u.apply(t,a||[])).next())})}let configModules=import.meta.glob(["./config.json","./modules/**/config.json"]);function cleanPathConfig(t){return t.replace(/^\./,"").replace(/^\.\/modules\//,"").replace(/^\/modules\//,"").replace(/config\.json$/,"")}function filePathToConfigPath(t,n=!1){let e=(n="boolean"==typeof n&&n)?t.replace(/config\.json$/,""):cleanPathConfig(t);return(e=e.split("/").filter(t=>"string"==typeof t&&0<t.length).join("/")).startsWith("/")?e:("/"+e).split("//").join("/")}function getAllConfig(){return __awaiter(this,void 0,void 0,function*(){return yield Promise.all(Object.entries(configModules).map(t=>__awaiter(this,[t],void 0,function*([t,n]){var e=filePathToConfigPath(t,!0).split("/").join("/"),i=filePathToConfigPath(t),o="string"==typeof(o=i.split("/").filter((t,n,e)=>0<n).join("/"))&&0<o.length?o:void 0,n=(yield n()).default;return{parentTruePath:e,truePath:t,path:i,name:o,description:void 0,config:"object"==typeof n&&!Array.isArray(n)&&0<Object.keys(n).length?{path:"string"==typeof(null==n?void 0:n.path)&&0<(null==n?void 0:n.path.length)?null==n?void 0:n.path:i,name:"string"==typeof(null==n?void 0:n.name)&&0<(null==n?void 0:n.name.length)?null==n?void 0:n.name:o,description:!("string"==typeof(null==n?void 0:n.description)&&0<(null==n?void 0:n.description.length))||null==n?void 0:n.description,author:!("string"==typeof(null==n?void 0:n.author)&&0<(null==n?void 0:n.author.length))||null==n?void 0:n.author,isEnabled:"boolean"!=typeof(null==n?void 0:n.isEnabled)||(null==n?void 0:n.isEnabled)}:{path:i,name:o,author:void 0,isEnabled:!0}}})))})}function findConfigModuleRoute(n,t){return null==(t=t.sort((t,n)=>t.truePath.split("/").length>n.truePath.split("/").length?-1:t.truePath.split("/").length<n.truePath.split("/").length?1:0).find(t=>0===n.truePath.indexOf(t.parentTruePath)))?void 0:t.config}export{cleanPathConfig,configModules,filePathToConfigPath,findConfigModuleRoute,getAllConfig};
|
|
2
2
|
//# sourceMappingURL=minimal-config.min.js.map
|
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.50",
|
|
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": [],
|
|
@@ -14,12 +14,15 @@
|
|
|
14
14
|
"login": "npm login"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"
|
|
17
|
+
"@vitejs/plugin-react": "^4.3.4",
|
|
18
|
+
"vite": "^6.4.1"
|
|
18
19
|
},
|
|
19
20
|
"dependencies": {
|
|
20
21
|
"react-router-dom": "^7.11.0",
|
|
21
22
|
"react": "^19.2.3",
|
|
22
23
|
"react-dom": "^19.2.3",
|
|
23
|
-
"
|
|
24
|
+
"vite-plugin-html": "^3.2.2",
|
|
25
|
+
"vite-tsconfig-paths": "^5.1.4",
|
|
26
|
+
"@arc-js/qust": "^0.0.3"
|
|
24
27
|
}
|
|
25
28
|
}
|
package/routes-utils.js
CHANGED
|
@@ -18,13 +18,13 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
const configModules = import.meta.glob([
|
|
21
|
-
'
|
|
22
|
-
'
|
|
21
|
+
'./config.json',
|
|
22
|
+
'./modules/**/config.json'
|
|
23
23
|
]);
|
|
24
24
|
function cleanPathConfig(filePath) {
|
|
25
25
|
return filePath
|
|
26
|
-
.replace(
|
|
27
|
-
.replace(
|
|
26
|
+
.replace(/^\./, '')
|
|
27
|
+
.replace(/^\.\/modules\//, '')
|
|
28
28
|
.replace(/^\/modules\//, '')
|
|
29
29
|
.replace(/config\.json$/, '');
|
|
30
30
|
}
|
|
@@ -87,22 +87,22 @@ function findConfigModuleRoute(route, configDatas) {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
const errorPageName = '_error';
|
|
90
|
-
const defaultErrorPath = '
|
|
90
|
+
const defaultErrorPath = './pages/_error';
|
|
91
91
|
const notFoundPageName = '_404';
|
|
92
92
|
const notFoundPagePath = '*';
|
|
93
|
-
const defaultLayoutPath = '
|
|
93
|
+
const defaultLayoutPath = './pages/_layout';
|
|
94
94
|
const layoutName = '_layout';
|
|
95
95
|
const indexPageName = 'index';
|
|
96
96
|
const indexPageRule = /\/index$/;
|
|
97
97
|
const indexPagePath = '/';
|
|
98
98
|
const pageModules = import.meta.glob([
|
|
99
|
-
'
|
|
100
|
-
'
|
|
99
|
+
'./pages/**/*.tsx',
|
|
100
|
+
'./modules/**/pages/**/*.tsx'
|
|
101
101
|
]);
|
|
102
102
|
function cleanPathPage(filePath) {
|
|
103
103
|
return filePath
|
|
104
|
-
.replace(
|
|
105
|
-
.replace(
|
|
104
|
+
.replace(/^\.\/pages\//, '')
|
|
105
|
+
.replace(/^\.\/modules\//, '')
|
|
106
106
|
.replace(/\/pages\//, '/')
|
|
107
107
|
.replace(/\.tsx$/, '')
|
|
108
108
|
.replace(/\{([^\]]+)\}/g, ':$1');
|
|
@@ -125,8 +125,8 @@ function findLayoutForPage(filePath) {
|
|
|
125
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
126
126
|
var _a, _b;
|
|
127
127
|
const layoutPath = filePath.replace(/\/pages\/.*\.tsx$/, `/pages/${layoutName}.tsx`);
|
|
128
|
-
const layoutModules = import.meta.glob('
|
|
129
|
-
const defaultLayoutModules = import.meta.glob('
|
|
128
|
+
const layoutModules = import.meta.glob('./modules/**/_layout.tsx', { eager: true });
|
|
129
|
+
const defaultLayoutModules = import.meta.glob('./pages/_layout.tsx', { eager: true });
|
|
130
130
|
return ((_a = layoutModules[layoutPath]) === null || _a === void 0 ? void 0 : _a.default) || ((_b = defaultLayoutModules[`${defaultLayoutPath}.tsx`]) === null || _b === void 0 ? void 0 : _b.default);
|
|
131
131
|
});
|
|
132
132
|
}
|
|
@@ -134,10 +134,10 @@ function findErrorForPage(filePath) {
|
|
|
134
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
135
|
var _a, _b, _c;
|
|
136
136
|
const errorPath = filePath.replace(/\/pages\/.*\.tsx$/, `/pages/${errorPageName}.tsx`);
|
|
137
|
-
const errorModules = import.meta.glob("
|
|
138
|
-
const defaultErrorModules = import.meta.glob("
|
|
137
|
+
const errorModules = import.meta.glob("./modules/**/_error.tsx", { eager: true });
|
|
138
|
+
const defaultErrorModules = import.meta.glob("./pages/_error.tsx", { eager: true });
|
|
139
139
|
if (((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'debug') {
|
|
140
|
-
console.log(`[
|
|
140
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] findErrorForPage | datas:: `, JSON.stringify({
|
|
141
141
|
filePath,
|
|
142
142
|
errorPath,
|
|
143
143
|
}));
|
|
@@ -148,7 +148,7 @@ function findErrorForPage(filePath) {
|
|
|
148
148
|
function findErrorForPageLink(filePath) {
|
|
149
149
|
return __awaiter(this, void 0, void 0, function* () {
|
|
150
150
|
const errorPath = filePath.replace(/\/pages\/.*\.tsx$/, `/pages/${errorPageName}.tsx`);
|
|
151
|
-
return cleanPathPage(errorPath).split('
|
|
151
|
+
return cleanPathPage(errorPath).split('./').join('');
|
|
152
152
|
});
|
|
153
153
|
}
|
|
154
154
|
function nearestRoute(targetRoute, routes) {
|
|
@@ -177,7 +177,7 @@ function getRoutes() {
|
|
|
177
177
|
var _a, _b, _c;
|
|
178
178
|
const configs = yield getAllConfig();
|
|
179
179
|
if (((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'development') {
|
|
180
|
-
console.log(`[
|
|
180
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] getRoutes | configs:: `, configs);
|
|
181
181
|
}
|
|
182
182
|
let routes = yield Promise.all(Object.entries(pageModules).map((_a) => __awaiter(this, [_a], void 0, function* ([filePath, module]) {
|
|
183
183
|
let layout = (!([
|
|
@@ -209,9 +209,9 @@ function getRoutes() {
|
|
|
209
209
|
const layoutRoutes = routes.filter((route) => (!!route.path && (route.path.indexOf('/_layout') !== -1)));
|
|
210
210
|
const errorRoutes = routes.filter((route) => (!!route.path && (route.path.indexOf('/_error') !== -1)));
|
|
211
211
|
if (((_b = process.env) === null || _b === void 0 ? void 0 : _b.NODE_ENV) === 'development') {
|
|
212
|
-
console.log(`[
|
|
213
|
-
console.log(`[
|
|
214
|
-
console.log(`[
|
|
212
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] getRoutes | notFoundRoutes:: `, notFoundRoutes);
|
|
213
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] getRoutes | routes:: `, routes);
|
|
214
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] getRoutes | layoutRoutes:: `, layoutRoutes);
|
|
215
215
|
}
|
|
216
216
|
routes = routes.map((route) => {
|
|
217
217
|
var _a, _b;
|
|
@@ -228,7 +228,7 @@ function getRoutes() {
|
|
|
228
228
|
return route;
|
|
229
229
|
});
|
|
230
230
|
if (((_c = process.env) === null || _c === void 0 ? void 0 : _c.NODE_ENV) === 'development') {
|
|
231
|
-
console.log(`[
|
|
231
|
+
console.log(`[@arc-js -> core -> rooter -> routes-utils] getRoutes | routesF:: `, routesF);
|
|
232
232
|
}
|
|
233
233
|
return routesF;
|
|
234
234
|
});
|
package/routes-utils.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function __awaiter(t,l,r,u){return new(r=r||Promise)(function(n,e){function a(t){try{o(u.next(t))}catch(t){e(t)}}function i(t){try{o(u.throw(t))}catch(t){e(t)}}function o(t){var e;t.done?n(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(a,i)}o((u=u.apply(t,l||[])).next())})}let configModules=import.meta.glob(["
|
|
1
|
+
function __awaiter(t,l,r,u){return new(r=r||Promise)(function(n,e){function a(t){try{o(u.next(t))}catch(t){e(t)}}function i(t){try{o(u.throw(t))}catch(t){e(t)}}function o(t){var e;t.done?n(t.value):((e=t.value)instanceof r?e:new r(function(t){t(e)})).then(a,i)}o((u=u.apply(t,l||[])).next())})}let configModules=import.meta.glob(["./config.json","./modules/**/config.json"]);function cleanPathConfig(t){return t.replace(/^\./,"").replace(/^\.\/modules\//,"").replace(/^\/modules\//,"").replace(/config\.json$/,"")}function filePathToConfigPath(t,e=!1){let n=(e="boolean"==typeof e&&e)?t.replace(/config\.json$/,""):cleanPathConfig(t);return(n=n.split("/").filter(t=>"string"==typeof t&&0<t.length).join("/")).startsWith("/")?n:("/"+n).split("//").join("/")}function getAllConfig(){return __awaiter(this,void 0,void 0,function*(){return yield Promise.all(Object.entries(configModules).map(t=>__awaiter(this,[t],void 0,function*([t,e]){var n=filePathToConfigPath(t,!0).split("/").join("/"),a=filePathToConfigPath(t),i="string"==typeof(i=a.split("/").filter((t,e,n)=>0<e).join("/"))&&0<i.length?i:void 0,e=(yield e()).default;return{parentTruePath:n,truePath:t,path:a,name:i,description:void 0,config:"object"==typeof e&&!Array.isArray(e)&&0<Object.keys(e).length?{path:"string"==typeof(null==e?void 0:e.path)&&0<(null==e?void 0:e.path.length)?null==e?void 0:e.path:a,name:"string"==typeof(null==e?void 0:e.name)&&0<(null==e?void 0:e.name.length)?null==e?void 0:e.name:i,description:!("string"==typeof(null==e?void 0:e.description)&&0<(null==e?void 0:e.description.length))||null==e?void 0:e.description,author:!("string"==typeof(null==e?void 0:e.author)&&0<(null==e?void 0:e.author.length))||null==e?void 0:e.author,isEnabled:"boolean"!=typeof(null==e?void 0:e.isEnabled)||(null==e?void 0:e.isEnabled)}:{path:a,name:i,author:void 0,isEnabled:!0}}})))})}function findConfigModuleRoute(e,t){return null==(t=t.sort((t,e)=>t.truePath.split("/").length>e.truePath.split("/").length?-1:t.truePath.split("/").length<e.truePath.split("/").length?1:0).find(t=>0===e.truePath.indexOf(t.parentTruePath)))?void 0:t.config}let errorPageName="_error",defaultErrorPath="./pages/_error",notFoundPageName="_404",notFoundPagePath="*",defaultLayoutPath="./pages/_layout",layoutName="_layout",indexPageName="index",indexPageRule=/\/index$/,indexPagePath="/",pageModules=import.meta.glob(["./pages/**/*.tsx","./modules/**/pages/**/*.tsx"]);function cleanPathPage(t){return t.replace(/^\.\/pages\//,"").replace(/^\.\/modules\//,"").replace(/\/pages\//,"/").replace(/\.tsx$/,"").replace(/\{([^\]]+)\}/g,":$1")}function filePathToRoutePath(t){let e=cleanPathPage(t);if(e.endsWith("/"+indexPageName))e=e.replace(indexPageRule,"")||indexPagePath;else if(e===""+indexPageName)e=indexPagePath;else if(e===notFoundPageName)return e=notFoundPagePath;return e.startsWith(indexPagePath)?e:"/"+e}function findLayoutForPage(a){return __awaiter(this,void 0,void 0,function*(){var t=a.replace(/\/pages\/.*\.tsx$/,`/pages/${layoutName}.tsx`),e=import.meta.glob("./modules/**/_layout.tsx",{eager:!0}),n=import.meta.glob("./pages/_layout.tsx",{eager:!0});return(null==(e=e[t])?void 0:e.default)||(null==(t=n[defaultLayoutPath+".tsx"])?void 0:t.default)})}function findErrorForPage(i){return __awaiter(this,void 0,void 0,function*(){var t,e=i.replace(/\/pages\/.*\.tsx$/,`/pages/${errorPageName}.tsx`),n=import.meta.glob("./modules/**/_error.tsx",{eager:!0}),a=import.meta.glob("./pages/_error.tsx",{eager:!0});return null!=(t=process.env)&&t.NODE_ENV,(null==(t=n[e])?void 0:t.default)||(null==(n=a[defaultErrorPath+".tsx"])?void 0:n.default)})}function findErrorForPageLink(t){return __awaiter(this,void 0,void 0,function*(){return cleanPathPage(t.replace(/\/pages\/.*\.tsx$/,`/pages/${errorPageName}.tsx`)).split("./").join("")})}function nearestRoute(n,t){t=t.map(t=>Object.assign(Object.assign({},t),{path:(t.path||"").split("/").filter((t,e,n)=>2<=n.length&&"string"==typeof(null==n?void 0:n[n.length-2])&&(null==n?void 0:n[n.length-2].length)<=0&&e<n.length-2||!(2<=n.length&&"string"==typeof(null==n?void 0:n[n.length-2])&&(null==n?void 0:n[n.length-2].length)<=0)&&e<n.length-1).join("/")})).filter(t=>0===n.path.indexOf(t.path)).sort((t,e)=>t.path.indexOf(n.path)>e.path.indexOf(n.path)?-1:t.path.indexOf(n.path)<e.path.indexOf(n.path)?1:t.path.split("/").length>e.path.split("/").length?-1:t.path.split("/").length<e.path.split("/").length?1:0);return null==t?void 0:t[0]}function getRoutes(){return __awaiter(this,void 0,void 0,function*(){let t,e,n,a=yield getAllConfig(),i=(null==(t=process.env)||t.NODE_ENV,yield Promise.all(Object.entries(pageModules).map(t=>__awaiter(this,[t],void 0,function*([t,e]){var n=[notFoundPageName].map(t=>cleanPathPage(t)).includes(cleanPathPage(t))?void 0:yield findLayoutForPage(t),a=yield findErrorForPage(t),i=(yield findErrorForPageLink(t),filePathToRoutePath(t)),e=(yield e()).default,o=i.split("/").filter((t,e,n)=>"string"==typeof t&&0<t.length&&e<n.length-1).join("/");return{truePath:t,path:i,component:e,layout:n,error:a,pathParent:o}}))));var o=i.filter(t=>!!t.truePath&&0<t.truePath.split("/").filter(t=>-1!==t.indexOf("_404.tsx")).length).map(t=>Object.assign(Object.assign({},t),{path:t.path.split("/").map(t=>t.split("_404").join(notFoundPagePath)).join("/")}));let l=(i=[...i.filter(t=>!(t.truePath&&0<t.truePath.split("/").filter(t=>-1!==t.indexOf("_404.tsx")).length)),...o]).filter(t=>!!t.path&&-1!==t.path.indexOf("/_layout")),r=i.filter(t=>!!t.path&&-1!==t.path.indexOf("/_error"));null!=(e=process.env)&&e.NODE_ENV;o=(i=i.map(t=>{var e;return Object.assign(Object.assign({},t),{layout:(null==(e=nearestRoute(t,l))?void 0:e.component)||t.layout,error:(null==(e=nearestRoute(t,r))?void 0:e.component)||t.error})})).map((t,e)=>{var n=findConfigModuleRoute(t,a);return"string"==typeof(null==n?void 0:n.path)&&0<(null==n?void 0:n.path.length)&&"/"!=(null==n?void 0:n.path)&&(t.path=t.path.split("/").filter((t,e,n)=>1<e).join("/"),t.path=(`${null==n?void 0:n.path}/`+t.path).split("//").join("/")),t});return null!=(n=process.env)&&n.NODE_ENV,o})}let routes=await getRoutes();export{getRoutes,routes};
|
|
2
2
|
//# sourceMappingURL=routes-utils.min.js.map
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineConfig } from 'vite';
|
|
2
|
+
import react from '@vitejs/plugin-react';
|
|
3
|
+
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
plugins: [react()],
|
|
6
|
+
optimizeDeps: {
|
|
7
|
+
include: ['@arc-js/qust']
|
|
8
|
+
},
|
|
9
|
+
resolve: {
|
|
10
|
+
alias: {
|
|
11
|
+
'@arc-js/qust': '@arc-js/qust/index.js'
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
});
|