temba 0.46.1 → 0.49.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/README.md +1 -1
- package/config/index.d.ts.map +1 -1
- package/config/index.js +6 -3
- package/config/index.js.map +1 -1
- package/etags/etags.js +1 -1
- package/etags/etags.js.map +1 -1
- package/index.d.ts +1 -3
- package/index.d.ts.map +1 -1
- package/index.js +4 -5
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/requestHandlers/delete.d.ts +3 -0
- package/requestHandlers/delete.d.ts.map +1 -1
- package/requestHandlers/delete.js +49 -48
- package/requestHandlers/delete.js.map +1 -1
- package/requestHandlers/get.d.ts +3 -4
- package/requestHandlers/get.d.ts.map +1 -1
- package/requestHandlers/get.js +38 -37
- package/requestHandlers/get.js.map +1 -1
- package/requestHandlers/index.d.ts +13 -11
- package/requestHandlers/index.d.ts.map +1 -1
- package/requestHandlers/index.js +16 -5
- package/requestHandlers/index.js.map +1 -1
- package/requestHandlers/patch.d.ts +1 -3
- package/requestHandlers/patch.d.ts.map +1 -1
- package/requestHandlers/patch.js +39 -38
- package/requestHandlers/patch.js.map +1 -1
- package/requestHandlers/post.d.ts +4 -0
- package/requestHandlers/post.d.ts.map +1 -1
- package/requestHandlers/post.js +39 -38
- package/requestHandlers/post.js.map +1 -1
- package/requestHandlers/put.d.ts +1 -3
- package/requestHandlers/put.d.ts.map +1 -1
- package/requestHandlers/put.js +39 -38
- package/requestHandlers/put.js.map +1 -1
- package/requestInterceptor/interceptRequest.d.ts +13 -5
- package/requestInterceptor/interceptRequest.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.js +33 -15
- package/requestInterceptor/interceptRequest.js.map +1 -1
- package/requestInterceptor/interceptorActions.d.ts +28 -0
- package/requestInterceptor/interceptorActions.d.ts.map +1 -0
- package/requestInterceptor/interceptorActions.js +42 -0
- package/requestInterceptor/interceptorActions.js.map +1 -0
- package/requestInterceptor/types.d.ts +8 -7
- package/requestInterceptor/types.d.ts.map +1 -1
- package/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
- package/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -1
- package/responseBodyInterceptor/interceptResponseBody.js +2 -2
- package/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
- package/responseBodyInterceptor/types.d.ts +2 -1
- package/responseBodyInterceptor/types.d.ts.map +1 -1
- package/types.d.ts +2 -0
- package/types.d.ts.map +1 -0
- package/types.js +3 -0
- package/types.js.map +1 -0
- package/urls/urlParser.d.ts.map +1 -1
- package/urls/urlParser.js +2 -1
- package/urls/urlParser.js.map +1 -1
- package/version.js +1 -1
- package/requestInterceptor/TembaError.d.ts +0 -5
- package/requestInterceptor/TembaError.d.ts.map +0 -1
- package/requestInterceptor/TembaError.js +0 -9
- package/requestInterceptor/TembaError.js.map +0 -1
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ You’ll see:
|
|
|
37
37
|
|
|
38
38
|
Now you can send any HTTP request to any resource on localhost:8362 — and it just works.
|
|
39
39
|
|
|
40
|
-
Or
|
|
40
|
+
Or head over to the interactive OpenAPI specification of your API in your browser at `/openapi`.
|
|
41
41
|
|
|
42
42
|
## Documentation
|
|
43
43
|
|
package/config/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAA;AAEpD,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC7C,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;IAEtB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IAGvB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAsBD,eAAO,MAAM,UAAU,GAAI,aAAa,UAAU,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,KAAK,YAAY,GAAG,MAAM,CAAA;AAE1B,KAAK,gBAAgB,GAAG;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,SAAS,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC,EAAE,CAAA;AAEpD,KAAK,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEtD,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAA;IAC7C,uBAAuB,EAAE,uBAAuB,GAAG,IAAI,CAAA;IACvD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,aAAa,CAAA;IAEtB,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IAGvB,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,eAAe,CAAC,EAAE,eAAe,CAAA;CAClC,CAAA;AAsBD,eAAO,MAAM,UAAU,GAAI,aAAa,UAAU,KAAG,MA8GpD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAAyC,CAAA"}
|
package/config/index.js
CHANGED
|
@@ -25,7 +25,6 @@ export const initConfig = (userConfig) => {
|
|
|
25
25
|
config.validateResources = true;
|
|
26
26
|
}
|
|
27
27
|
if (userConfig.staticFolder) {
|
|
28
|
-
//TODO define/what happens when the replace results in an empty string
|
|
29
28
|
const staticFolder = userConfig.staticFolder.replace(/[^a-zA-Z0-9]/g, '');
|
|
30
29
|
if (staticFolder.length > 0) {
|
|
31
30
|
config.staticFolder = staticFolder;
|
|
@@ -34,8 +33,12 @@ export const initConfig = (userConfig) => {
|
|
|
34
33
|
}
|
|
35
34
|
}
|
|
36
35
|
if (userConfig.apiPrefix) {
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
const cleanPrefix = userConfig.apiPrefix.replace(/[^a-zA-Z0-9]/g, '');
|
|
37
|
+
// Only apply if the result is a valid string.
|
|
38
|
+
// This prevents overwriting the 'api' default if the user input was invalid.
|
|
39
|
+
if (cleanPrefix.length > 0) {
|
|
40
|
+
config.apiPrefix = cleanPrefix;
|
|
41
|
+
}
|
|
39
42
|
}
|
|
40
43
|
if (userConfig.connectionString && userConfig.connectionString.length > 0) {
|
|
41
44
|
config.connectionString = userConfig.connectionString;
|
package/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AA4DA,MAAM,aAAa,GAAW;IAC5B,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE,CAAC;IACR,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,IAAI;IAC7B,gBAAgB,EAAE,IAAI;IACtB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,qBAAqB,EAAE,KAAK;IAC5B,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,IAAI;IAEb,SAAS,EAAE,KAAK;IAChB,eAAe,EAAE,IAAI;CACtB,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAAuB,EAAU,EAAE;IAC5D,IAAI,CAAC,UAAU;QAAE,OAAO,aAAa,CAAA;IAErC,MAAM,MAAM,GAAG,EAAE,GAAG,aAAa,EAAY,CAAA;IAE7C,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;QACvC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAA;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/etags/etags.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import etagFromExpress, {} from 'etag';
|
|
2
|
-
// Temba uses
|
|
2
|
+
// Temba uses the `etag` module both to generate and compare ETags.
|
|
3
3
|
// Express only supports generating them, so to be sure we use the same algorithm for both,
|
|
4
4
|
// we use the etag module for both by wrapping it here.
|
|
5
5
|
// This means we also override the default Express etag function, but that's with the same algorithm.
|
package/etags/etags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"etags.js","sourceRoot":"","sources":["../../../src/etags/etags.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,EAAE,EAAkB,MAAM,MAAM,CAAA;AAEtD,
|
|
1
|
+
{"version":3,"file":"etags.js","sourceRoot":"","sources":["../../../src/etags/etags.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,EAAE,EAAkB,MAAM,MAAM,CAAA;AAEtD,mEAAmE;AACnE,2FAA2F;AAC3F,uDAAuD;AACvD,qGAAqG;AAErG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAmC,EAAE,EAAE;IAC1D,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC,CAAA"}
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { type UserConfig } from './config/index.js';
|
|
2
2
|
import type { IncomingMessage, ServerResponse } from 'http';
|
|
3
|
-
import { TembaError as TembaErrorInternal } from './requestInterceptor/TembaError.js';
|
|
4
3
|
export declare const create: (userConfig?: UserConfig) => Promise<{
|
|
5
4
|
start: () => import("http").Server<typeof IncomingMessage, typeof ServerResponse> | undefined;
|
|
6
|
-
server: import("http").Server<typeof IncomingMessage, typeof ServerResponse
|
|
5
|
+
server: import("http").Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
7
6
|
}>;
|
|
8
|
-
export declare const TembaError: typeof TembaErrorInternal;
|
|
9
7
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAyF3D,eAAO,MAAM,MAAM,GAAI,aAAa,UAAU;;;EAA6B,CAAA"}
|
package/index.js
CHANGED
|
@@ -4,7 +4,6 @@ import { createResourceHandler } from './resourceHandler.js';
|
|
|
4
4
|
import { handleNotFound, sendErrorResponse } from './responseHandler.js';
|
|
5
5
|
import { getHttpLogger, initLogger } from './log/logger.js';
|
|
6
6
|
import { createOpenApiHandler, getOpenApiPaths } from './openapi/index.js';
|
|
7
|
-
import { TembaError as TembaErrorInternal } from './requestInterceptor/TembaError.js';
|
|
8
7
|
import { handleStaticFolder } from './staticFolder/staticFolder.js';
|
|
9
8
|
import { getDefaultImplementations } from './implementations.js';
|
|
10
9
|
import { createRootUrlHandler } from './root/root.js';
|
|
@@ -13,7 +12,7 @@ import { createQueries } from './data/queries.js';
|
|
|
13
12
|
import { compileSchemas } from './schema/compile.js';
|
|
14
13
|
const removePendingAndTrailingSlashes = (url) => (url ? url.replace(/^\/+|\/+$/g, '') : '');
|
|
15
14
|
const handleOptionsRequest = (res) => sendResponse(res)({
|
|
16
|
-
statusCode:
|
|
15
|
+
statusCode: 204,
|
|
17
16
|
});
|
|
18
17
|
const createServer = async (userConfig) => {
|
|
19
18
|
const config = initConfig(userConfig);
|
|
@@ -60,6 +59,7 @@ const createServer = async (userConfig) => {
|
|
|
60
59
|
});
|
|
61
60
|
return {
|
|
62
61
|
start: () => {
|
|
62
|
+
// Do not start the server if isTesting is true as supertest starts and stops the server itself.
|
|
63
63
|
if (config.isTesting) {
|
|
64
64
|
log.error('⛔️ Server not started. Remove or disable isTesting from your config.');
|
|
65
65
|
return;
|
|
@@ -69,10 +69,9 @@ const createServer = async (userConfig) => {
|
|
|
69
69
|
});
|
|
70
70
|
return server;
|
|
71
71
|
},
|
|
72
|
-
// Expose the http server
|
|
73
|
-
server
|
|
72
|
+
// Expose the http server
|
|
73
|
+
server,
|
|
74
74
|
};
|
|
75
75
|
};
|
|
76
76
|
export const create = (userConfig) => createServer(userConfig);
|
|
77
|
-
export const TembaError = TembaErrorInternal;
|
|
78
77
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAmB,MAAM,UAAU,CAAA;AAEtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,9 @@ import type { Queries } from '../data/types.js';
|
|
|
2
2
|
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
3
3
|
import type { DeleteRequest } from './types.js';
|
|
4
4
|
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null, etagsEnabled: boolean) => (req: DeleteRequest) => Promise<{
|
|
5
|
+
statusCode: number;
|
|
6
|
+
body: import("./types.js").Body | undefined;
|
|
7
|
+
} | {
|
|
5
8
|
statusCode: number;
|
|
6
9
|
body: {
|
|
7
10
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,uBAAuB,OAAO,EAC9B,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,cAAc,OAAO,WAEY,aAAa;;;;;;;;;;;EAgF/C,CAAA"}
|
|
@@ -1,41 +1,32 @@
|
|
|
1
1
|
import { etag } from '../etags/etags.js';
|
|
2
2
|
import { interceptDeleteRequest } from '../requestInterceptor/interceptRequest.js';
|
|
3
|
-
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
4
3
|
export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor, etagsEnabled) => {
|
|
5
4
|
const handleDelete = async (req) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
catch (error) {
|
|
5
|
+
const { headers, resource, id } = req;
|
|
6
|
+
if (requestInterceptor?.delete) {
|
|
7
|
+
try {
|
|
8
|
+
const interceptResult = await interceptDeleteRequest(requestInterceptor.delete, headers, resource, id);
|
|
9
|
+
// If interceptor returned a response action, return immediately
|
|
10
|
+
if (interceptResult.type === 'response') {
|
|
13
11
|
return {
|
|
14
|
-
statusCode:
|
|
15
|
-
body:
|
|
12
|
+
statusCode: interceptResult.status,
|
|
13
|
+
body: interceptResult.body,
|
|
16
14
|
};
|
|
17
15
|
}
|
|
18
16
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
await queries.deleteById(resource, id);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
// Even when deleting a non existing item, we still need an etag.
|
|
37
|
-
// The client needs to do a GET to determine it, after which it finds out the item is gone.
|
|
38
|
-
if (etagsEnabled && !req.etag) {
|
|
17
|
+
catch (error) {
|
|
18
|
+
return {
|
|
19
|
+
statusCode: 500,
|
|
20
|
+
body: { message: error.message },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (id) {
|
|
25
|
+
const item = await queries.getById(resource, id);
|
|
26
|
+
if (item) {
|
|
27
|
+
if (etagsEnabled) {
|
|
28
|
+
const itemEtag = etag(JSON.stringify(item));
|
|
29
|
+
if (req.etag !== itemEtag) {
|
|
39
30
|
return {
|
|
40
31
|
statusCode: 412,
|
|
41
32
|
body: {
|
|
@@ -44,30 +35,40 @@ export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterc
|
|
|
44
35
|
};
|
|
45
36
|
}
|
|
46
37
|
}
|
|
38
|
+
await queries.deleteById(resource, id);
|
|
47
39
|
}
|
|
48
40
|
else {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
body: {
|
|
59
|
-
message: 'Precondition failed',
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
41
|
+
// Even when deleting a non existing item, we still need an etag.
|
|
42
|
+
// The client needs to do a GET to determine it, after which it finds out the item is gone.
|
|
43
|
+
if (etagsEnabled && !req.etag) {
|
|
44
|
+
return {
|
|
45
|
+
statusCode: 412,
|
|
46
|
+
body: {
|
|
47
|
+
message: 'Precondition failed',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
63
50
|
}
|
|
64
|
-
await queries.deleteAll(resource);
|
|
65
51
|
}
|
|
66
|
-
return { statusCode: 204 };
|
|
67
52
|
}
|
|
68
|
-
|
|
69
|
-
|
|
53
|
+
else {
|
|
54
|
+
if (!allowDeleteCollection) {
|
|
55
|
+
return { statusCode: 405 };
|
|
56
|
+
}
|
|
57
|
+
if (etagsEnabled) {
|
|
58
|
+
const items = await queries.getAll(resource);
|
|
59
|
+
const etagValue = etag(JSON.stringify(items));
|
|
60
|
+
if (req.etag !== etagValue) {
|
|
61
|
+
return {
|
|
62
|
+
statusCode: 412,
|
|
63
|
+
body: {
|
|
64
|
+
message: 'Precondition failed',
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
await queries.deleteAll(resource);
|
|
70
70
|
}
|
|
71
|
+
return { statusCode: 204 };
|
|
71
72
|
};
|
|
72
73
|
return handleDelete;
|
|
73
74
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAI/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAgB,EAChB,qBAA8B,EAC9B,kBAA6C,EAC7C,YAAqB,EACrB,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;QAErC,IAAI,kBAAkB,EAAE,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAClD,kBAAkB,CAAC,MAAM,EACzB,OAAO,EACP,QAAQ,EACR,EAAE,CACH,CAAA;gBAED,gEAAgE;gBAChE,IAAI,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO;wBACL,UAAU,EAAE,eAAe,CAAC,MAAM;wBAClC,IAAI,EAAE,eAAe,CAAC,IAAI;qBAC3B,CAAA;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,OAAO;oBACL,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;iBAC5C,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAChD,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC1B,OAAO;4BACL,UAAU,EAAE,GAAG;4BACf,IAAI,EAAE;gCACJ,OAAO,EAAE,qBAAqB;6BAC/B;yBACF,CAAA;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YACxC,CAAC;iBAAM,CAAC;gBACN,iEAAiE;gBACjE,2FAA2F;gBAC3F,IAAI,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;YAC5B,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO;wBACL,UAAU,EAAE,GAAG;wBACf,IAAI,EAAE;4BACJ,OAAO,EAAE,qBAAqB;yBAC/B;qBACF,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA;IAC5B,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
|
package/requestHandlers/get.d.ts
CHANGED
|
@@ -3,10 +3,6 @@ import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
|
3
3
|
import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
|
|
4
4
|
import type { Body, GetRequest } from './types.js';
|
|
5
5
|
export declare const createGetRoutes: (queries: Queries, requestInterceptor: RequestInterceptor | null, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean, etagsEnabled: boolean) => (req: GetRequest) => Promise<{
|
|
6
|
-
statusCode: number;
|
|
7
|
-
body: Body;
|
|
8
|
-
headers?: undefined;
|
|
9
|
-
} | {
|
|
10
6
|
statusCode: number;
|
|
11
7
|
headers: {
|
|
12
8
|
etag: string;
|
|
@@ -18,6 +14,9 @@ export declare const createGetRoutes: (queries: Queries, requestInterceptor: Req
|
|
|
18
14
|
headers: {
|
|
19
15
|
etag: string;
|
|
20
16
|
};
|
|
17
|
+
} | {
|
|
18
|
+
statusCode: number;
|
|
19
|
+
body: Body | undefined;
|
|
21
20
|
} | {
|
|
22
21
|
statusCode: number;
|
|
23
22
|
body: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAG5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAErE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAG/C,eAAO,MAAM,eAAe,GAC1B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,yBAAyB,uBAAuB,GAAG,IAAI,EACvD,kBAAkB,OAAO,EACzB,cAAc,OAAO,WAES,UAAU;;;;;;;;;;;;;;;;;;;;;;;EAgFzC,CAAA"}
|
package/requestHandlers/get.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { generateEtag } from '../etags/etags.js';
|
|
2
|
-
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
3
2
|
import { interceptGetRequest } from '../requestInterceptor/interceptRequest.js';
|
|
4
3
|
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
|
|
5
4
|
import { removeNullFields } from './utils.js';
|
|
@@ -14,53 +13,55 @@ export const createGetRoutes = (queries, requestInterceptor, responseBodyInterce
|
|
|
14
13
|
? { statusCode: 304, headers: { etag } }
|
|
15
14
|
: { statusCode: 200, body, headers: { etag } };
|
|
16
15
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
catch (error) {
|
|
16
|
+
if (req.method === 'get' && requestInterceptor?.get) {
|
|
17
|
+
try {
|
|
18
|
+
const interceptResult = await interceptGetRequest(requestInterceptor.get, headers, resource, id);
|
|
19
|
+
// If interceptor returned a response action, return immediately
|
|
20
|
+
if (interceptResult.type === 'response') {
|
|
23
21
|
return {
|
|
24
|
-
statusCode:
|
|
25
|
-
body:
|
|
22
|
+
statusCode: interceptResult.status,
|
|
23
|
+
body: interceptResult.body,
|
|
26
24
|
};
|
|
27
25
|
}
|
|
28
26
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
const theItem = responseBodyInterceptor
|
|
35
|
-
? interceptResponseBody(responseBodyInterceptor, { resource, body: item, id })
|
|
36
|
-
: item;
|
|
37
|
-
if (!returnNullFields) {
|
|
38
|
-
if (Array.isArray(theItem)) {
|
|
39
|
-
return responseOk(theItem.map((item) => removeNullFields(item)));
|
|
40
|
-
}
|
|
41
|
-
if (typeof theItem === 'object') {
|
|
42
|
-
return responseOk(removeNullFields(theItem));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return responseOk(theItem);
|
|
27
|
+
catch (error) {
|
|
28
|
+
return {
|
|
29
|
+
statusCode: 500,
|
|
30
|
+
body: { message: error.message },
|
|
31
|
+
};
|
|
46
32
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
33
|
+
}
|
|
34
|
+
if (id) {
|
|
35
|
+
const item = await queries.getById(resource, id);
|
|
36
|
+
if (!item) {
|
|
37
|
+
return { statusCode: 404 };
|
|
38
|
+
}
|
|
39
|
+
const theItem = responseBodyInterceptor
|
|
40
|
+
? await interceptResponseBody(responseBodyInterceptor, { resource, body: item, id })
|
|
41
|
+
: item;
|
|
51
42
|
if (!returnNullFields) {
|
|
52
|
-
if (Array.isArray(
|
|
53
|
-
return responseOk(
|
|
43
|
+
if (Array.isArray(theItem)) {
|
|
44
|
+
return responseOk(theItem.map((item) => removeNullFields(item)));
|
|
54
45
|
}
|
|
55
|
-
if (typeof
|
|
56
|
-
return responseOk(removeNullFields(
|
|
46
|
+
if (typeof theItem === 'object') {
|
|
47
|
+
return responseOk(removeNullFields(theItem));
|
|
57
48
|
}
|
|
58
49
|
}
|
|
59
|
-
return responseOk(
|
|
50
|
+
return responseOk(theItem);
|
|
60
51
|
}
|
|
61
|
-
|
|
62
|
-
|
|
52
|
+
const items = await queries.getAll(resource);
|
|
53
|
+
const theItems = responseBodyInterceptor
|
|
54
|
+
? await interceptResponseBody(responseBodyInterceptor, { resource, body: items })
|
|
55
|
+
: items;
|
|
56
|
+
if (!returnNullFields) {
|
|
57
|
+
if (Array.isArray(theItems)) {
|
|
58
|
+
return responseOk(theItems.map((item) => removeNullFields(item)));
|
|
59
|
+
}
|
|
60
|
+
if (typeof theItems === 'object') {
|
|
61
|
+
return responseOk(removeNullFields(theItems));
|
|
62
|
+
}
|
|
63
63
|
}
|
|
64
|
+
return responseOk(theItems);
|
|
64
65
|
};
|
|
65
66
|
return handleGet;
|
|
66
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,6 @@ import type { CompiledSchemas } from '../schema/types.js';
|
|
|
3
3
|
import type { Queries } from '../data/types.js';
|
|
4
4
|
export declare const getRequestHandler: (queries: Queries, schemas: CompiledSchemas, config: Config) => Promise<{
|
|
5
5
|
handleGet: (req: import("./types.js").GetRequest) => Promise<{
|
|
6
|
-
statusCode: number;
|
|
7
|
-
body: import("./types.js").Body;
|
|
8
|
-
headers?: undefined;
|
|
9
|
-
} | {
|
|
10
6
|
statusCode: number;
|
|
11
7
|
headers: {
|
|
12
8
|
etag: string;
|
|
@@ -18,6 +14,9 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
18
14
|
headers: {
|
|
19
15
|
etag: string;
|
|
20
16
|
};
|
|
17
|
+
} | {
|
|
18
|
+
statusCode: number;
|
|
19
|
+
body: import("./types.js").Body | undefined;
|
|
21
20
|
} | {
|
|
22
21
|
statusCode: number;
|
|
23
22
|
body: {
|
|
@@ -33,6 +32,10 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
33
32
|
message: string;
|
|
34
33
|
};
|
|
35
34
|
headers?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
statusCode: number;
|
|
37
|
+
body: import("./types.js").Body | undefined;
|
|
38
|
+
headers?: undefined;
|
|
36
39
|
} | {
|
|
37
40
|
headers: {
|
|
38
41
|
Location: string;
|
|
@@ -49,22 +52,21 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
49
52
|
};
|
|
50
53
|
} | {
|
|
51
54
|
statusCode: number;
|
|
52
|
-
body:
|
|
53
|
-
[k: string]: any;
|
|
54
|
-
} | null;
|
|
55
|
+
body: import("./types.js").Body | undefined;
|
|
55
56
|
}>;
|
|
56
|
-
handlePatch: (req: import("./types.js").
|
|
57
|
+
handlePatch: (req: import("./types.js").PutRequest) => Promise<{
|
|
57
58
|
statusCode: number;
|
|
58
59
|
body: {
|
|
59
60
|
message: string;
|
|
60
61
|
};
|
|
61
62
|
} | {
|
|
62
63
|
statusCode: number;
|
|
63
|
-
body:
|
|
64
|
-
[k: string]: any;
|
|
65
|
-
} | null;
|
|
64
|
+
body: import("./types.js").Body | undefined;
|
|
66
65
|
}>;
|
|
67
66
|
handleDelete: (req: import("./types.js").DeleteRequest) => Promise<{
|
|
67
|
+
statusCode: number;
|
|
68
|
+
body: import("./types.js").Body | undefined;
|
|
69
|
+
} | {
|
|
68
70
|
statusCode: number;
|
|
69
71
|
body: {
|
|
70
72
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAe5C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,SAAS,eAAe,EACxB,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4Df,CAAA"}
|
package/requestHandlers/index.js
CHANGED
|
@@ -3,13 +3,24 @@ import { createPostRoutes } from './post.js';
|
|
|
3
3
|
import { createPutRoutes } from './put.js';
|
|
4
4
|
import { createPatchRoutes } from './patch.js';
|
|
5
5
|
import { createDeleteRoutes } from './delete.js';
|
|
6
|
+
// Wrapper to handle errors for all request handlers
|
|
7
|
+
const withErrorHandling = (handler) => {
|
|
8
|
+
return async (...args) => {
|
|
9
|
+
try {
|
|
10
|
+
return await handler(...args);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
return { statusCode: 500, body: { message: error.message } };
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
6
17
|
export const getRequestHandler = async (queries, schemas, config) => {
|
|
7
18
|
const { requestInterceptor, responseBodyInterceptor, returnNullFields, allowDeleteCollection, etagsEnabled, } = config;
|
|
8
|
-
const handleGet = createGetRoutes(queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled);
|
|
9
|
-
const handlePost = createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post);
|
|
10
|
-
const handlePut = createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put, etagsEnabled);
|
|
11
|
-
const handlePatch = createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch, etagsEnabled);
|
|
12
|
-
const handleDelete = createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor, etagsEnabled);
|
|
19
|
+
const handleGet = withErrorHandling(createGetRoutes(queries, requestInterceptor, responseBodyInterceptor, returnNullFields, etagsEnabled));
|
|
20
|
+
const handlePost = withErrorHandling(createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post));
|
|
21
|
+
const handlePut = withErrorHandling(createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put, etagsEnabled));
|
|
22
|
+
const handlePatch = withErrorHandling(createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch, etagsEnabled));
|
|
23
|
+
const handleDelete = withErrorHandling(createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor, etagsEnabled));
|
|
13
24
|
return {
|
|
14
25
|
handleGet,
|
|
15
26
|
handlePost,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAK7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAgB,EAChB,OAAwB,EACxB,MAAc,EACd,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,GAAG,MAAM,CAAA;IAEV,MAAM,SAAS,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAK7C,oDAAoD;AACpD,MAAM,iBAAiB,GAAG,CACxB,OAA6C,EACL,EAAE;IAC1C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAa,CAAA;QACpF,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,OAAgB,EAChB,OAAwB,EACxB,MAAc,EACd,EAAE;IACF,MAAM,EACJ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,GAAG,MAAM,CAAA;IAEV,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,YAAY,CACb,CACF,CAAA;IAED,MAAM,UAAU,GAAG,iBAAiB,CAClC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAC9E,CAAA;IAED,MAAM,SAAS,GAAG,iBAAiB,CACjC,eAAe,CACb,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,GAAG,EACX,YAAY,CACb,CACF,CAAA;IAED,MAAM,WAAW,GAAG,iBAAiB,CACnC,iBAAiB,CACf,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,EACb,YAAY,CACb,CACF,CAAA;IAED,MAAM,YAAY,GAAG,iBAAiB,CACpC,kBAAkB,CAChB,OAAO,EACP,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,CACb,CACF,CAAA;IAED,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -9,8 +9,6 @@ export declare const createPatchRoutes: (queries: Queries, requestInterceptor: R
|
|
|
9
9
|
};
|
|
10
10
|
} | {
|
|
11
11
|
statusCode: number;
|
|
12
|
-
body:
|
|
13
|
-
[k: string]: any;
|
|
14
|
-
} | null;
|
|
12
|
+
body: import("./types.js").Body | undefined;
|
|
15
13
|
}>;
|
|
16
14
|
//# sourceMappingURL=patch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAGrE,eAAO,MAAM,iBAAiB,GAC5B,SAAS,OAAO,EAChB,oBAAoB,kBAAkB,GAAG,IAAI,EAC7C,kBAAkB,OAAO,EACzB,SAAS,2BAA2B,GAAG,IAAI,EAC3C,cAAc,OAAO,WAEW,YAAY;;;;;;;;EAoE7C,CAAA"}
|