fs-router-dom 0.0.7 → 0.0.8

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Lightweight file-based router for Vite + React Router DOM, like Next.js.
4
4
 
5
- ## What's New in 0.0.7
5
+ ## What's New in 0.0.8
6
6
 
7
7
  - **Nested Routes**: Routes are now automatically nested, providing better support for `react-router-dom` features and improving route management.
8
8
  - **Nested Layout Support**: Create complex and reusable UI structures with nested layouts that apply to specific sections of your application.
package/dist/FSRouter.js CHANGED
@@ -42,26 +42,26 @@ const build_route_tree_1 = require("./utils/build-route-tree");
42
42
  function FSRouter({ routes, notFoundComponent = (0, jsx_runtime_1.jsx)("div", { children: "404 - Not Found" }), suspenseFallback = (0, jsx_runtime_1.jsx)("div", { children: "Loading..." }), }) {
43
43
  const routeTree = (0, build_route_tree_1.buildRouteTree)(routes);
44
44
  function renderNode(node) {
45
- const Component = node.component ? react_1.default.lazy(node.component) : null;
46
- let element;
47
- if (node.isLayout && Component) {
48
- element = ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: react_1.default.createElement(Component, null, (0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {})) }));
49
- }
50
- else if (Component) {
51
- element = ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: (0, jsx_runtime_1.jsx)(Component, {}) }));
52
- }
53
- else if (node.children.length > 0) {
54
- element = (0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {});
55
- }
56
- else {
57
- element = null; // Fallback for groups
58
- }
59
- return ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: node.segment, element: element, children: node.children.map((child) => renderNode(child)) }));
45
+ const LayoutComponent = node.isLayout && node.component
46
+ ? react_1.default.lazy(node.component)
47
+ : null;
48
+ const PageComponent = !node.isLayout && node.component
49
+ ? react_1.default.lazy(node.component)
50
+ : null;
51
+ const IndexComponent = node.indexComponent
52
+ ? react_1.default.lazy(node.indexComponent)
53
+ : null;
54
+ const element = LayoutComponent ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: react_1.default.createElement(LayoutComponent, null, (0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {})) })) : PageComponent ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: (0, jsx_runtime_1.jsx)(PageComponent, {}) })) : ((0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {}));
55
+ return ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Route, { path: node.segment, element: element, children: [IndexComponent && ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { index: true, element: (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: (0, jsx_runtime_1.jsx)(IndexComponent, {}) }) })), node.children.map((child) => renderNode(child))] }));
60
56
  }
61
- const rootComponent = routeTree.component
57
+ const RootLayout = routeTree.isLayout && routeTree.component
62
58
  ? react_1.default.lazy(routeTree.component)
63
59
  : null;
64
- return ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [rootComponent && ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "/", element: (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: react_1.default.createElement(rootComponent) }) })), routeTree.children.map((child) => renderNode(child)), (0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "*", element: notFoundComponent })] }));
60
+ const RootIndex = routeTree.indexComponent
61
+ ? react_1.default.lazy(routeTree.indexComponent)
62
+ : null;
63
+ const rootElement = RootLayout ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: react_1.default.createElement(RootLayout, null, (0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {})) })) : ((0, jsx_runtime_1.jsx)(react_router_dom_1.Outlet, {}));
64
+ return ((0, jsx_runtime_1.jsxs)(react_router_dom_1.Routes, { children: [(0, jsx_runtime_1.jsxs)(react_router_dom_1.Route, { path: "/", element: rootElement, children: [RootIndex && ((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { index: true, element: (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: suspenseFallback, children: (0, jsx_runtime_1.jsx)(RootIndex, {}) }) })), routeTree.children.map((child) => renderNode(child))] }), (0, jsx_runtime_1.jsx)(react_router_dom_1.Route, { path: "*", element: notFoundComponent })] }));
65
65
  }
