orpc-file-based-router 0.0.3 → 0.0.5

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,6 +2,8 @@
2
2
 
3
3
  A plugin for [oRPC](https://orpc.unnoq.com) that automatically creates an oRPC router configuration based on your file structure.
4
4
 
5
+ > ⚠️ **IMPORTANT:** Works only at nodejs runtime
6
+
5
7
  ## Installation
6
8
 
7
9
  ```bash
@@ -13,6 +15,7 @@ yarn add orpc-file-based-router
13
15
  ## Usage
14
16
 
15
17
  ```typescript
18
+ import { RPCHandler } from '@orpc/server/node'
16
19
  import { generateRouter } from 'orpc-file-based-router'
17
20
 
18
21
  const routesDir = new URL('./routes', import.meta.url).pathname
@@ -73,3 +76,6 @@ export const router = {
73
76
  }
74
77
  ```
75
78
 
79
+ ## License
80
+
81
+ MIT
package/dist/index.cjs CHANGED
@@ -74,23 +74,27 @@ function buildRouter(routes, mapper) {
74
74
  return simplifyRouter(router);
75
75
  }
76
76
  function simplifyRouter(router) {
77
- const simplifiedRouter = {};
77
+ let simplifiedRouter = {};
78
78
  for (const key in router) {
79
- if (typeof router[key] === "string" || isORPCProcedure(router, key)) {
79
+ if (isLeaf(router[key])) {
80
80
  simplifiedRouter[key] = router[key];
81
- } else if (typeof router[key] === "object" && isSingleLeaf(router[key])) {
82
- const childKey = Object.keys(router[key])[0];
83
- simplifiedRouter[key] = router[key][childKey];
84
81
  } else {
85
82
  simplifiedRouter[key] = simplifyRouter(router[key]);
83
+ if (isSingleChild(simplifiedRouter[key])) {
84
+ const childKey = Object.keys(simplifiedRouter[key])[0];
85
+ simplifiedRouter[key] = simplifiedRouter[key][childKey];
86
+ }
86
87
  }
87
88
  }
88
89
  return simplifiedRouter;
89
90
  }
90
- function isORPCProcedure(obj, key) {
91
- return "~orpc" in obj[key];
91
+ function isORPCProcedure(obj) {
92
+ return "~orpc" in obj;
93
+ }
94
+ function isLeaf(obj) {
95
+ return typeof obj === "string" || isORPCProcedure(obj);
92
96
  }
93
- function isSingleLeaf(obj) {
97
+ function isSingleChild(obj) {
94
98
  const keys = Object.keys(obj);
95
99
  return keys.length === 1;
96
100
  }
package/dist/index.mjs CHANGED
@@ -68,23 +68,27 @@ function buildRouter(routes, mapper) {
68
68
  return simplifyRouter(router);
69
69
  }
70
70
  function simplifyRouter(router) {
71
- const simplifiedRouter = {};
71
+ let simplifiedRouter = {};
72
72
  for (const key in router) {
73
- if (typeof router[key] === "string" || isORPCProcedure(router, key)) {
73
+ if (isLeaf(router[key])) {
74
74
  simplifiedRouter[key] = router[key];
75
- } else if (typeof router[key] === "object" && isSingleLeaf(router[key])) {
76
- const childKey = Object.keys(router[key])[0];
77
- simplifiedRouter[key] = router[key][childKey];
78
75
  } else {
79
76
  simplifiedRouter[key] = simplifyRouter(router[key]);
77
+ if (isSingleChild(simplifiedRouter[key])) {
78
+ const childKey = Object.keys(simplifiedRouter[key])[0];
79
+ simplifiedRouter[key] = simplifiedRouter[key][childKey];
80
+ }
80
81
  }
81
82
  }
82
83
  return simplifiedRouter;
83
84
  }
84
- function isORPCProcedure(obj, key) {
85
- return "~orpc" in obj[key];
85
+ function isORPCProcedure(obj) {
86
+ return "~orpc" in obj;
87
+ }
88
+ function isLeaf(obj) {
89
+ return typeof obj === "string" || isORPCProcedure(obj);
86
90
  }
87
- function isSingleLeaf(obj) {
91
+ function isSingleChild(obj) {
88
92
  const keys = Object.keys(obj);
89
93
  return keys.length === 1;
90
94
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orpc-file-based-router",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "File-based router plugin for oRPC - automatically generate oRPC router from your file structure",
5
5
  "author": "zeeeeby",
6
6
  "license": "MIT",