@xxxaz/json-rpc-schema-typing 0.10.28 → 0.10.29
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.
|
@@ -36,6 +36,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.FileSystemRouter = void 0;
|
|
37
37
|
const fs_1 = require("fs");
|
|
38
38
|
const JsonRpcRouter_js_1 = require("./JsonRpcRouter.js");
|
|
39
|
+
function parsePathFilter(filter) {
|
|
40
|
+
if (!filter)
|
|
41
|
+
return () => true;
|
|
42
|
+
if (filter instanceof RegExp) {
|
|
43
|
+
return (path) => filter.test(path);
|
|
44
|
+
}
|
|
45
|
+
return filter;
|
|
46
|
+
}
|
|
39
47
|
class FileSystemRouter extends JsonRpcRouter_js_1.JsonRpcRouter {
|
|
40
48
|
rootDir;
|
|
41
49
|
constructor(rootDir, options = {}) {
|
|
@@ -46,7 +54,7 @@ class FileSystemRouter extends JsonRpcRouter_js_1.JsonRpcRouter {
|
|
|
46
54
|
const stat = (0, fs_1.lstatSync)(rootDir);
|
|
47
55
|
if (!stat.isDirectory())
|
|
48
56
|
throw new Error(`Not a directory: ${rootDir}`);
|
|
49
|
-
this.#pathFilter = options.pathFilter;
|
|
57
|
+
this.#pathFilter = parsePathFilter(options.pathFilter);
|
|
50
58
|
}
|
|
51
59
|
#pathFilter;
|
|
52
60
|
// instanceof JsonRpcMethodDefinition だと参照先モジュールが複数存在した際に一致しなくなる
|
|
@@ -69,14 +77,8 @@ class FileSystemRouter extends JsonRpcRouter_js_1.JsonRpcRouter {
|
|
|
69
77
|
: (0, fs_1.existsSync)(`${path}.ts`)
|
|
70
78
|
? `${path}.ts`
|
|
71
79
|
: null;
|
|
72
|
-
if (!filePath)
|
|
80
|
+
if (!filePath || !this.#pathFilter(filePath)) {
|
|
73
81
|
return this.#cache[methodPath] = null;
|
|
74
|
-
if (this.#pathFilter) {
|
|
75
|
-
const pass = this.#pathFilter instanceof RegExp
|
|
76
|
-
? this.#pathFilter.test(filePath)
|
|
77
|
-
: this.#pathFilter(filePath);
|
|
78
|
-
if (!pass)
|
|
79
|
-
return this.#cache[methodPath] = null;
|
|
80
82
|
}
|
|
81
83
|
try {
|
|
82
84
|
const module = await Promise.resolve(`${filePath}`).then(s => __importStar(require(s)));
|
|
@@ -110,6 +112,8 @@ class FileSystemRouter extends JsonRpcRouter_js_1.JsonRpcRouter {
|
|
|
110
112
|
}
|
|
111
113
|
async *enumerate() {
|
|
112
114
|
for (const name of (0, fs_1.readdirSync)(this.rootDir)) {
|
|
115
|
+
if (!this.#pathFilter(name))
|
|
116
|
+
continue;
|
|
113
117
|
yield name.replace(/\.(js|ts)$/, '');
|
|
114
118
|
}
|
|
115
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2BAAwD;AAExD,yDAAmD;AAUnD,MAAa,gBAAsB,SAAQ,gCAAkB;IAC5B;IAA7B,YAA6B,OAAe,EAAE,UAAmC,EAAE;QAC/E,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAQ;QAExC,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,IAAA,cAAS,EAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { lstatSync, readdirSync, existsSync } from 'fs';
|
|
2
2
|
import { JsonRpcRouter } from "./JsonRpcRouter.js";
|
|
3
|
+
function parsePathFilter(filter) {
|
|
4
|
+
if (!filter)
|
|
5
|
+
return () => true;
|
|
6
|
+
if (filter instanceof RegExp) {
|
|
7
|
+
return (path) => filter.test(path);
|
|
8
|
+
}
|
|
9
|
+
return filter;
|
|
10
|
+
}
|
|
3
11
|
export class FileSystemRouter extends JsonRpcRouter {
|
|
4
12
|
rootDir;
|
|
5
13
|
constructor(rootDir, options = {}) {
|
|
@@ -10,7 +18,7 @@ export class FileSystemRouter extends JsonRpcRouter {
|
|
|
10
18
|
const stat = lstatSync(rootDir);
|
|
11
19
|
if (!stat.isDirectory())
|
|
12
20
|
throw new Error(`Not a directory: ${rootDir}`);
|
|
13
|
-
this.#pathFilter = options.pathFilter;
|
|
21
|
+
this.#pathFilter = parsePathFilter(options.pathFilter);
|
|
14
22
|
}
|
|
15
23
|
#pathFilter;
|
|
16
24
|
// instanceof JsonRpcMethodDefinition だと参照先モジュールが複数存在した際に一致しなくなる
|
|
@@ -33,14 +41,8 @@ export class FileSystemRouter extends JsonRpcRouter {
|
|
|
33
41
|
: existsSync(`${path}.ts`)
|
|
34
42
|
? `${path}.ts`
|
|
35
43
|
: null;
|
|
36
|
-
if (!filePath)
|
|
44
|
+
if (!filePath || !this.#pathFilter(filePath)) {
|
|
37
45
|
return this.#cache[methodPath] = null;
|
|
38
|
-
if (this.#pathFilter) {
|
|
39
|
-
const pass = this.#pathFilter instanceof RegExp
|
|
40
|
-
? this.#pathFilter.test(filePath)
|
|
41
|
-
: this.#pathFilter(filePath);
|
|
42
|
-
if (!pass)
|
|
43
|
-
return this.#cache[methodPath] = null;
|
|
44
46
|
}
|
|
45
47
|
try {
|
|
46
48
|
const module = await import(filePath);
|
|
@@ -74,6 +76,8 @@ export class FileSystemRouter extends JsonRpcRouter {
|
|
|
74
76
|
}
|
|
75
77
|
async *enumerate() {
|
|
76
78
|
for (const name of readdirSync(this.rootDir)) {
|
|
79
|
+
if (!this.#pathFilter(name))
|
|
80
|
+
continue;
|
|
77
81
|
yield name.replace(/\.(js|ts)$/, '');
|
|
78
82
|
}
|
|
79
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,MAAM,OAAO,gBAAsB,SAAQ,aAAkB;IAC5B;IAA7B,YAA6B,OAAe,EAAE,UAAmC,EAAE;QAC/E,KAAK,EAAE,CAAC;QADiB,YAAO,GAAP,OAAO,CAAQ;QAExC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"FileSystemRouter.js","sourceRoot":"","sources":["../../src/router/FileSystemRouter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -10,15 +10,23 @@ type FileSystemRouterOptions = {
|
|
|
10
10
|
pathFilter?: (RegExp|((path: string) => boolean));
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
+
function parsePathFilter(filter?: RegExp|((path: string) => boolean)): (path: string) => boolean {
|
|
14
|
+
if (!filter) return () => true;
|
|
15
|
+
if (filter instanceof RegExp) {
|
|
16
|
+
return (path: string) => filter.test(path);
|
|
17
|
+
}
|
|
18
|
+
return filter;
|
|
19
|
+
}
|
|
20
|
+
|
|
13
21
|
export class FileSystemRouter<Ctx> extends JsonRpcRouter<Ctx> {
|
|
14
22
|
constructor(private readonly rootDir: string, options: FileSystemRouterOptions = {}) {
|
|
15
23
|
super();
|
|
16
24
|
if (!existsSync(rootDir)) throw new Error(`Not found: ${rootDir}`);
|
|
17
25
|
const stat = lstatSync(rootDir);
|
|
18
26
|
if (!stat.isDirectory()) throw new Error(`Not a directory: ${rootDir}`);
|
|
19
|
-
this.#pathFilter = options.pathFilter;
|
|
27
|
+
this.#pathFilter = parsePathFilter(options.pathFilter);
|
|
20
28
|
}
|
|
21
|
-
readonly #pathFilter
|
|
29
|
+
readonly #pathFilter: (path: string) => boolean;
|
|
22
30
|
|
|
23
31
|
// instanceof JsonRpcMethodDefinition だと参照先モジュールが複数存在した際に一致しなくなる
|
|
24
32
|
static #isDefinition(obj: any): obj is JsonRpcMethodDefinition<any, any, any> {
|
|
@@ -42,12 +50,8 @@ export class FileSystemRouter<Ctx> extends JsonRpcRouter<Ctx> {
|
|
|
42
50
|
: existsSync(`${path}.ts`)
|
|
43
51
|
? `${path}.ts`
|
|
44
52
|
: null;
|
|
45
|
-
if (!filePath
|
|
46
|
-
|
|
47
|
-
const pass = this.#pathFilter instanceof RegExp
|
|
48
|
-
? this.#pathFilter.test(filePath)
|
|
49
|
-
: this.#pathFilter(filePath);
|
|
50
|
-
if (!pass) return this.#cache[methodPath] = null;
|
|
53
|
+
if (!filePath || !this.#pathFilter(filePath)) {
|
|
54
|
+
return this.#cache[methodPath] = null;
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
try {
|
|
@@ -84,6 +88,7 @@ export class FileSystemRouter<Ctx> extends JsonRpcRouter<Ctx> {
|
|
|
84
88
|
|
|
85
89
|
async * enumerate(): AsyncIterable<string> {
|
|
86
90
|
for(const name of readdirSync(this.rootDir)) {
|
|
91
|
+
if (!this.#pathFilter(name)) continue;
|
|
87
92
|
yield name.replace(/\.(js|ts)$/, '');
|
|
88
93
|
}
|
|
89
94
|
}
|