66
66
  function FullFSRouter({ routes, notFoundComponent, suspenseFallback, ...browserProps }) {
67
67
  return ((0, jsx_runtime_1.jsx)(react_router_dom_1.BrowserRouter, { ...browserProps, children: (0, jsx_runtime_1.jsx)(FSRouter, { routes: routes, notFoundComponent: notFoundComponent, suspenseFallback: suspenseFallback }) }));
@@ -1 +1 @@
1
- {"version":3,"file":"FSRouter.js","sourceRoot":"","sources":["../src/FSRouter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,4BAwDC;AAMD,oCAeC;;AA/FD,+CAAuD;AACvD,uDAM0B;AAC1B,+DAAqE;AAUrE,SAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,iBAAiB,GAAG,8DAA0B,EAC9C,gBAAgB,GAAG,yDAAqB,GAC1B;IACd,MAAM,SAAS,GAAG,IAAA,iCAAc,EAAC,MAAM,CAAC,CAAC;IAEzC,SAAS,UAAU,CAAC,IAAe;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAiC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAG7F,IAAI,OAAO,CAAC;QACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,OAAO,GAAG,CACR,uBAAC,gBAAQ,IAAC,QAAQ,EAAE,gBAAgB,YACjC,eAAK,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,EAAE,uBAAC,yBAAM,KAAG,CAAC,GACxC,CACZ,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,OAAO,GAAG,CACR,uBAAC,gBAAQ,IAAC,QAAQ,EAAE,gBAAgB,YAClC,uBAAC,SAAS,KAAG,GACJ,CACZ,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,uBAAC,yBAAM,KAAG,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC,CAAC,sBAAsB;QACxC,CAAC;QAED,OAAO,CACL,uBAAC,wBAAK,IAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,YACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAC1C,CACT,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS;QACvC,CAAC,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAiC,CAAC;QACzD,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CACL,wBAAC,yBAAM,eACJ,aAAa,IAAI,CAChB,uBAAC,wBAAK,IACJ,IAAI,EAAC,GAAG,EACR,OAAO,EACL,uBAAC,gBAAQ,IAAC,QAAQ,EAAE,gBAAgB,YACjC,eAAK,CAAC,aAAa,CAAC,aAAa,CAAC,GAC1B,GAEb,CACH,EACA,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACrD,uBAAC,wBAAK,IAAC,IAAI,EAAC,GAAG,EAAC,OAAO,EAAE,iBAAiB,GAAI,IACvC,CACV,CAAC;AACJ,CAAC;AAMD,SAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,GAAG,YAAY,EACG;IAClB,OAAO,CACL,uBAAC,gCAAa,OAAK,YAAY,YAC7B,uBAAC,QAAQ,IACP,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,GAClC,GACY,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"FSRouter.js","sourceRoot":"","sources":["../src/FSRouter.tsx"],"names":[],"mappings":"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"}
@@ -4,5 +4,6 @@ export interface RouteNode {
4
4
  isLayout?: boolean;
5
5
  isRoot: boolean;
6
6
  children: RouteNode[];
7
+ indexComponent?: () => Promise<unknown>;
7
8
  }
8
9
  export declare function buildRouteTree(routes: Record<string, () => Promise<unknown>>): RouteNode;
@@ -4,17 +4,21 @@ exports.buildRouteTree = buildRouteTree;
4
4
  function buildRouteTree(routes) {
5
5
  const root = { segment: "", children: [], isRoot: true };
6
6
  Object.entries(routes).forEach(([fileRoute, importFn]) => {
7
- let path = fileRoute.replace(/.*?\/pages\//, "").replace(/\.[jt]sx?$/, ""); // Strip prefix and extension
8
- const segments = path.split("/").filter(Boolean); // Split into array, remove empty
7
+ let path = fileRoute.replace(/.*?\/pages\//, "").replace(/\.[jt]sx?$/, "");
8
+ const segments = path.split("/").filter(Boolean);
9
9
  let currentNode = root;
10
- segments.forEach((seg, index) => {
11
- if (seg === "index" && segments.length === 1) {
12
- currentNode.segment = "";
10
+ for (let i = 0; i < segments.length; i++) {
11
+ const seg = segments[i];
12
+ if (seg === "index") {
13
+ currentNode.indexComponent = importFn;
14
+ return;
15
+ }
16
+ if (seg === "_layout") {
13
17
  currentNode.component = importFn;
18
+ currentNode.isLayout = true;
14
19
  return;
15
20
  }
16
21
  let cleanSeg = seg.replace(/\[(.*?)\]/g, ":$1"); // Handle [param] -> :param
17
- // Find or create child node for this segment
18
22
  let child = currentNode.children.find((c) => c.segment === cleanSeg);
19
23
  if (!child) {
20
24
  child = {
@@ -24,15 +28,11 @@ function buildRouteTree(routes) {
24
28
  };
25
29
  currentNode.children.push(child);
26
30
  }
27
- if (seg === "_layout") {
28
- child.isLayout = true;
29
- }
30
- // If last segment, assign component
31
- if (index === segments.length - 1) {
31
+ if (i === segments.length - 1) {
32
32
  child.component = importFn;
33
33
  }
34
34
  currentNode = child;
35
- });
35
+ }
36
36
  });
37
37
  return root;
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-route-tree.js","sourceRoot":"","sources":["../../src/utils/build-route-tree.tsx"],"names":[],"mappings":";;AAQA,wCA4CC;AA5CD,SAAgB,cAAc,CAC5B,MAA8C;IAE9C,MAAM,IAAI,GAAc,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEpE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;QACvD,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,6BAA6B;QAEzG,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;QAEnF,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;YAC9C,IAAI,GAAG,KAAK,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,WAAW,CAAC,OAAO,GAAG,EAAE,CAAC;gBACzB,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;YAE5E,6CAA6C;YAC7C,IAAI,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG;oBACN,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,EAAE;iBACb,CAAC;gBACF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,oCAAoC;YACpC,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAED,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"build-route-tree.js","sourceRoot":"","sources":["../../src/utils/build-route-tree.tsx"],"names":[],"mappings":";;AASA,wCA6CC;AA7CD,SAAgB,cAAc,CAC5B,MAA8C;IAE9C,MAAM,IAAI,GAAc,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAEpE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;QACvD,IAAI,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAE3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,WAAW,GAAG,IAAI,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,WAAW,CAAC,cAAc,GAAG,QAAQ,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC;gBACjC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,IAAI,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,2BAA2B;YAE5E,IAAI,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;YACrE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG;oBACN,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,EAAE;iBACb,CAAC;gBACF,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAED,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fs-router-dom",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "Lightweight file-based router for Vite + react-router-dom, inspired by Next.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",