@jayfong/x-server 2.52.2 → 2.54.0
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/lib/_cjs/core/define_handler.js +7 -0
- package/lib/_cjs/core/http_method.js +2 -1
- package/lib/_cjs/core/server.js +3 -3
- package/lib/_cjs/index.js +6 -0
- package/lib/_cjs/services/db_value.js +59 -0
- package/lib/_cjs/x.js +3 -2
- package/lib/core/define_handler.d.ts +1 -0
- package/lib/core/define_handler.js +7 -0
- package/lib/core/http_method.js +2 -1
- package/lib/core/server.js +3 -3
- package/lib/core/types.d.ts +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/services/db_value.d.ts +49 -0
- package/lib/services/db_value.js +54 -0
- package/lib/x.d.ts +1 -0
- package/lib/x.js +3 -2
- package/package.json +1 -1
package/lib/_cjs/core/server.js
CHANGED
|
@@ -104,7 +104,7 @@ class Server {
|
|
|
104
104
|
return res;
|
|
105
105
|
}, {});
|
|
106
106
|
}
|
|
107
|
-
const data = await item.handler.handle({
|
|
107
|
+
const data = await item.handler.handle(handlerMethod === 'ANY' ? {} : {
|
|
108
108
|
// @ts-ignore
|
|
109
109
|
...req.params,
|
|
110
110
|
// @ts-ignore
|
|
@@ -113,7 +113,7 @@ class Server {
|
|
|
113
113
|
...req.body,
|
|
114
114
|
...files
|
|
115
115
|
}, {
|
|
116
|
-
url
|
|
116
|
+
url,
|
|
117
117
|
headers: req.headers,
|
|
118
118
|
setHeader: (k, v) => res.header(k, v),
|
|
119
119
|
redirect: (url, permanently) => res.redirect(permanently ? 301 : 302, url),
|
|
@@ -129,7 +129,7 @@ class Server {
|
|
|
129
129
|
const isWS = handlerMethod === 'WS';
|
|
130
130
|
const serverMethod = isWS ? 'GET' : _http_method.HandlerMethodToHttpMethod[handlerMethod];
|
|
131
131
|
fastify.route({
|
|
132
|
-
method: serverMethod,
|
|
132
|
+
method: handlerMethod === 'ANY' ? ['GET', 'HEAD', 'TRACE', 'DELETE', 'OPTIONS', 'PATCH', 'PUT', 'POST'] : serverMethod,
|
|
133
133
|
url: item.path,
|
|
134
134
|
constraints: handlerOptions.requestHost ? {
|
|
135
135
|
host: handlerOptions.requestHost
|
package/lib/_cjs/index.js
CHANGED
|
@@ -145,6 +145,12 @@ Object.keys(_captcha).forEach(function (key) {
|
|
|
145
145
|
if (key in exports && exports[key] === _captcha[key]) return;
|
|
146
146
|
exports[key] = _captcha[key];
|
|
147
147
|
});
|
|
148
|
+
var _db_value = require("./services/db_value");
|
|
149
|
+
Object.keys(_db_value).forEach(function (key) {
|
|
150
|
+
if (key === "default" || key === "__esModule") return;
|
|
151
|
+
if (key in exports && exports[key] === _db_value[key]) return;
|
|
152
|
+
exports[key] = _db_value[key];
|
|
153
|
+
});
|
|
148
154
|
var _dingtalk = require("./services/dingtalk");
|
|
149
155
|
Object.keys(_dingtalk).forEach(function (key) {
|
|
150
156
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.DbValueService = void 0;
|
|
5
|
+
var _vtils = require("vtils");
|
|
6
|
+
class DbValueService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.serviceName = 'dbValue';
|
|
9
|
+
this.SimpleArray = class {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.separator = void 0;
|
|
12
|
+
this.affix = void 0;
|
|
13
|
+
this.number = void 0;
|
|
14
|
+
this.add = (value, defaultValue = []) => {
|
|
15
|
+
const text = (!value || !Array.isArray(value) ? defaultValue : value.filter(v => v != null && v !== '')).join(this.separator);
|
|
16
|
+
return !text || !this.affix ? text : `${this.affix}${text}${this.affix}`;
|
|
17
|
+
};
|
|
18
|
+
this.get = value => {
|
|
19
|
+
const res = !value ? [] : String(!this.affix ? value : value.substring(this.affix.length, value.length - this.affix.length)).split(this.separator).filter(v => v !== '');
|
|
20
|
+
return this.number ? res.map(Number) : res;
|
|
21
|
+
};
|
|
22
|
+
this.update = value => {
|
|
23
|
+
const text = !value || !Array.isArray(value) ? undefined : value.filter(v => v != null && v !== '').join(this.separator);
|
|
24
|
+
return !text || !this.affix ? text : `${this.affix}${text}${this.affix}`;
|
|
25
|
+
};
|
|
26
|
+
this.separator = (options == null ? void 0 : options.separator) || ',';
|
|
27
|
+
this.affix = (options == null ? void 0 : options.affix) || '';
|
|
28
|
+
this.number = !!(options != null && options.number);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
this.JsonArray = class {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.add = (value, defaultValue = []) => {
|
|
34
|
+
return JSON.stringify(!value || !Array.isArray(value) ? defaultValue : value);
|
|
35
|
+
};
|
|
36
|
+
this.get = value => {
|
|
37
|
+
return !value ? [] : JSON.parse(value);
|
|
38
|
+
};
|
|
39
|
+
this.update = value => {
|
|
40
|
+
return !value || !Array.isArray(value) ? undefined : JSON.stringify(value);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
this.JsonObject = class {
|
|
45
|
+
constructor() {
|
|
46
|
+
this.add = (value, defaultValue = {}) => {
|
|
47
|
+
return JSON.stringify(!value || !(0, _vtils.isPlainObject)(value) ? defaultValue : value);
|
|
48
|
+
};
|
|
49
|
+
this.get = value => {
|
|
50
|
+
return !value ? {} : JSON.parse(value);
|
|
51
|
+
};
|
|
52
|
+
this.update = value => {
|
|
53
|
+
return !value || !(0, _vtils.isPlainObject)(value) ? undefined : JSON.stringify(value);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.DbValueService = DbValueService;
|
package/lib/_cjs/x.js
CHANGED
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
4
|
exports.__esModule = true;
|
|
5
5
|
exports.x = void 0;
|
|
6
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
7
6
|
var _os = _interopRequireDefault(require("os"));
|
|
8
7
|
var _path = _interopRequireDefault(require("path"));
|
|
8
|
+
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
9
|
+
var _db_value = require("./services/db_value");
|
|
9
10
|
var _dispose = require("./services/dispose");
|
|
10
11
|
var _emoji = require("./services/emoji");
|
|
11
12
|
var _log = require("./services/log");
|
|
@@ -24,4 +25,4 @@ const x = exports.x = {
|
|
|
24
25
|
_fsExtra.default.ensureDirSync(x.dataDir);
|
|
25
26
|
x.register(new _dispose.DisposeService({
|
|
26
27
|
disposeOnExit: true
|
|
27
|
-
}), new _log.LogService(), new _emoji.EmojiService());
|
|
28
|
+
}), new _log.LogService(), new _emoji.EmojiService(), new _db_value.DbValueService());
|
|
@@ -13,4 +13,5 @@ export declare namespace defineHandler {
|
|
|
13
13
|
response: TReqData[K][1];
|
|
14
14
|
}; }, void, "WS">;
|
|
15
15
|
var XML: <TReqData extends unknown = void, TResData extends unknown = void>(options: XHandler.Options<TReqData, TResData, "XML">) => Handler<TReqData, TResData, "XML">;
|
|
16
|
+
var ANY: <TReqData extends unknown = void, TResData extends unknown = void>(options: XHandler.Options<TReqData, TResData, "ANY">) => Handler<TReqData, TResData, "ANY">;
|
|
16
17
|
}
|
package/lib/core/http_method.js
CHANGED
package/lib/core/server.js
CHANGED
|
@@ -98,7 +98,7 @@ export class Server {
|
|
|
98
98
|
return res;
|
|
99
99
|
}, {});
|
|
100
100
|
}
|
|
101
|
-
const data = await item.handler.handle({
|
|
101
|
+
const data = await item.handler.handle(handlerMethod === 'ANY' ? {} : {
|
|
102
102
|
// @ts-ignore
|
|
103
103
|
...req.params,
|
|
104
104
|
// @ts-ignore
|
|
@@ -107,7 +107,7 @@ export class Server {
|
|
|
107
107
|
...req.body,
|
|
108
108
|
...files
|
|
109
109
|
}, {
|
|
110
|
-
url
|
|
110
|
+
url,
|
|
111
111
|
headers: req.headers,
|
|
112
112
|
setHeader: (k, v) => res.header(k, v),
|
|
113
113
|
redirect: (url, permanently) => res.redirect(permanently ? 301 : 302, url),
|
|
@@ -123,7 +123,7 @@ export class Server {
|
|
|
123
123
|
const isWS = handlerMethod === 'WS';
|
|
124
124
|
const serverMethod = isWS ? 'GET' : HandlerMethodToHttpMethod[handlerMethod];
|
|
125
125
|
fastify.route({
|
|
126
|
-
method: serverMethod,
|
|
126
|
+
method: handlerMethod === 'ANY' ? ['GET', 'HEAD', 'TRACE', 'DELETE', 'OPTIONS', 'PATCH', 'PUT', 'POST'] : serverMethod,
|
|
127
127
|
url: item.path,
|
|
128
128
|
constraints: handlerOptions.requestHost ? {
|
|
129
129
|
host: handlerOptions.requestHost
|
package/lib/core/types.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export declare namespace XServer {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
export declare namespace XHandler {
|
|
62
|
-
type Method = 'GET' | 'POST' | 'FILE' | 'WS' | 'XML';
|
|
62
|
+
type Method = 'GET' | 'POST' | 'FILE' | 'WS' | 'XML' | 'ANY';
|
|
63
63
|
interface ExtraContext {
|
|
64
64
|
}
|
|
65
65
|
interface Context extends ExtraContext {
|
package/lib/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export * from './plugins/xml_parser';
|
|
|
22
22
|
export * from './services/base';
|
|
23
23
|
export * from './services/cache';
|
|
24
24
|
export * from './services/captcha';
|
|
25
|
+
export * from './services/db_value';
|
|
25
26
|
export * from './services/dingtalk';
|
|
26
27
|
export * from './services/dispose';
|
|
27
28
|
export * from './services/emoji';
|
package/lib/index.js
CHANGED
|
@@ -23,6 +23,7 @@ export * from "./plugins/xml_parser";
|
|
|
23
23
|
export * from "./services/base";
|
|
24
24
|
export * from "./services/cache";
|
|
25
25
|
export * from "./services/captcha";
|
|
26
|
+
export * from "./services/db_value";
|
|
26
27
|
export * from "./services/dingtalk";
|
|
27
28
|
export * from "./services/dispose";
|
|
28
29
|
export * from "./services/emoji";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BaseService } from './base';
|
|
2
|
+
export type DbValueServiceSimpleArrayOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* 分隔符
|
|
5
|
+
*
|
|
6
|
+
* @default ,
|
|
7
|
+
*/
|
|
8
|
+
separator?: string;
|
|
9
|
+
/**
|
|
10
|
+
* 前缀后缀
|
|
11
|
+
*/
|
|
12
|
+
affix?: string;
|
|
13
|
+
/**
|
|
14
|
+
* 是否数字
|
|
15
|
+
*/
|
|
16
|
+
number?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare class DbValueService implements BaseService {
|
|
19
|
+
serviceName: string;
|
|
20
|
+
SimpleArray: {
|
|
21
|
+
new <T extends string | number = string>(options?: DbValueServiceSimpleArrayOptions): {
|
|
22
|
+
separator: string;
|
|
23
|
+
affix: string;
|
|
24
|
+
number: boolean;
|
|
25
|
+
add: (value?: T[], defaultValue?: T[]) => string;
|
|
26
|
+
get: (value?: string) => T[];
|
|
27
|
+
update: (value?: T[]) => string | undefined;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
JsonArray: {
|
|
31
|
+
new <T = string>(): {
|
|
32
|
+
add: (value?: T[], defaultValue?: T[]) => string;
|
|
33
|
+
get: (value?: string) => T[];
|
|
34
|
+
update: (value?: T[]) => string | undefined;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
JsonObject: {
|
|
38
|
+
new <T>(): {
|
|
39
|
+
add: (value?: T, defaultValue?: T) => string;
|
|
40
|
+
get: (value?: string) => T;
|
|
41
|
+
update: (value?: T) => string | undefined;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
declare module '../x' {
|
|
46
|
+
interface X {
|
|
47
|
+
dbValue: DbValueService;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { isPlainObject } from 'vtils';
|
|
2
|
+
export class DbValueService {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.serviceName = 'dbValue';
|
|
5
|
+
this.SimpleArray = class {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.separator = void 0;
|
|
8
|
+
this.affix = void 0;
|
|
9
|
+
this.number = void 0;
|
|
10
|
+
this.add = (value, defaultValue = []) => {
|
|
11
|
+
const text = (!value || !Array.isArray(value) ? defaultValue : value.filter(v => v != null && v !== '')).join(this.separator);
|
|
12
|
+
return !text || !this.affix ? text : `${this.affix}${text}${this.affix}`;
|
|
13
|
+
};
|
|
14
|
+
this.get = value => {
|
|
15
|
+
const res = !value ? [] : String(!this.affix ? value : value.substring(this.affix.length, value.length - this.affix.length)).split(this.separator).filter(v => v !== '');
|
|
16
|
+
return this.number ? res.map(Number) : res;
|
|
17
|
+
};
|
|
18
|
+
this.update = value => {
|
|
19
|
+
const text = !value || !Array.isArray(value) ? undefined : value.filter(v => v != null && v !== '').join(this.separator);
|
|
20
|
+
return !text || !this.affix ? text : `${this.affix}${text}${this.affix}`;
|
|
21
|
+
};
|
|
22
|
+
this.separator = (options == null ? void 0 : options.separator) || ',';
|
|
23
|
+
this.affix = (options == null ? void 0 : options.affix) || '';
|
|
24
|
+
this.number = !!(options != null && options.number);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
this.JsonArray = class {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.add = (value, defaultValue = []) => {
|
|
30
|
+
return JSON.stringify(!value || !Array.isArray(value) ? defaultValue : value);
|
|
31
|
+
};
|
|
32
|
+
this.get = value => {
|
|
33
|
+
return !value ? [] : JSON.parse(value);
|
|
34
|
+
};
|
|
35
|
+
this.update = value => {
|
|
36
|
+
return !value || !Array.isArray(value) ? undefined : JSON.stringify(value);
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
this.JsonObject = class {
|
|
41
|
+
constructor() {
|
|
42
|
+
this.add = (value, defaultValue = {}) => {
|
|
43
|
+
return JSON.stringify(!value || !isPlainObject(value) ? defaultValue : value);
|
|
44
|
+
};
|
|
45
|
+
this.get = value => {
|
|
46
|
+
return !value ? {} : JSON.parse(value);
|
|
47
|
+
};
|
|
48
|
+
this.update = value => {
|
|
49
|
+
return !value || !isPlainObject(value) ? undefined : JSON.stringify(value);
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
package/lib/x.d.ts
CHANGED
package/lib/x.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import fs from 'fs-extra';
|
|
2
1
|
import os from 'os';
|
|
3
2
|
import path from 'path';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
import { DbValueService } from "./services/db_value";
|
|
4
5
|
import { DisposeService } from "./services/dispose";
|
|
5
6
|
import { EmojiService } from "./services/emoji";
|
|
6
7
|
import { LogService } from "./services/log";
|
|
@@ -19,4 +20,4 @@ export const x = {
|
|
|
19
20
|
fs.ensureDirSync(x.dataDir);
|
|
20
21
|
x.register(new DisposeService({
|
|
21
22
|
disposeOnExit: true
|
|
22
|
-
}), new LogService(), new EmojiService());
|
|
23
|
+
}), new LogService(), new EmojiService(), new DbValueService());
|