phecda-server 1.1.1 → 1.2.1
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 +108 -0
- package/dist/{server-d482bc0d.d.ts → axios-13a49ed4.d.ts} +3 -2
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +20 -6
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +18 -5
- package/dist/client/index.mjs.map +1 -1
- package/dist/index.d.ts +19 -7
- package/dist/index.js +150 -58
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +143 -57
- package/dist/index.mjs.map +1 -1
- package/package.json +9 -3
package/README.md
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# phecda-server
|
|
2
|
+
types share between server and client, `nestjs` format
|
|
3
|
+
|
|
4
|
+
## express
|
|
5
|
+
|
|
6
|
+
actually, it works as a set of middlewares
|
|
7
|
+
### server side
|
|
8
|
+
```ts
|
|
9
|
+
// in test.controller.ts
|
|
10
|
+
import { Body, Controller, Get, Param, Post, Query, Watcher, emitter } from 'phecda-server'
|
|
11
|
+
|
|
12
|
+
@Controller('/base')
|
|
13
|
+
export class TestController {
|
|
14
|
+
@Post('/:test')
|
|
15
|
+
async test(@Param('test') test: string, @Body('name') name: string, @Query('id') id: string) {
|
|
16
|
+
console.log(`${test}-${name}-${id}`)
|
|
17
|
+
emitter.emit('watch', 1)
|
|
18
|
+
return `${test}-${name}-${id}`
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Get('/get')
|
|
22
|
+
async get() {
|
|
23
|
+
return {
|
|
24
|
+
data: 'test',
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
```ts
|
|
30
|
+
// in server.ts
|
|
31
|
+
import fs from 'fs'
|
|
32
|
+
import { Factory, bindApp } from 'phecda-server'
|
|
33
|
+
import express from 'express'
|
|
34
|
+
import { TestController } from './test.controller'
|
|
35
|
+
const data = await Factory([TestController])
|
|
36
|
+
fs.writeFileSync('meta.p.js', JSON.stringify(data.meta.map(item => item.data)))
|
|
37
|
+
const app = express()
|
|
38
|
+
app.all('*', (req, res, next) => {
|
|
39
|
+
res.header('Access-Control-Allow-Origin', '*')
|
|
40
|
+
res.header('Access-Control-Allow-Headers', 'Content-Type')
|
|
41
|
+
res.header('Access-Control-Allow-Methods', '*')
|
|
42
|
+
next()
|
|
43
|
+
})
|
|
44
|
+
app.use(express.json())
|
|
45
|
+
|
|
46
|
+
bindApp(app, data)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### client side
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
// in vite.config.ts
|
|
53
|
+
|
|
54
|
+
import { defineConfig } from 'vite'
|
|
55
|
+
import { Server } from 'phecda-server'
|
|
56
|
+
|
|
57
|
+
export default defineConfig({
|
|
58
|
+
plugins: [Server('meta.p.js')],
|
|
59
|
+
|
|
60
|
+
})
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
// in main.ts
|
|
65
|
+
|
|
66
|
+
import { $S, createBeacon, createMergeReq, createReq, isError } from 'phecda-server/client'
|
|
67
|
+
import axios from 'axios'
|
|
68
|
+
import { TestController } from './test.controller'
|
|
69
|
+
|
|
70
|
+
const instance = axios.create({
|
|
71
|
+
// ...
|
|
72
|
+
})
|
|
73
|
+
const useRequest = createReq(instance)
|
|
74
|
+
const useMergeRequest = createMergeReq(instance)
|
|
75
|
+
const { test, get } = new TestController()
|
|
76
|
+
async function request() {
|
|
77
|
+
const { data } = await useRequest(test('phecda', 'server', '1'))
|
|
78
|
+
console.log('[normal request]:')
|
|
79
|
+
|
|
80
|
+
console.log(data)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
async function seriesRequest() {
|
|
84
|
+
const { data: [, res2] } = await useMergeRequest([get(), test($S(0, 'data'), 'server', '1')])
|
|
85
|
+
console.log('[series request]:')
|
|
86
|
+
|
|
87
|
+
if (isError(res2))
|
|
88
|
+
console.error(res2.message)
|
|
89
|
+
else console.log(res2)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
async function mergeRequest() {
|
|
93
|
+
const { data: [res1, res2] } = await useMergeRequest([test('phecda', 'server', '1'), get()])
|
|
94
|
+
console.log('[merge request]:')
|
|
95
|
+
|
|
96
|
+
if (isError(res1))
|
|
97
|
+
console.error(res1.message)
|
|
98
|
+
else console.log(res1)
|
|
99
|
+
|
|
100
|
+
if (isError(res2))
|
|
101
|
+
console.error(res2.message)
|
|
102
|
+
else console.log(res2)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
request()
|
|
106
|
+
mergeRequest()
|
|
107
|
+
seriesRequest()
|
|
108
|
+
```
|
|
@@ -96,8 +96,9 @@ declare function toReq(arg: RequestArgs): {
|
|
|
96
96
|
declare const merge: (...args: RequestArgs[]) => MergedReqArg[];
|
|
97
97
|
type RequestMethod = <F extends (...args: any[]) => any>(fn: F, args: Parameters<F>) => Promise<ReturnType<F>>;
|
|
98
98
|
declare function createReq(instance: AxiosInstance): <R>(arg: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<PRes<Awaited<R>>>>;
|
|
99
|
-
declare function
|
|
99
|
+
declare function createSeriesReq(instance: AxiosInstance, key?: string): <R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>>;
|
|
100
|
+
declare function createParallelReq(instance: AxiosInstance, key?: string): <R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>>;
|
|
100
101
|
declare function isError<T = any>(data: T | PError): data is PError;
|
|
101
102
|
declare function $S(index: number, key?: string): any;
|
|
102
103
|
|
|
103
|
-
export { $S as $, BaseError as B, Construct as C, MergeType as M, PHandler as P, RequestType as R, ServerMeta as S, Transform as T, UnWrap as U, PhecdaEmitter as a, PError as b, ResOrErr as c, PRes as d, ServerContextData as e, MqContextData as f, RequestMethod as g, createReq as h,
|
|
104
|
+
export { $S as $, BaseError as B, Construct as C, MergeType as M, PHandler as P, RequestType as R, ServerMeta as S, Transform as T, UnWrap as U, PhecdaEmitter as a, PError as b, ResOrErr as c, PRes as d, ServerContextData as e, MqContextData as f, RequestMethod as g, createReq as h, createSeriesReq as i, createParallelReq as j, isError as k, merge as m, toReq as t };
|
package/dist/client/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { $ as $S, g as RequestMethod,
|
|
1
|
+
export { $ as $S, g as RequestMethod, j as createParallelReq, h as createReq, i as createSeriesReq, k as isError, m as merge, t as toReq } from '../axios-13a49ed4.js';
|
|
2
2
|
import 'axios';
|
|
3
3
|
import 'express';
|
|
4
4
|
import 'amqplib';
|
package/dist/client/index.js
CHANGED
|
@@ -23,8 +23,9 @@ var client_exports = {};
|
|
|
23
23
|
__export(client_exports, {
|
|
24
24
|
$S: () => $S,
|
|
25
25
|
createBeacon: () => createBeacon,
|
|
26
|
-
|
|
26
|
+
createParallelReq: () => createParallelReq,
|
|
27
27
|
createReq: () => createReq,
|
|
28
|
+
createSeriesReq: () => createSeriesReq,
|
|
28
29
|
isError: () => isError,
|
|
29
30
|
merge: () => merge,
|
|
30
31
|
toReq: () => toReq
|
|
@@ -34,7 +35,7 @@ module.exports = __toCommonJS(client_exports);
|
|
|
34
35
|
// src/common.ts
|
|
35
36
|
var SERIES_SYMBOL = "__symbol_series__";
|
|
36
37
|
|
|
37
|
-
// src/client/
|
|
38
|
+
// src/client/axios.ts
|
|
38
39
|
function toReq(arg) {
|
|
39
40
|
const { body, query, realParam, method, url } = arg;
|
|
40
41
|
return {
|
|
@@ -75,12 +76,24 @@ function createReq(instance) {
|
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
__name(createReq, "createReq");
|
|
78
|
-
function
|
|
79
|
+
function createSeriesReq(instance, key = "/__PHECDA_SERVER__") {
|
|
79
80
|
return (args, config) => {
|
|
80
|
-
return instance.post(key,
|
|
81
|
+
return instance.post(key, {
|
|
82
|
+
category: "series",
|
|
83
|
+
data: merge(...args)
|
|
84
|
+
}, config);
|
|
81
85
|
};
|
|
82
86
|
}
|
|
83
|
-
__name(
|
|
87
|
+
__name(createSeriesReq, "createSeriesReq");
|
|
88
|
+
function createParallelReq(instance, key = "/__PHECDA_SERVER__") {
|
|
89
|
+
return (args, config) => {
|
|
90
|
+
return instance.post(key, {
|
|
91
|
+
category: "parallel",
|
|
92
|
+
data: merge(...args)
|
|
93
|
+
}, config);
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
__name(createParallelReq, "createParallelReq");
|
|
84
97
|
function isError(data) {
|
|
85
98
|
return typeof data === "object" && data.error;
|
|
86
99
|
}
|
|
@@ -102,8 +115,9 @@ __name(createBeacon, "createBeacon");
|
|
|
102
115
|
0 && (module.exports = {
|
|
103
116
|
$S,
|
|
104
117
|
createBeacon,
|
|
105
|
-
|
|
118
|
+
createParallelReq,
|
|
106
119
|
createReq,
|
|
120
|
+
createSeriesReq,
|
|
107
121
|
isError,
|
|
108
122
|
merge,
|
|
109
123
|
toReq
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/client/index.ts","../../src/common.ts","../../src/client/
|
|
1
|
+
{"version":3,"sources":["../../src/client/index.ts","../../src/common.ts","../../src/client/axios.ts"],"sourcesContent":["import { toReq } from './axios'\nexport * from './axios'\n\nexport function createBeacon(baseUrl: string) {\n return (arg: any) => {\n const { url, params, query, body } = toReq(arg as any)\n\n navigator.sendBeacon(`${baseUrl}${url}${params}${query}`, JSON.stringify(body))\n }\n}\n","export const SERIES_SYMBOL = '__symbol_series__'\nexport const REQ_SYMBOL = '__symbol_req__'\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport type { PError, PRes, RequestType, ResOrErr } from '../types'\nimport { SERIES_SYMBOL } from '../common'\ninterface RequestArgs {\n body: Record<string, any>\n query: Record<string, string>\n params: Record<string, string>\n realParam: string\n method: RequestType\n url: string\n tag: string\n}\ntype MergedReqArg = Pick<RequestArgs, 'body' | 'query' | 'params' | 'tag' >\nexport function toReq(arg: RequestArgs) {\n const { body, query, realParam, method, url } = arg\n return { method, url, body, query: Object.keys(query).length > 0 ? `?${Object.entries(query).map(([k, v]) => `${k}=${v}`).join('&')}` : '', params: realParam }\n}\n\nexport const merge = (...args: RequestArgs[]) => {\n const ret = [] as MergedReqArg[]\n for (const i of args) {\n const { body, query, params, tag } = i\n ret.push({ tag, body, query, params })\n }\n\n return ret\n}\n\nexport type RequestMethod = <F extends (...args: any[]) => any >(fn: F, args: Parameters<F>) => Promise<ReturnType<F>>\n\nexport function createReq(instance: AxiosInstance): <R>(arg: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<PRes<Awaited<R>>> > {\n // @ts-expect-error methods without route decorator won't send request\n return (arg: any, config?: AxiosRequestConfig) => {\n const { url, params, query, body, method } = toReq(arg as RequestArgs)\n if (!method) {\n console.warn('methods without route decorator won\\'t send request')\n return\n }\n\n const ret = [`${url}${params}${query}`] as any[]\n body && ret.push(body)\n config && ret.push(config)\n // @ts-expect-error misdirction\n return instance[method](...ret)\n }\n}\n\nexport function createSeriesReq(instance: AxiosInstance, key = '/__PHECDA_SERVER__'): < R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>> {\n // @ts-expect-error misdirction\n return (args: RequestArgs[], config?: AxiosRequestConfig) => {\n return instance.post(key, {\n category: 'series',\n data: merge(...args),\n }, config)\n }\n}\n\nexport function createParallelReq(instance: AxiosInstance, key = '/__PHECDA_SERVER__'): < R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>> {\n // @ts-expect-error misdirction\n return (args: RequestArgs[], config?: AxiosRequestConfig) => {\n return instance.post(key, {\n category: 'parallel',\n data: merge(...args),\n }, config)\n }\n}\n\nexport function isError<T = any>(data: T | PError): data is PError {\n return typeof data === 'object' && (data as any).error\n}\n\nexport function $S(index: number, key = ''): any {\n return `${SERIES_SYMBOL}@${index}@${key}`\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;ACAO,IAAMA,gBAAgB;;;ACatB,SAASC,MAAMC,KAAkB;AACtC,QAAM,EAAEC,MAAMC,OAAOC,WAAWC,QAAQC,IAAG,IAAKL;AAChD,SAAO;IAAEI;IAAQC;IAAKJ;IAAMC,OAAOI,OAAOC,KAAKL,KAAAA,EAAOM,SAAS,IAAI,IAAIF,OAAOG,QAAQP,KAAAA,EAAOQ,IAAI,CAAC,CAACC,GAAGC,CAAAA,MAAO,GAAGD,KAAKC,GAAG,EAAEC,KAAK,GAAA,MAAS;IAAIC,QAAQX;EAAU;AAChK;AAHgBJ;AAKT,IAAMgB,QAAQ,2BAAIC,SAAwB;AAC/C,QAAMC,MAAM,CAAA;AACZ,aAAWC,KAAKF,MAAM;AACpB,UAAM,EAAEf,MAAMC,OAAOY,QAAQK,IAAG,IAAKD;AACrCD,QAAIG,KAAK;MAAED;MAAKlB;MAAMC;MAAOY;IAAO,CAAA;EACtC;AAEA,SAAOG;AACT,GARqB;AAYd,SAASI,UAAUC,UAAgH;AAExI,SAAO,CAACtB,KAAUuB,WAAgC;AAChD,UAAM,EAAElB,KAAKS,QAAQZ,OAAOD,MAAMG,OAAM,IAAKL,MAAMC,GAAAA;AACnD,QAAI,CAACI,QAAQ;AACXoB,cAAQC,KAAK,oDAAA;AACb;IACF;AAEA,UAAMR,MAAM;MAAC,GAAGZ,MAAMS,SAASZ;;AAC/BD,YAAQgB,IAAIG,KAAKnB,IAAAA;AACjBsB,cAAUN,IAAIG,KAAKG,MAAAA;AAEnB,WAAOD,SAASlB,QAAO,GAAIa,GAAAA;EAC7B;AACF;AAfgBI;AAiBT,SAASK,gBAAgBJ,UAAyBK,MAAM,sBAAiI;AAE9L,SAAO,CAACX,MAAqBO,WAAgC;AAC3D,WAAOD,SAASM,KAAKD,KAAK;MACxBE,UAAU;MACVC,MAAMf,MAAAA,GAASC,IAAAA;IACjB,GAAGO,MAAAA;EACL;AACF;AARgBG;AAUT,SAASK,kBAAkBT,UAAyBK,MAAM,sBAAiI;AAEhM,SAAO,CAACX,MAAqBO,WAAgC;AAC3D,WAAOD,SAASM,KAAKD,KAAK;MACxBE,UAAU;MACVC,MAAMf,MAAAA,GAASC,IAAAA;IACjB,GAAGO,MAAAA;EACL;AACF;AARgBQ;AAUT,SAASC,QAAiBF,MAAkC;AACjE,SAAO,OAAOA,SAAS,YAAaA,KAAaG;AACnD;AAFgBD;AAIT,SAASE,GAAGC,OAAeR,MAAM,IAAS;AAC/C,SAAO,GAAGS,iBAAiBD,SAASR;AACtC;AAFgBO;;;AFpET,SAASG,aAAaC,SAAiB;AAC5C,SAAO,CAACC,QAAa;AACnB,UAAM,EAAEC,KAAKC,QAAQC,OAAOC,KAAI,IAAKC,MAAML,GAAAA;AAE3CM,cAAUC,WAAW,GAAGR,UAAUE,MAAMC,SAASC,SAASK,KAAKC,UAAUL,IAAAA,CAAAA;EAC3E;AACF;AANgBN;","names":["SERIES_SYMBOL","toReq","arg","body","query","realParam","method","url","Object","keys","length","entries","map","k","v","join","params","merge","args","ret","i","tag","push","createReq","instance","config","console","warn","createSeriesReq","key","post","category","data","createParallelReq","isError","error","$S","index","SERIES_SYMBOL","createBeacon","baseUrl","arg","url","params","query","body","toReq","navigator","sendBeacon","JSON","stringify"]}
|
package/dist/client/index.mjs
CHANGED
|
@@ -4,7 +4,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
4
4
|
// src/common.ts
|
|
5
5
|
var SERIES_SYMBOL = "__symbol_series__";
|
|
6
6
|
|
|
7
|
-
// src/client/
|
|
7
|
+
// src/client/axios.ts
|
|
8
8
|
function toReq(arg) {
|
|
9
9
|
const { body, query, realParam, method, url } = arg;
|
|
10
10
|
return {
|
|
@@ -45,12 +45,24 @@ function createReq(instance) {
|
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
__name(createReq, "createReq");
|
|
48
|
-
function
|
|
48
|
+
function createSeriesReq(instance, key = "/__PHECDA_SERVER__") {
|
|
49
49
|
return (args, config) => {
|
|
50
|
-
return instance.post(key,
|
|
50
|
+
return instance.post(key, {
|
|
51
|
+
category: "series",
|
|
52
|
+
data: merge(...args)
|
|
53
|
+
}, config);
|
|
51
54
|
};
|
|
52
55
|
}
|
|
53
|
-
__name(
|
|
56
|
+
__name(createSeriesReq, "createSeriesReq");
|
|
57
|
+
function createParallelReq(instance, key = "/__PHECDA_SERVER__") {
|
|
58
|
+
return (args, config) => {
|
|
59
|
+
return instance.post(key, {
|
|
60
|
+
category: "parallel",
|
|
61
|
+
data: merge(...args)
|
|
62
|
+
}, config);
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
__name(createParallelReq, "createParallelReq");
|
|
54
66
|
function isError(data) {
|
|
55
67
|
return typeof data === "object" && data.error;
|
|
56
68
|
}
|
|
@@ -71,8 +83,9 @@ __name(createBeacon, "createBeacon");
|
|
|
71
83
|
export {
|
|
72
84
|
$S,
|
|
73
85
|
createBeacon,
|
|
74
|
-
|
|
86
|
+
createParallelReq,
|
|
75
87
|
createReq,
|
|
88
|
+
createSeriesReq,
|
|
76
89
|
isError,
|
|
77
90
|
merge,
|
|
78
91
|
toReq
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/common.ts","../../src/client/
|
|
1
|
+
{"version":3,"sources":["../../src/common.ts","../../src/client/axios.ts","../../src/client/index.ts"],"sourcesContent":["export const SERIES_SYMBOL = '__symbol_series__'\nexport const REQ_SYMBOL = '__symbol_req__'\n","import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'\nimport type { PError, PRes, RequestType, ResOrErr } from '../types'\nimport { SERIES_SYMBOL } from '../common'\ninterface RequestArgs {\n body: Record<string, any>\n query: Record<string, string>\n params: Record<string, string>\n realParam: string\n method: RequestType\n url: string\n tag: string\n}\ntype MergedReqArg = Pick<RequestArgs, 'body' | 'query' | 'params' | 'tag' >\nexport function toReq(arg: RequestArgs) {\n const { body, query, realParam, method, url } = arg\n return { method, url, body, query: Object.keys(query).length > 0 ? `?${Object.entries(query).map(([k, v]) => `${k}=${v}`).join('&')}` : '', params: realParam }\n}\n\nexport const merge = (...args: RequestArgs[]) => {\n const ret = [] as MergedReqArg[]\n for (const i of args) {\n const { body, query, params, tag } = i\n ret.push({ tag, body, query, params })\n }\n\n return ret\n}\n\nexport type RequestMethod = <F extends (...args: any[]) => any >(fn: F, args: Parameters<F>) => Promise<ReturnType<F>>\n\nexport function createReq(instance: AxiosInstance): <R>(arg: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<PRes<Awaited<R>>> > {\n // @ts-expect-error methods without route decorator won't send request\n return (arg: any, config?: AxiosRequestConfig) => {\n const { url, params, query, body, method } = toReq(arg as RequestArgs)\n if (!method) {\n console.warn('methods without route decorator won\\'t send request')\n return\n }\n\n const ret = [`${url}${params}${query}`] as any[]\n body && ret.push(body)\n config && ret.push(config)\n // @ts-expect-error misdirction\n return instance[method](...ret)\n }\n}\n\nexport function createSeriesReq(instance: AxiosInstance, key = '/__PHECDA_SERVER__'): < R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>> {\n // @ts-expect-error misdirction\n return (args: RequestArgs[], config?: AxiosRequestConfig) => {\n return instance.post(key, {\n category: 'series',\n data: merge(...args),\n }, config)\n }\n}\n\nexport function createParallelReq(instance: AxiosInstance, key = '/__PHECDA_SERVER__'): < R extends unknown[]>(args: R, config?: AxiosRequestConfig) => Promise<AxiosResponse<ResOrErr<PRes<R>>>> {\n // @ts-expect-error misdirction\n return (args: RequestArgs[], config?: AxiosRequestConfig) => {\n return instance.post(key, {\n category: 'parallel',\n data: merge(...args),\n }, config)\n }\n}\n\nexport function isError<T = any>(data: T | PError): data is PError {\n return typeof data === 'object' && (data as any).error\n}\n\nexport function $S(index: number, key = ''): any {\n return `${SERIES_SYMBOL}@${index}@${key}`\n}\n","import { toReq } from './axios'\nexport * from './axios'\n\nexport function createBeacon(baseUrl: string) {\n return (arg: any) => {\n const { url, params, query, body } = toReq(arg as any)\n\n navigator.sendBeacon(`${baseUrl}${url}${params}${query}`, JSON.stringify(body))\n }\n}\n"],"mappings":";;;;AAAO,IAAMA,gBAAgB;;;ACatB,SAASC,MAAMC,KAAkB;AACtC,QAAM,EAAEC,MAAMC,OAAOC,WAAWC,QAAQC,IAAG,IAAKL;AAChD,SAAO;IAAEI;IAAQC;IAAKJ;IAAMC,OAAOI,OAAOC,KAAKL,KAAAA,EAAOM,SAAS,IAAI,IAAIF,OAAOG,QAAQP,KAAAA,EAAOQ,IAAI,CAAC,CAACC,GAAGC,CAAAA,MAAO,GAAGD,KAAKC,GAAG,EAAEC,KAAK,GAAA,MAAS;IAAIC,QAAQX;EAAU;AAChK;AAHgBJ;AAKT,IAAMgB,QAAQ,2BAAIC,SAAwB;AAC/C,QAAMC,MAAM,CAAA;AACZ,aAAWC,KAAKF,MAAM;AACpB,UAAM,EAAEf,MAAMC,OAAOY,QAAQK,IAAG,IAAKD;AACrCD,QAAIG,KAAK;MAAED;MAAKlB;MAAMC;MAAOY;IAAO,CAAA;EACtC;AAEA,SAAOG;AACT,GARqB;AAYd,SAASI,UAAUC,UAAgH;AAExI,SAAO,CAACtB,KAAUuB,WAAgC;AAChD,UAAM,EAAElB,KAAKS,QAAQZ,OAAOD,MAAMG,OAAM,IAAKL,MAAMC,GAAAA;AACnD,QAAI,CAACI,QAAQ;AACXoB,cAAQC,KAAK,oDAAA;AACb;IACF;AAEA,UAAMR,MAAM;MAAC,GAAGZ,MAAMS,SAASZ;;AAC/BD,YAAQgB,IAAIG,KAAKnB,IAAAA;AACjBsB,cAAUN,IAAIG,KAAKG,MAAAA;AAEnB,WAAOD,SAASlB,QAAO,GAAIa,GAAAA;EAC7B;AACF;AAfgBI;AAiBT,SAASK,gBAAgBJ,UAAyBK,MAAM,sBAAiI;AAE9L,SAAO,CAACX,MAAqBO,WAAgC;AAC3D,WAAOD,SAASM,KAAKD,KAAK;MACxBE,UAAU;MACVC,MAAMf,MAAAA,GAASC,IAAAA;IACjB,GAAGO,MAAAA;EACL;AACF;AARgBG;AAUT,SAASK,kBAAkBT,UAAyBK,MAAM,sBAAiI;AAEhM,SAAO,CAACX,MAAqBO,WAAgC;AAC3D,WAAOD,SAASM,KAAKD,KAAK;MACxBE,UAAU;MACVC,MAAMf,MAAAA,GAASC,IAAAA;IACjB,GAAGO,MAAAA;EACL;AACF;AARgBQ;AAUT,SAASC,QAAiBF,MAAkC;AACjE,SAAO,OAAOA,SAAS,YAAaA,KAAaG;AACnD;AAFgBD;AAIT,SAASE,GAAGC,OAAeR,MAAM,IAAS;AAC/C,SAAO,GAAGS,iBAAiBD,SAASR;AACtC;AAFgBO;;;ACpET,SAASG,aAAaC,SAAiB;AAC5C,SAAO,CAACC,QAAa;AACnB,UAAM,EAAEC,KAAKC,QAAQC,OAAOC,KAAI,IAAKC,MAAML,GAAAA;AAE3CM,cAAUC,WAAW,GAAGR,UAAUE,MAAMC,SAASC,SAASK,KAAKC,UAAUL,IAAAA,CAAAA;EAC3E;AACF;AANgBN;","names":["SERIES_SYMBOL","toReq","arg","body","query","realParam","method","url","Object","keys","length","entries","map","k","v","join","params","merge","args","ret","i","tag","push","createReq","instance","config","console","warn","createSeriesReq","key","post","category","data","createParallelReq","isError","error","$S","index","SERIES_SYMBOL","createBeacon","baseUrl","arg","url","params","query","body","toReq","navigator","sendBeacon","JSON","stringify"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as ServerMeta, P as PHandler, R as RequestType, a as PhecdaEmitter, C as Construct } from './
|
|
2
|
-
export { $ as $S, B as BaseError, M as MergeType, f as MqContextData, b as PError, d as PRes, g as RequestMethod, c as ResOrErr, e as ServerContextData, T as Transform, U as UnWrap,
|
|
1
|
+
import { S as ServerMeta, P as PHandler, R as RequestType, a as PhecdaEmitter, C as Construct } from './axios-13a49ed4.js';
|
|
2
|
+
export { $ as $S, B as BaseError, M as MergeType, f as MqContextData, b as PError, d as PRes, g as RequestMethod, c as ResOrErr, e as ServerContextData, T as Transform, U as UnWrap, j as createParallelReq, h as createReq, i as createSeriesReq, k as isError, m as merge, t as toReq } from './axios-13a49ed4.js';
|
|
3
3
|
import { Express } from 'express';
|
|
4
4
|
import { PluginOption } from 'vite';
|
|
5
5
|
export * from 'phecda-core';
|
|
@@ -43,6 +43,14 @@ declare class BadRequestException extends HttpException {
|
|
|
43
43
|
constructor(message: string);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
declare class WrongMetaException extends HttpException {
|
|
47
|
+
constructor(message: string);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
declare class NotFoundException extends HttpException {
|
|
51
|
+
constructor(message: string);
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
type ErrorFilter<E extends HttpException = any> = (err: E | Error, contextData: any) => any;
|
|
47
55
|
|
|
48
56
|
declare class Phistroy {
|
|
@@ -95,14 +103,15 @@ declare function parseMeta(meta: Pmeta): {
|
|
|
95
103
|
declare class ServerContext extends Pcontext {
|
|
96
104
|
static pipe: ValidatePipe;
|
|
97
105
|
static filter: ErrorFilter<any>;
|
|
98
|
-
static middlewareRecord: Record<string, (...params: any) =>
|
|
99
|
-
static useMiddleware(middlewares: string[]): ((...params: any) =>
|
|
106
|
+
static middlewareRecord: Record<string, (...params: any) => any>;
|
|
107
|
+
static useMiddleware(middlewares: string[]): ((...params: any) => any)[];
|
|
100
108
|
usePipe(args: {
|
|
101
109
|
arg: any;
|
|
102
110
|
validate?: boolean;
|
|
103
111
|
}[], reflect: any[]): Promise<any[]>;
|
|
104
112
|
useFilter(arg: any): any;
|
|
105
113
|
}
|
|
114
|
+
declare function addMiddleware(key: string, handler: (...params: any) => any): void;
|
|
106
115
|
declare function useServerPipe(pipe: ValidatePipe): void;
|
|
107
116
|
declare function useServerFilter(filter: ErrorFilter): void;
|
|
108
117
|
|
|
@@ -164,8 +173,9 @@ declare function Post(route: string): any;
|
|
|
164
173
|
declare function Put(route: string): any;
|
|
165
174
|
declare function Delete(route: string): any;
|
|
166
175
|
declare function Controller(route: string): any;
|
|
167
|
-
declare function Guard(
|
|
168
|
-
declare function
|
|
176
|
+
declare function Guard(...guards: string[]): any;
|
|
177
|
+
declare function Middle(...middlewares: string[]): any;
|
|
178
|
+
declare function Interceptor(...interceptors: string[]): any;
|
|
169
179
|
|
|
170
180
|
declare function MQ(queue: string, routeKey: string, options?: amqplib.Options.Consume): (target: any, k: PropertyKey) => void;
|
|
171
181
|
|
|
@@ -178,4 +188,6 @@ declare function bindMQ(ch: amqplib.Channel, { meta, moduleMap }: Awaited<Return
|
|
|
178
188
|
type MqMethod<T> = (arg: T) => void;
|
|
179
189
|
declare function createPub<T extends (...args: any[]) => any>(ch: amqplib.Channel, method: T, type?: string): Promise<MqMethod<Parameters<T>>>;
|
|
180
190
|
|
|
181
|
-
|
|
191
|
+
declare function createMqReq(channel: amqplib.Channel): <R>(arg: R) => Promise<void>;
|
|
192
|
+
|
|
193
|
+
export { BadRequestException, BaseParam, Body, Construct, Controller, Delete, Factory, ForbiddenException, Get, Guard, Header, HttpException, Inject, Interceptor, MQ, Middle, NotFoundException, Options, PHandler, Param, Pcompiler, Pcontext, PhecdaEmitter, Pmeta, Post, Put, Query, RabbitMqContext, RequestType, Route, Server, ServerContext, ServerMeta, UndefinedException, ValidateException, ValidatePipe, WrongMetaException, addGuard, addInterceptor, addMiddleware, bindApp, bindMQ, createMqReq, createPub, defaultPipe, emitter, getInstance, parseMeta, useMqFilter, useMqPipe, useServerFilter, useServerPipe };
|