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 +6 -0
- package/dist/index.cjs +12 -8
- package/dist/index.mjs +12 -8
- package/package.json +1 -1
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
|
-
|
|
77
|
+
let simplifiedRouter = {};
|
|
78
78
|
for (const key in router) {
|
|
79
|
-
if (
|
|
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
|
|
91
|
-
return "~orpc" in obj
|
|
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
|
|
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
|
-
|
|
71
|
+
let simplifiedRouter = {};
|
|
72
72
|
for (const key in router) {
|
|
73
|
-
if (
|
|
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
|
|
85
|
-
return "~orpc" in obj
|
|
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
|
|
91
|
+
function isSingleChild(obj) {
|
|
88
92
|
const keys = Object.keys(obj);
|
|
89
93
|
return keys.length === 1;
|
|
90
94
|
}
|
package/package.json
CHANGED