react-fs-router 0.2.9 → 0.2.13

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/.babelrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "presets": ["@babel/preset-env", "@babel/preset-react"]
3
+ }
package/bin/index.js CHANGED
@@ -9,7 +9,13 @@ program.storeOptionsAsProperties(name);
9
9
 
10
10
  program.version(version, "-v --version", "Output the current version");
11
11
 
12
- program.requiredOption("-p,--path <path>", "Path to your pages folder");
12
+ program.requiredOption("-p,--page <page>", "Path to your pages folder");
13
+ program.requiredOption(
14
+ "-c,--configs <configs>",
15
+ "Path to store generated files"
16
+ );
13
17
  program.parse(process.argv);
14
18
 
15
- genPath(program.path);
19
+ genPath(program.page, program.configs);
20
+
21
+ module.exports = { configs_path: program.configs };
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "react-fs-router",
3
- "version": "0.2.9",
3
+ "version": "0.2.13",
4
4
  "description": "File-system based routing for React.",
5
5
  "main": "./bin/index.js",
6
6
  "git repository": "https://github.com/Mehran9675/react-filesystem-routing",
7
7
  "scripts": {
8
- "test": "node ./bin/index.js -p ./pages",
8
+ "test": "node ./bin/index.js -p ./pages -c ./configs",
9
9
  "build": "npx -p typescript tsc"
10
10
  },
11
11
  "keywords": [
@@ -19,7 +19,6 @@
19
19
  "dependencies": {
20
20
  "chokidar": "^3.5.2",
21
21
  "commander": "^8.2.0",
22
- "node": "^16.10.0",
23
22
  "react": "^17.0.2",
24
23
  "react-router-dom": "^5.3.0"
25
24
  },
@@ -28,7 +27,6 @@
28
27
  "rfr": "./bin/index.js"
29
28
  },
30
29
  "devDependencies": {
31
- "@types/node": "^16.10.5",
32
30
  "typescript": "^4.4.4",
33
31
  "prettier": "^2.4.1"
34
32
  }
