@cripty2001/utils 0.0.200 → 0.0.201
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/Appserver/server.d.ts +1 -15
- package/dist/Appserver/server.js +8 -13
- package/package.json +3 -1
|
@@ -3,10 +3,6 @@ import { AppserverData } from './common';
|
|
|
3
3
|
export type { AppserverData };
|
|
4
4
|
export { Static, TSchema, Type } from '@sinclair/typebox';
|
|
5
5
|
export { Value } from '@sinclair/typebox/value';
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated use AppserverPublicHandler and AppserverPrivateHandler instead, that offers better typescript support
|
|
8
|
-
*/
|
|
9
|
-
export type AppserverHandler<I extends AppserverData, U extends AppserverData, O extends AppserverData> = (input: I, user: U | null) => Promise<O> | O;
|
|
10
6
|
export type AppserverPublicHandler<I extends AppserverData, O extends AppserverData> = (input: I) => Promise<O> | O;
|
|
11
7
|
export type AppserverPrivateHandler<I extends AppserverData, U extends AppserverData, O extends AppserverData> = (input: I, user: U) => Promise<O> | O;
|
|
12
8
|
export type AppserverUsergetter<U extends AppserverData> = (token: string) => Promise<U | null>;
|
|
@@ -42,20 +38,10 @@ export declare class Appserver<U extends AppserverData> {
|
|
|
42
38
|
private parseUser;
|
|
43
39
|
private getMetrics;
|
|
44
40
|
private registered;
|
|
45
|
-
constructor(port: number, parseUser: AppserverUsergetter<U>, getMetrics: () => Record<string, number
|
|
41
|
+
constructor(port: number, parseUser: AppserverUsergetter<U>, getMetrics: () => Record<string, number>, origins?: string[]);
|
|
46
42
|
private registerAuth;
|
|
47
43
|
private handleMetricsRequest;
|
|
48
44
|
private parseInput;
|
|
49
|
-
/**
|
|
50
|
-
* Registers a msgpack RPC endpoint under `/exec/${action}`.
|
|
51
|
-
* @param action unique action name (duplicates throw)
|
|
52
|
-
* @param inputSchema typebox schema used for runtime validation
|
|
53
|
-
* @param auth when true rejects requests without a valid user
|
|
54
|
-
* @param handler business logic returning serializable data
|
|
55
|
-
*
|
|
56
|
-
* @deprecated use registerPublic and registerPrivate instead, that offers better typescript support
|
|
57
|
-
*/
|
|
58
|
-
register<ISchema extends TSchema, O extends AppserverData, I extends Static<ISchema> & AppserverData = Static<ISchema> & AppserverData>(action: string, inputSchema: ISchema, auth: boolean, handler: AppserverHandler<I, U, O>): void;
|
|
59
45
|
registerPublic<ISchema extends TSchema, O extends AppserverData, I extends Static<ISchema> & AppserverData = Static<ISchema> & AppserverData>(action: string, inputSchema: ISchema, handler: AppserverPublicHandler<I, O>): void;
|
|
60
46
|
registerPrivate<ISchema extends TSchema, O extends AppserverData, I extends Static<ISchema> & AppserverData = Static<ISchema> & AppserverData>(action: string, inputSchema: ISchema, handler: AppserverPrivateHandler<I, U, O>): void;
|
|
61
47
|
private unsafeRegister;
|
package/dist/Appserver/server.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.Appserver = exports.AppserverHandledError = exports.AppserverAuthError =
|
|
|
7
7
|
const msgpack_1 = require("@msgpack/msgpack");
|
|
8
8
|
const typebox_1 = require("@sinclair/typebox");
|
|
9
9
|
const value_1 = require("@sinclair/typebox/value");
|
|
10
|
+
const cors_1 = __importDefault(require("cors"));
|
|
10
11
|
const express_1 = __importDefault(require("express"));
|
|
11
12
|
// Helpful for avoiding sinclair version mismatch between this and the actual user of the package
|
|
12
13
|
var typebox_2 = require("@sinclair/typebox");
|
|
@@ -57,11 +58,17 @@ class Appserver {
|
|
|
57
58
|
parseUser;
|
|
58
59
|
getMetrics;
|
|
59
60
|
registered = new Set();
|
|
60
|
-
constructor(port, parseUser, getMetrics) {
|
|
61
|
+
constructor(port, parseUser, getMetrics, origins = []) {
|
|
61
62
|
this.parseUser = parseUser;
|
|
62
63
|
this.getMetrics = getMetrics;
|
|
63
64
|
this.app = (0, express_1.default)();
|
|
64
65
|
this.app.listen(port);
|
|
66
|
+
if (origins.length > 0) {
|
|
67
|
+
this.app.use((0, cors_1.default)({
|
|
68
|
+
origin: origins,
|
|
69
|
+
credentials: true
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
65
72
|
this.app.get('/metrics', async (req, res) => {
|
|
66
73
|
await this.handleMetricsRequest(req, res);
|
|
67
74
|
});
|
|
@@ -122,18 +129,6 @@ class Appserver {
|
|
|
122
129
|
user: token ? await this.parseUser(token) : null
|
|
123
130
|
};
|
|
124
131
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Registers a msgpack RPC endpoint under `/exec/${action}`.
|
|
127
|
-
* @param action unique action name (duplicates throw)
|
|
128
|
-
* @param inputSchema typebox schema used for runtime validation
|
|
129
|
-
* @param auth when true rejects requests without a valid user
|
|
130
|
-
* @param handler business logic returning serializable data
|
|
131
|
-
*
|
|
132
|
-
* @deprecated use registerPublic and registerPrivate instead, that offers better typescript support
|
|
133
|
-
*/
|
|
134
|
-
register(action, inputSchema, auth, handler) {
|
|
135
|
-
this.unsafeRegister(`/exec/${action}`, inputSchema, auth, handler);
|
|
136
|
-
}
|
|
137
132
|
registerPublic(action, inputSchema, handler) {
|
|
138
133
|
this.unsafeRegister(`/exec/${action}`, inputSchema, false, handler);
|
|
139
134
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cripty2001/utils",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.201",
|
|
4
4
|
"description": "Internal Set of utils. If you need them use them, otherwise go to the next package ;)",
|
|
5
5
|
"homepage": "https://github.com/cripty2001/utils#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -23,9 +23,11 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@cripty2001/whispr": "^0.4.1",
|
|
26
|
+
"cors": "^2.8.6",
|
|
26
27
|
"lodash": "^4.17.21"
|
|
27
28
|
},
|
|
28
29
|
"devDependencies": {
|
|
30
|
+
"@types/cors": "^2.8.19",
|
|
29
31
|
"@types/express": "^5.0.5",
|
|
30
32
|
"@types/lodash": "^4.17.21",
|
|
31
33
|
"@types/mjml": "^4.7.4",
|