ts-procedures 2.1.0 → 3.0.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/build/errors.d.ts +2 -1
- package/build/errors.js +3 -2
- package/build/errors.js.map +1 -1
- package/build/errors.test.js +40 -0
- package/build/errors.test.js.map +1 -0
- package/build/implementations/http/express-rpc/index.d.ts +36 -35
- package/build/implementations/http/express-rpc/index.js +29 -13
- package/build/implementations/http/express-rpc/index.js.map +1 -1
- package/build/implementations/http/express-rpc/index.test.js +146 -92
- package/build/implementations/http/express-rpc/index.test.js.map +1 -1
- package/build/implementations/http/hono-rpc/index.d.ts +83 -0
- package/build/implementations/http/hono-rpc/index.js +148 -0
- package/build/implementations/http/hono-rpc/index.js.map +1 -0
- package/build/implementations/http/hono-rpc/index.test.js +647 -0
- package/build/implementations/http/hono-rpc/index.test.js.map +1 -0
- package/build/implementations/http/hono-rpc/types.d.ts +28 -0
- package/build/implementations/http/hono-rpc/types.js.map +1 -0
- package/build/implementations/types.d.ts +1 -1
- package/build/index.d.ts +12 -0
- package/build/index.js +29 -7
- package/build/index.js.map +1 -1
- package/build/index.test.js +65 -0
- package/build/index.test.js.map +1 -1
- package/build/schema/parser.js +3 -0
- package/build/schema/parser.js.map +1 -1
- package/build/schema/parser.test.js +18 -0
- package/build/schema/parser.test.js.map +1 -1
- package/package.json +8 -2
- package/src/errors.test.ts +53 -0
- package/src/errors.ts +4 -2
- package/src/implementations/http/README.md +172 -0
- package/src/implementations/http/express-rpc/README.md +151 -228
- package/src/implementations/http/express-rpc/index.test.ts +167 -93
- package/src/implementations/http/express-rpc/index.ts +67 -38
- package/src/implementations/http/hono-rpc/README.md +293 -0
- package/src/implementations/http/hono-rpc/index.test.ts +847 -0
- package/src/implementations/http/hono-rpc/index.ts +202 -0
- package/src/implementations/http/hono-rpc/types.ts +33 -0
- package/src/implementations/types.ts +2 -1
- package/src/index.test.ts +83 -0
- package/src/index.ts +34 -8
- package/src/schema/parser.test.ts +26 -0
- package/src/schema/parser.ts +5 -1
- package/build/implementations/http/client/index.js +0 -2
- package/build/implementations/http/client/index.js.map +0 -1
- package/build/implementations/http/express/example/factories.d.ts +0 -97
- package/build/implementations/http/express/example/factories.js +0 -4
- package/build/implementations/http/express/example/factories.js.map +0 -1
- package/build/implementations/http/express/example/procedures/auth.d.ts +0 -1
- package/build/implementations/http/express/example/procedures/auth.js +0 -22
- package/build/implementations/http/express/example/procedures/auth.js.map +0 -1
- package/build/implementations/http/express/example/procedures/users.d.ts +0 -1
- package/build/implementations/http/express/example/procedures/users.js +0 -30
- package/build/implementations/http/express/example/procedures/users.js.map +0 -1
- package/build/implementations/http/express/example/server.d.ts +0 -3
- package/build/implementations/http/express/example/server.js +0 -49
- package/build/implementations/http/express/example/server.js.map +0 -1
- package/build/implementations/http/express/example/server.test.d.ts +0 -1
- package/build/implementations/http/express/example/server.test.js +0 -110
- package/build/implementations/http/express/example/server.test.js.map +0 -1
- package/build/implementations/http/express/index.d.ts +0 -35
- package/build/implementations/http/express/index.js +0 -75
- package/build/implementations/http/express/index.js.map +0 -1
- package/build/implementations/http/express/index.test.js +0 -329
- package/build/implementations/http/express/index.test.js.map +0 -1
- package/build/implementations/http/express/types.d.ts +0 -17
- package/build/implementations/http/express/types.js.map +0 -1
- /package/build/{implementations/http/client/index.d.ts → errors.test.d.ts} +0 -0
- /package/build/implementations/http/{express → hono-rpc}/index.test.d.ts +0 -0
- /package/build/implementations/http/{express → hono-rpc}/types.js +0 -0
package/build/errors.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare class ProcedureError extends Error {
|
|
|
3
3
|
readonly procedureName: string;
|
|
4
4
|
readonly message: string;
|
|
5
5
|
readonly meta?: object | undefined;
|
|
6
|
+
cause?: unknown;
|
|
6
7
|
constructor(procedureName: string, message: string, meta?: object | undefined);
|
|
7
8
|
}
|
|
8
9
|
export declare class ProcedureValidationError extends ProcedureError {
|
|
@@ -10,7 +11,7 @@ export declare class ProcedureValidationError extends ProcedureError {
|
|
|
10
11
|
readonly errors?: TSchemaValidationError[] | undefined;
|
|
11
12
|
constructor(procedureName: string, message: string, errors?: TSchemaValidationError[] | undefined);
|
|
12
13
|
}
|
|
13
|
-
export declare class ProcedureRegistrationError extends
|
|
14
|
+
export declare class ProcedureRegistrationError extends ProcedureError {
|
|
14
15
|
readonly procedureName: string;
|
|
15
16
|
constructor(procedureName: string, message: string);
|
|
16
17
|
}
|
package/build/errors.js
CHANGED
|
@@ -2,6 +2,7 @@ export class ProcedureError extends Error {
|
|
|
2
2
|
procedureName;
|
|
3
3
|
message;
|
|
4
4
|
meta;
|
|
5
|
+
cause;
|
|
5
6
|
constructor(procedureName, message, meta) {
|
|
6
7
|
super(message);
|
|
7
8
|
this.procedureName = procedureName;
|
|
@@ -24,10 +25,10 @@ export class ProcedureValidationError extends ProcedureError {
|
|
|
24
25
|
Object.setPrototypeOf(this, ProcedureValidationError.prototype);
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
|
-
export class ProcedureRegistrationError extends
|
|
28
|
+
export class ProcedureRegistrationError extends ProcedureError {
|
|
28
29
|
procedureName;
|
|
29
30
|
constructor(procedureName, message) {
|
|
30
|
-
super(message);
|
|
31
|
+
super(procedureName, message);
|
|
31
32
|
this.procedureName = procedureName;
|
|
32
33
|
this.name = 'ProcedureRegistrationError';
|
|
33
34
|
// https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/
|
package/build/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAe,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,cAAe,SAAQ,KAAK;IAI5B;IACA;IACA;IALX,KAAK,CAAU;IAEf,YACW,aAAqB,EACrB,OAAe,EACf,IAAa;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAA;QAJL,kBAAa,GAAb,aAAa,CAAQ;QACrB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAE5B,mGAAmG;QACnG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAE/C;IAEA;IAHX,YACW,aAAqB,EAC9B,OAAe,EACN,MAAiC;QAE1C,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QAJpB,kBAAa,GAAb,aAAa,CAAQ;QAErB,WAAM,GAAN,MAAM,CAA2B;QAG1C,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;QAEtC,mGAAmG;QACnG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAA;IACjE,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,cAAc;IACvC;IAArB,YAAqB,aAAqB,EAAE,OAAe;QACzD,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA;QADV,kBAAa,GAAb,aAAa,CAAQ;QAExC,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAA;QAExC,mGAAmG;QACnG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAA;IACnE,CAAC;CACF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
import { ProcedureError, ProcedureValidationError, ProcedureRegistrationError, } from './errors.js';
|
|
3
|
+
describe('Error Classes', () => {
|
|
4
|
+
test('ProcedureError has correct properties', () => {
|
|
5
|
+
const err = new ProcedureError('TestProc', 'Something failed', { code: 123 });
|
|
6
|
+
expect(err.name).toBe('ProcedureError');
|
|
7
|
+
expect(err.procedureName).toBe('TestProc');
|
|
8
|
+
expect(err.message).toBe('Something failed');
|
|
9
|
+
expect(err.meta).toEqual({ code: 123 });
|
|
10
|
+
expect(err instanceof Error).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
test('ProcedureValidationError extends ProcedureError', () => {
|
|
13
|
+
const err = new ProcedureValidationError('TestProc', 'Validation failed', []);
|
|
14
|
+
expect(err instanceof ProcedureError).toBe(true);
|
|
15
|
+
expect(err instanceof Error).toBe(true);
|
|
16
|
+
expect(err.name).toBe('ProcedureValidationError');
|
|
17
|
+
});
|
|
18
|
+
test('ProcedureRegistrationError extends ProcedureError', () => {
|
|
19
|
+
const err = new ProcedureRegistrationError('TestProc', 'Registration failed');
|
|
20
|
+
expect(err instanceof ProcedureError).toBe(true);
|
|
21
|
+
expect(err instanceof Error).toBe(true);
|
|
22
|
+
expect(err.name).toBe('ProcedureRegistrationError');
|
|
23
|
+
expect(err.procedureName).toBe('TestProc');
|
|
24
|
+
});
|
|
25
|
+
test('ProcedureError supports cause property', () => {
|
|
26
|
+
const cause = new Error('Original error');
|
|
27
|
+
const err = new ProcedureError('TestProc', 'Wrapped error');
|
|
28
|
+
err.cause = cause;
|
|
29
|
+
expect(err.cause).toBe(cause);
|
|
30
|
+
});
|
|
31
|
+
test('All error types have consistent procedureName property', () => {
|
|
32
|
+
const baseErr = new ProcedureError('Proc1', 'message');
|
|
33
|
+
const validationErr = new ProcedureValidationError('Proc2', 'message', []);
|
|
34
|
+
const registrationErr = new ProcedureRegistrationError('Proc3', 'message');
|
|
35
|
+
expect(baseErr.procedureName).toBe('Proc1');
|
|
36
|
+
expect(validationErr.procedureName).toBe('Proc2');
|
|
37
|
+
expect(registrationErr.procedureName).toBe('Proc3');
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,20 @@ import { TProcedureRegistration } from '../../../index.js';
|
|
|
3
3
|
import { RPCConfig, RPCHttpRouteDoc } from '../../types.js';
|
|
4
4
|
import { ExtractContext, ProceduresFactory } from './types.js';
|
|
5
5
|
export type { RPCConfig, RPCHttpRouteDoc };
|
|
6
|
+
export type ExpressRPCAppBuilderConfig = {
|
|
7
|
+
/**
|
|
8
|
+
* An existing Express application instance to use.
|
|
9
|
+
* When provided, ensure to set up necessary middleware (e.g., json/body parser) beforehand.
|
|
10
|
+
* If not provided, a new instance will be created.
|
|
11
|
+
*/
|
|
12
|
+
app?: express.Express;
|
|
13
|
+
/** Optional path prefix for all RPC routes. */
|
|
14
|
+
pathPrefix?: string;
|
|
15
|
+
onRequestStart?: (req: express.Request) => void;
|
|
16
|
+
onRequestEnd?: (req: express.Request, res: express.Response) => void;
|
|
17
|
+
onSuccess?: (procedure: TProcedureRegistration, req: express.Request, res: express.Response) => void;
|
|
18
|
+
error?: (procedure: TProcedureRegistration, req: express.Request, res: express.Response, error: Error) => void;
|
|
19
|
+
};
|
|
6
20
|
/**
|
|
7
21
|
* Builder class for creating an Express application with RPC routes.
|
|
8
22
|
*
|
|
@@ -19,35 +33,32 @@ export type { RPCConfig, RPCHttpRouteDoc };
|
|
|
19
33
|
* const docs = rpcApp.docs; // RPC route documentation
|
|
20
34
|
*/
|
|
21
35
|
export declare class ExpressRPCAppBuilder {
|
|
22
|
-
readonly config?:
|
|
23
|
-
/**
|
|
24
|
-
* An existing Express application instance to use.
|
|
25
|
-
* When provided, ensure to set up necessary middleware (e.g., json/body parser) beforehand.
|
|
26
|
-
* If not provided, a new instance will be created.
|
|
27
|
-
*/
|
|
28
|
-
app?: express.Express;
|
|
29
|
-
onRequestStart?: (req: express.Request) => void;
|
|
30
|
-
onRequestEnd?: (req: express.Request, res: express.Response) => void;
|
|
31
|
-
onSuccess?: (procedure: TProcedureRegistration, req: express.Request, res: express.Response) => void;
|
|
32
|
-
error?: (procedure: TProcedureRegistration, req: express.Request, res: express.Response, error: Error) => void;
|
|
33
|
-
} | undefined;
|
|
36
|
+
readonly config?: ExpressRPCAppBuilderConfig | undefined;
|
|
34
37
|
/**
|
|
35
38
|
* Constructor for ExpressRPCAppBuilder.
|
|
36
39
|
*
|
|
37
40
|
* @param config
|
|
38
41
|
*/
|
|
39
|
-
constructor(config?:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
42
|
+
constructor(config?: ExpressRPCAppBuilderConfig | undefined);
|
|
43
|
+
/**
|
|
44
|
+
* Generates the RPC route path based on the RPC configuration.
|
|
45
|
+
* The RPCConfig name can be a string or an array of strings to form nested paths.
|
|
46
|
+
*
|
|
47
|
+
* Example
|
|
48
|
+
* name: ['string', 'string-string', 'string']
|
|
49
|
+
* path: /string/string-string/string/version
|
|
50
|
+
* @param config
|
|
51
|
+
*/
|
|
52
|
+
static makeRPCHttpRoutePath({ name, config, prefix, }: {
|
|
53
|
+
name: string;
|
|
54
|
+
prefix?: string;
|
|
55
|
+
config: RPCConfig;
|
|
56
|
+
}): string;
|
|
57
|
+
/**
|
|
58
|
+
* Instance method wrapper for makeRPCHttpRoutePath that uses the builder's pathPrefix.
|
|
59
|
+
* @param config - The RPC configuration
|
|
60
|
+
*/
|
|
61
|
+
makeRPCHttpRoutePath(name: string, config: RPCConfig): string;
|
|
51
62
|
private factories;
|
|
52
63
|
private _app;
|
|
53
64
|
private _docs;
|
|
@@ -69,15 +80,5 @@ export declare class ExpressRPCAppBuilder {
|
|
|
69
80
|
* Generates the RPC HTTP route for the given procedure.
|
|
70
81
|
* @param procedure
|
|
71
82
|
*/
|
|
72
|
-
buildRpcHttpRouteDoc
|
|
73
|
-
/**
|
|
74
|
-
* Generates the RPC route path based on the RPC configuration.
|
|
75
|
-
* The RPCConfig name can be a string or an array of strings to form nested paths.
|
|
76
|
-
*
|
|
77
|
-
* Example
|
|
78
|
-
* name: ['string', 'string-string', 'string']
|
|
79
|
-
* path: /rpc/string/string-string/string/version
|
|
80
|
-
* @param config
|
|
81
|
-
*/
|
|
82
|
-
makeRPCHttpRoutePath(config: RPCConfig): string;
|
|
83
|
+
private buildRpcHttpRouteDoc;
|
|
83
84
|
}
|
|
@@ -47,6 +47,30 @@ export class ExpressRPCAppBuilder {
|
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Generates the RPC route path based on the RPC configuration.
|
|
52
|
+
* The RPCConfig name can be a string or an array of strings to form nested paths.
|
|
53
|
+
*
|
|
54
|
+
* Example
|
|
55
|
+
* name: ['string', 'string-string', 'string']
|
|
56
|
+
* path: /string/string-string/string/version
|
|
57
|
+
* @param config
|
|
58
|
+
*/
|
|
59
|
+
static makeRPCHttpRoutePath({ name, config, prefix, }) {
|
|
60
|
+
const normalizedPrefix = prefix ? (prefix.startsWith('/') ? prefix : `/${prefix}`) : '';
|
|
61
|
+
return `${normalizedPrefix}/${castArray(config.scope).map(kebabCase).join('/')}/${kebabCase(name)}/${String(config.version).trim()}`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Instance method wrapper for makeRPCHttpRoutePath that uses the builder's pathPrefix.
|
|
65
|
+
* @param config - The RPC configuration
|
|
66
|
+
*/
|
|
67
|
+
makeRPCHttpRoutePath(name, config) {
|
|
68
|
+
return ExpressRPCAppBuilder.makeRPCHttpRoutePath({
|
|
69
|
+
name,
|
|
70
|
+
config,
|
|
71
|
+
prefix: this.config?.pathPrefix,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
50
74
|
factories = [];
|
|
51
75
|
_app = express();
|
|
52
76
|
_docs = [];
|
|
@@ -113,7 +137,11 @@ export class ExpressRPCAppBuilder {
|
|
|
113
137
|
*/
|
|
114
138
|
buildRpcHttpRouteDoc(procedure) {
|
|
115
139
|
const { config } = procedure;
|
|
116
|
-
const path =
|
|
140
|
+
const path = ExpressRPCAppBuilder.makeRPCHttpRoutePath({
|
|
141
|
+
name: procedure.name,
|
|
142
|
+
config,
|
|
143
|
+
prefix: this.config?.pathPrefix,
|
|
144
|
+
});
|
|
117
145
|
const method = 'post'; // RPCs use POST method
|
|
118
146
|
const jsonSchema = {};
|
|
119
147
|
if (config.schema?.params) {
|
|
@@ -128,17 +156,5 @@ export class ExpressRPCAppBuilder {
|
|
|
128
156
|
jsonSchema,
|
|
129
157
|
};
|
|
130
158
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Generates the RPC route path based on the RPC configuration.
|
|
133
|
-
* The RPCConfig name can be a string or an array of strings to form nested paths.
|
|
134
|
-
*
|
|
135
|
-
* Example
|
|
136
|
-
* name: ['string', 'string-string', 'string']
|
|
137
|
-
* path: /rpc/string/string-string/string/version
|
|
138
|
-
* @param config
|
|
139
|
-
*/
|
|
140
|
-
makeRPCHttpRoutePath(config) {
|
|
141
|
-
return `/rpc/${castArray(config.name).map(kebabCase).join('/')}/${String(config.version).trim()}`;
|
|
142
|
-
}
|
|
143
159
|
}
|
|
144
160
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/implementations/http/express-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/implementations/http/express-rpc/index.ts"],"names":[],"mappings":"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"}
|