@rpcbase/api 0.148.0 → 0.150.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/dist/errors.d.ts +48 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +194 -21
- package/dist/index.js.map +1 -1
- package/dist/initApi.d.ts +5 -2
- package/dist/initApi.d.ts.map +1 -1
- package/dist/requestValidation.d.ts +4 -0
- package/dist/requestValidation.d.ts.map +1 -0
- package/dist/types.d.ts +31 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/initApi.d.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { Application } from 'express';
|
|
2
2
|
import { CorsOptions } from 'cors';
|
|
3
|
+
import { ApiErrorMiddlewareOptions } from './errors';
|
|
3
4
|
type RouteLoader = () => Promise<unknown>;
|
|
4
|
-
export
|
|
5
|
+
export type InitApiOptions = {
|
|
5
6
|
app: Application;
|
|
6
7
|
routes: Record<string, RouteLoader>;
|
|
7
8
|
cors?: CorsOptions;
|
|
8
|
-
|
|
9
|
+
errors?: ApiErrorMiddlewareOptions;
|
|
10
|
+
};
|
|
11
|
+
export declare const initApi: ({ app, routes, cors: corsOptions, errors, }: InitApiOptions) => Promise<void>;
|
|
9
12
|
export {};
|
|
10
13
|
//# sourceMappingURL=initApi.d.ts.map
|
package/dist/initApi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initApi.d.ts","sourceRoot":"","sources":["../src/initApi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAwD,MAAM,SAAS,CAAA;AAChG,OAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"initApi.d.ts","sourceRoot":"","sources":["../src/initApi.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAwD,MAAM,SAAS,CAAA;AAChG,OAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAA;AAE7C,OAAO,EAQL,KAAK,yBAAyB,EAC/B,MAAM,UAAU,CAAA;AA8BjB,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;AAoBzC,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,WAAW,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC,CAAA;AAGD,eAAO,MAAM,OAAO,GAAU,6CAK3B,cAAc,kBAkKhB,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ApiRequestSchema, ApiRouteDefinition } from './types';
|
|
2
|
+
export declare const getApiRoutePath: (route: string | ApiRouteDefinition) => string;
|
|
3
|
+
export declare const parseApiRequest: <Output>(schema: ApiRequestSchema<Output>, input: unknown) => Output;
|
|
4
|
+
//# sourceMappingURL=requestValidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestValidation.d.ts","sourceRoot":"","sources":["../src/requestValidation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAoBnE,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,kBAAkB,KAAG,MAGpE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,EAAE,QAAQ,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,OAAO,KAAG,MAS1F,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,12 +17,39 @@ export type Ctx<TUser = RBSessionUser> = {
|
|
|
17
17
|
export type Payload = unknown;
|
|
18
18
|
export type Result = unknown;
|
|
19
19
|
export type ApiHandler<P = Payload, R = Result, U = RBSessionUser> = (payload: P, ctx: Ctx<U>) => Promise<R>;
|
|
20
|
+
export type ApiRequestValidationIssue = {
|
|
21
|
+
readonly message: string;
|
|
22
|
+
readonly path: readonly PropertyKey[];
|
|
23
|
+
};
|
|
24
|
+
export type ApiRequestSchema<Output = unknown> = {
|
|
25
|
+
safeParse: (input: unknown) => {
|
|
26
|
+
success: true;
|
|
27
|
+
data: Output;
|
|
28
|
+
} | {
|
|
29
|
+
success: false;
|
|
30
|
+
error: {
|
|
31
|
+
issues: readonly ApiRequestValidationIssue[];
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export type ApiRouteDefinition<Schema extends ApiRequestSchema = ApiRequestSchema> = {
|
|
36
|
+
readonly requestSchema: Schema;
|
|
37
|
+
} & ({
|
|
38
|
+
readonly ROUTE: string;
|
|
39
|
+
} | {
|
|
40
|
+
readonly Route: string;
|
|
41
|
+
});
|
|
42
|
+
export type ApiRequestSchemaOutput<Schema extends ApiRequestSchema> = Schema extends ApiRequestSchema<infer Output> ? Output : never;
|
|
20
43
|
export type Middleware<U = RBSessionUser> = (req: RpcRequest<U>, res: Response, next: NextFunction) => void;
|
|
44
|
+
export type ApiMethod<U = RBSessionUser> = {
|
|
45
|
+
<Schema extends ApiRequestSchema, R = Result>(route: ApiRouteDefinition<Schema>, handler: ApiHandler<ApiRequestSchemaOutput<Schema>, R, U>): void;
|
|
46
|
+
<P = Payload, R = Result>(path: string, handler: ApiHandler<P, R, U>): void;
|
|
47
|
+
};
|
|
21
48
|
export type Api<U = RBSessionUser> = {
|
|
22
49
|
use: (path: string, middleware: Middleware<U>) => void;
|
|
23
|
-
get: <
|
|
24
|
-
post: <
|
|
25
|
-
put: <
|
|
26
|
-
delete: <
|
|
50
|
+
get: ApiMethod<U>;
|
|
51
|
+
post: ApiMethod<U>;
|
|
52
|
+
put: ApiMethod<U>;
|
|
53
|
+
delete: ApiMethod<U>;
|
|
27
54
|
};
|
|
28
55
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG3D,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,MAAM,WAAW,aAAa;CAAG;AAEjC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG;IAC/E,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC,CAAC,GAAG,IAAI,CAAA;AAEV,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,OAAO,GAAG;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,aAAa,IAAI;IACvC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,OAAO,CAAA;AAE5B,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5G,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG3D,eAAO,MAAM,SAAS,cAAc,CAAA;AAEpC,MAAM,WAAW,aAAa;CAAG;AAEjC,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG;IAC/E,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC,CAAC,GAAG,IAAI,CAAA;AAEV,MAAM,MAAM,UAAU,CAAC,KAAK,GAAG,aAAa,IAAI,OAAO,GAAG;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,aAAa,IAAI;IACvC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,OAAO,GAAG,OAAO,CAAA;AAC7B,MAAM,MAAM,MAAM,GAAG,OAAO,CAAA;AAE5B,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAE5G,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,WAAW,EAAE,CAAA;CACtC,CAAA;AAED,MAAM,MAAM,gBAAgB,CAAC,MAAM,GAAG,OAAO,IAAI;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KACtB;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC/B;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE;YAAE,MAAM,EAAE,SAAS,yBAAyB,EAAE,CAAA;SAAE,CAAA;KAAE,CAAA;CAChF,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,MAAM,SAAS,gBAAgB,GAAG,gBAAgB,IAAI;IACnF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B,GAAG,CACA;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7B,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,gBAAgB,IAChE,MAAM,SAAS,gBAAgB,CAAC,MAAM,MAAM,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;AAEhE,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAG5G,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,aAAa,IAAI;IACzC,CAAC,MAAM,SAAS,gBAAgB,EAAE,CAAC,GAAG,MAAM,EAC1C,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,EACjC,OAAO,EAAE,UAAU,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACxD,IAAI,CAAA;IACP,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;CAC5E,CAAA;AAGD,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,IAAI;IACnC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACvD,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACtB,CAAA"}
|