package/src/Route.js CHANGED
@@ -1,35 +1,44 @@
1
- import { routes } from "./routeConfigs";
2
- import * as Pages from "./routes";
3
- import React, { useState, useEffect } from "react";
4
- import { Route, Switch } from "react-router-dom";
5
-
6
- export default function Route() {
7
- const [pages, setPages] = useState();
8
- const randomStr = () => (Math.random() + 1).toString(36).substring(7);
9
-
10
- useEffect(() => {
11
- setPages(renderConponents(Pages));
12
- }, []);
13
-
14
- function renderComponent(key, module) {
15
- return module[key] || module["default"] || module;
16
- }
17
-
18
- function renderConponents(imports) {
19
- let renders = [];
20
- for (const [key, Value] of Object.entries(imports)) {
21
- const Component = renderComponent(key, Value);
22
- const route = routes.filter(
23
- (config) => config?.component === Component?.name
24
- )[0];
25
-
26
- renders.push(
27
- <Route exact={true} key={randomStr()} path={route?.path || ""}>
28
- <Component />
29
- </Route>
30
- );
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ exports.__esModule = true;
14
+ var jsx_runtime_1 = require("react/jsx-runtime");
15
+ var configs_path = require("../bin/index").configs_path;
16
+ var routes = require(configs_path + "/routeConfigs.js").routes;
17
+ var Pages = require(configs_path + "/route.js");
18
+ var react_1 = require("react");
19
+ var react_router_dom_1 = require("react-router-dom");
20
+ function Route() {
21
+ var _a = (0, react_1.useState)(), pages = _a[0], setPages = _a[1];
22
+ var randomStr = function () { return (Math.random() + 1).toString(36).substring(7); };
23
+ (0, react_1.useEffect)(function () {
24
+ setPages(renderConponents(Pages));
25
+ }, []);
26
+ function renderComponent(key, module) {
27
+ return module[key] || module["default"] || module;
31
28
  }
32
- return renders;
33
- }
34
- return <Switch>{pages}</Switch>;
29
+ function renderConponents(imports) {
30
+ var renders = [];
31
+ var _loop_1 = function (key, Value) {
32
+ var Component = renderComponent(key, Value);
33
+ var route = routes.filter(function (config) { return (config === null || config === void 0 ? void 0 : config.component) === (Component === null || Component === void 0 ? void 0 : Component.name); })[0];
34
+ renders.push((0, jsx_runtime_1.jsx)(react_router_dom_1.Route, __assign({ exact: true, path: (route === null || route === void 0 ? void 0 : route.path) || "" }, { children: (0, jsx_runtime_1.jsx)(Component, {}, void 0) }), randomStr()));
35
+ };
36
+ for (var _i = 0, _a = Object.entries(imports); _i < _a.length; _i++) {
37
+ var _b = _a[_i], key = _b[0], Value = _b[1];
38
+ _loop_1(key, Value);
39
+ }
40
+ return renders;
41
+ }
42
+ return (0, jsx_runtime_1.jsx)(react_router_dom_1.Switch, { children: pages }, void 0);
35
43
  }
44
+ exports["default"] = Route;
package/src/Route.tsx ADDED
@@ -0,0 +1,37 @@
1
+ const { configs_path } = require("../bin/index");
2
+ const { routes } = require(configs_path + "/routeConfigs.js");
3
+ const Pages = require(configs_path + "/route.js");
4
+
5
+ import React, { useState, useEffect } from "react";
6
+ import { Route, Switch } from "react-router-dom";
7
+
8
+ export default function Route() {
9
+ const [pages, setPages] = useState();
10
+ const randomStr = () => (Math.random() + 1).toString(36).substring(7);
11
+
12
+ useEffect(() => {
13
+ setPages(renderConponents(Pages));
14
+ }, []);
15
+
16
+ function renderComponent(key, module) {
17
+ return module[key] || module["default"] || module;
18
+ }
19
+
20
+ function renderConponents(imports) {
21
+ let renders = [];
22
+ for (const [key, Value] of Object.entries(imports)) {
23
+ const Component = renderComponent(key, Value);
24
+ const route = routes.filter(
25
+ (config) => config?.component === Component?.name
26
+ )[0];
27
+
28
+ renders.push(
29
+ <Route exact={true} key={randomStr()} path={route?.path || ""}>
30
+ <Component />
31
+ </Route>
32
+ );
33
+ }
34
+ return renders;
35
+ }
36
+ return <Switch>{pages}</Switch>;
37
+ }
package/src/genPath.js CHANGED
@@ -4,7 +4,7 @@ const chokidar = require("chokidar");
4
4
 
5
5
  let isNotThefirstTimeRunning = true;
6
6
 
7
- module.exports = (page_directory) => {
7
+ module.exports = (page_directory, configs_directory) => {
8
8
  const pathMaker = () => {
9
9
  const readDirectory = (directory, includeDirectory) => {
10
10
  const pages = {};
@@ -107,7 +107,7 @@ module.exports = (page_directory) => {
107
107
  .join("")}};`;
108
108
 
109
109
  fs.writeFileSync(
110
- "./node_modules/react-fs-router/dist/src/generated/routeConfigs.js",
110
+ configs_directory + "/routeConfigs.js",
111
111
  prettier.format(_config, { semi: false, parser: "babel" }),
112
112
  (err) => {
113
113
  if (err) return console.error(err);
@@ -115,7 +115,7 @@ module.exports = (page_directory) => {
115
115
  );
116
116
 
117
117
  fs.writeFileSync(
118
- "./node_modules/react-fs-router/dist/src/generated/route.js",
118
+ configs_directory + "/route.js",
119
119
  prettier.format(_routes, { semi: false, parser: "babel" }),
120
120
  (err) => {
121
121
  if (err) return console.error(err);