temba 0.29.0 → 0.30.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 +24 -7
- package/auth/auth.d.ts +6 -0
- package/auth/auth.d.ts.map +1 -0
- package/auth/auth.js +18 -0
- package/auth/auth.js.map +1 -0
- package/config/index.d.ts.map +1 -1
- package/config/index.js +8 -0
- package/config/index.js.map +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +14 -8
- package/index.js.map +1 -1
- package/package.json +2 -1
- package/requestHandlers/delete.d.ts +5 -4
- package/requestHandlers/delete.d.ts.map +1 -1
- package/requestHandlers/delete.js +14 -1
- package/requestHandlers/delete.js.map +1 -1
- package/requestHandlers/get.d.ts +7 -6
- package/requestHandlers/get.d.ts.map +1 -1
- package/requestHandlers/get.js +14 -1
- package/requestHandlers/get.js.map +1 -1
- package/requestHandlers/index.d.ts +8 -8
- package/requestHandlers/index.d.ts.map +1 -1
- package/requestHandlers/index.js +2 -2
- package/requestHandlers/index.js.map +1 -1
- package/requestHandlers/patch.js +2 -2
- package/requestHandlers/patch.js.map +1 -1
- package/requestHandlers/post.js +2 -2
- package/requestHandlers/post.js.map +1 -1
- package/requestHandlers/put.js +2 -2
- package/requestHandlers/put.js.map +1 -1
- package/requestHandlers/types.d.ts +2 -0
- package/requestHandlers/types.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.d.ts +6 -2
- package/requestInterceptor/interceptRequest.d.ts.map +1 -1
- package/requestInterceptor/interceptRequest.js +15 -1
- package/requestInterceptor/interceptRequest.js.map +1 -1
- package/requestInterceptor/types.d.ts +21 -5
- package/requestInterceptor/types.d.ts.map +1 -1
- package/resourceRouter.d.ts.map +1 -1
- package/resourceRouter.js +2 -0
- package/resourceRouter.js.map +1 -1
package/README.md
CHANGED
|
@@ -265,26 +265,34 @@ It allows you to implement your own validation, or even change the request body.
|
|
|
265
265
|
```js
|
|
266
266
|
const config = {
|
|
267
267
|
requestInterceptor: {
|
|
268
|
+
get: ({ resource, id }) => {
|
|
269
|
+
//...
|
|
270
|
+
},
|
|
268
271
|
post: ({ resource, body }) => {
|
|
269
272
|
// Validate, or even change the request body
|
|
270
273
|
},
|
|
271
|
-
put: ({ resource, body }) => {
|
|
274
|
+
put: ({ resource, id, body }) => {
|
|
272
275
|
// Validate, or even change the request body
|
|
273
276
|
},
|
|
274
|
-
patch: ({ resource, body }) => {
|
|
277
|
+
patch: ({ resource, id, body }) => {
|
|
275
278
|
// Validate, or even change the request body
|
|
276
279
|
},
|
|
280
|
+
delete: ({ resource, id }) => {
|
|
281
|
+
//...
|
|
282
|
+
},
|
|
283
|
+
head: ({ resource, id }) => {
|
|
284
|
+
//...
|
|
285
|
+
},
|
|
277
286
|
},
|
|
278
287
|
}
|
|
279
288
|
|
|
280
289
|
const server = temba.create(config)
|
|
281
290
|
```
|
|
282
291
|
|
|
283
|
-
> At the moment, only `POST`, `PATCH`, and `PUT` requests can be intercepted.
|
|
284
292
|
|
|
285
|
-
The `requestInterceptor` is an object with
|
|
293
|
+
The `requestInterceptor` is an object with fields for each of the HTTP methods you might want to intercept, and the callback function you want Temba to call, before processing the request, i.e. going to the database.
|
|
286
294
|
|
|
287
|
-
|
|
295
|
+
Each callback function receives an object containing the `resource` (e.g. `"movies"`). Depending on the HTTP method, also the `id` from the URL, and the request `body` are provided. `body` is a JSON object of the request body.
|
|
288
296
|
|
|
289
297
|
Your callback function can return the following things:
|
|
290
298
|
|
|
@@ -438,15 +446,24 @@ const config = {
|
|
|
438
446
|
delay: 500,
|
|
439
447
|
port: 4321,
|
|
440
448
|
requestInterceptor: {
|
|
449
|
+
get: ({ resource, id }) => {
|
|
450
|
+
//...
|
|
451
|
+
},
|
|
441
452
|
post: ({ resource, body }) => {
|
|
442
453
|
// Validate, or even change the request body
|
|
443
454
|
},
|
|
444
|
-
|
|
455
|
+
put: ({ resource, id, body }) => {
|
|
445
456
|
// Validate, or even change the request body
|
|
446
457
|
},
|
|
447
|
-
|
|
458
|
+
patch: ({ resource, id, body }) => {
|
|
448
459
|
// Validate, or even change the request body
|
|
449
460
|
},
|
|
461
|
+
delete: ({ resource, id }) => {
|
|
462
|
+
//...
|
|
463
|
+
},
|
|
464
|
+
head: ({ resource, id }) => {
|
|
465
|
+
//...
|
|
466
|
+
},
|
|
450
467
|
},
|
|
451
468
|
resources: ['movies', 'actors'],
|
|
452
469
|
responseBodyInterceptor: ({ resource, body, id }) => {
|
package/auth/auth.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
import type { NextFunction, Request, Response } from 'express';
|
|
3
|
+
import type { Queries } from '../data/types.js';
|
|
4
|
+
export declare const isAuthEnabled: () => boolean;
|
|
5
|
+
export declare const createAuthMiddleware: (queries: Queries) => (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
6
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,aAAa,eAAwD,CAAA;AAElF,eAAO,MAAM,oBAAoB,YAAa,OAAO,WAChC,OAAO,OAAO,QAAQ,QAAQ,YAAY,kBAiB9D,CAAA"}
|
package/auth/auth.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import 'dotenv/config';
|
|
2
|
+
export const isAuthEnabled = () => process.env.FEATURE_FLAG_SIMPLE_AUTH === 'true';
|
|
3
|
+
export const createAuthMiddleware = (queries) => {
|
|
4
|
+
return async (req, res, next) => {
|
|
5
|
+
const token = req.headers['x-token'];
|
|
6
|
+
if (!token || typeof token !== 'string' || token.length === 0) {
|
|
7
|
+
res.status(401).json({ message: 'Unauthorized' });
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const foundToken = await queries.getById('tokens', token);
|
|
11
|
+
if (!foundToken) {
|
|
12
|
+
res.status(401).json({ message: 'Unauthorized' });
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
next();
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=auth.js.map
|
package/auth/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAItB,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM,CAAA;AAElF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACvD,OAAO,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QAC/D,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAEpC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;QAEzD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAA;YACjD,OAAM;QACR,CAAC;QAED,IAAI,EAAE,CAAA;IACR,CAAC,CAAA;AACH,CAAC,CAAA"}
|
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,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,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;AAE/E,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,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,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,OAAO,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,MAAM,EACJ,mBAAmB,GACnB,WAAW,GACX,WAAW,GACX,cAAc,GACd,oBAAoB,GACpB,yBAAyB,GACzB,kBAAkB,GAClB,uBAAuB,CAC1B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAoBD,eAAO,MAAM,UAAU,gBAAiB,UAAU,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,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;AAE/E,MAAM,MAAM,MAAM,GAAG;IACnB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,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,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,gBAAgB,EAAE,OAAO,CAAA;IACzB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;IACjC,qBAAqB,EAAE,OAAO,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,CAAA;AAEpC,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,MAAM,EACJ,mBAAmB,GACnB,WAAW,GACX,WAAW,GACX,cAAc,GACd,oBAAoB,GACpB,yBAAyB,GACzB,kBAAkB,GAClB,uBAAuB,CAC1B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,uBAAuB,CAAC,EAAE,uBAAuB,CAAA;IACjD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AAoBD,eAAO,MAAM,UAAU,gBAAiB,UAAU,KAAG,MAoGpD,CAAA;AAED,eAAO,MAAM,WAAW,UAAW,OAAO,uBAAqD,CAAA"}
|
package/config/index.js
CHANGED
|
@@ -45,6 +45,10 @@ export const initConfig = (userConfig) => {
|
|
|
45
45
|
}
|
|
46
46
|
if (userConfig.requestInterceptor) {
|
|
47
47
|
config.requestInterceptor = config.requestInterceptor || {};
|
|
48
|
+
if (userConfig.requestInterceptor.get &&
|
|
49
|
+
typeof userConfig.requestInterceptor.get === 'function') {
|
|
50
|
+
config.requestInterceptor.get = userConfig.requestInterceptor.get;
|
|
51
|
+
}
|
|
48
52
|
if (userConfig.requestInterceptor.post &&
|
|
49
53
|
typeof userConfig.requestInterceptor.post === 'function') {
|
|
50
54
|
config.requestInterceptor.post = userConfig.requestInterceptor.post;
|
|
@@ -57,6 +61,10 @@ export const initConfig = (userConfig) => {
|
|
|
57
61
|
typeof userConfig.requestInterceptor.put === 'function') {
|
|
58
62
|
config.requestInterceptor.put = userConfig.requestInterceptor.put;
|
|
59
63
|
}
|
|
64
|
+
if (userConfig.requestInterceptor.delete &&
|
|
65
|
+
typeof userConfig.requestInterceptor.delete === 'function') {
|
|
66
|
+
config.requestInterceptor.delete = userConfig.requestInterceptor.delete;
|
|
67
|
+
}
|
|
60
68
|
}
|
|
61
69
|
if (userConfig.responseBodyInterceptor) {
|
|
62
70
|
config.responseBodyInterceptor = userConfig.responseBodyInterceptor;
|
package/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAsDhC,MAAM,aAAa,GAAW;IAC5B,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,gBAAgB,EAAE,IAAI;IACtB,YAAY,EAAE,UAAU;IACxB,KAAK,EAAE,CAAC;IACR,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,IAAI;IAC7B,YAAY,EAAE,IAAI;IAClB,gBAAgB,EAAE,IAAI;IACtB,SAAS,EAAE,KAAK;IAChB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,qBAAqB,EAAE,KAAK;CAC7B,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,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,GAAG,GAAG,CAAA;IAClF,CAAC;IAED,IAAI,UAAU,CAAC,gBAAgB,IAAI,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAA;IACvD,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAA;IAC/C,CAAC;IAED,IACE,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,KAAK,KAAK,CAAC;QACtB,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ;QAC5C,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,EACjC,CAAC;QACD,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,kBAAkB,EAAE,CAAC;QAClC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,EAAE,CAAA;QAE3D,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG;YACjC,OAAO,UAAU,CAAC,kBAAkB,CAAC,GAAG,KAAK,UAAU,EACvD,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAA;QACnE,CAAC;QACD,IACE,UAAU,CAAC,kBAAkB,CAAC,IAAI;YAClC,OAAO,UAAU,CAAC,kBAAkB,CAAC,IAAI,KAAK,UAAU,EACxD,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,IAAI,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAA;QACrE,CAAC;QACD,IACE,UAAU,CAAC,kBAAkB,CAAC,KAAK;YACnC,OAAO,UAAU,CAAC,kBAAkB,CAAC,KAAK,KAAK,UAAU,EACzD,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAA;QACvE,CAAC;QACD,IACE,UAAU,CAAC,kBAAkB,CAAC,GAAG;YACjC,OAAO,UAAU,CAAC,kBAAkB,CAAC,GAAG,KAAK,UAAU,EACvD,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,GAAG,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAA;QACnE,CAAC;QACD,IACE,UAAU,CAAC,kBAAkB,CAAC,MAAM;YACpC,OAAO,UAAU,CAAC,kBAAkB,CAAC,MAAM,KAAK,UAAU,EAC1D,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,MAAM,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAA;QACzE,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,uBAAuB,EAAE,CAAC;QACvC,MAAM,CAAC,uBAAuB,GAAG,UAAU,CAAC,uBAAuB,CAAA;IACrE,CAAC;IAED,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QAC5B,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAA;IAC/C,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAA;IACvD,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAA;IACzC,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IAC/B,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;IACrC,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,qBAAqB,GAAG,UAAU,CAAC,qBAAqB,CAAA;IACjE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAAC,OAAO,KAAK,KAAK,WAAW,CAAA"}
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAK1C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAK1C,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAoGlF,eAAO,MAAM,MAAM,gBAAiB,UAAU;;;CAA6B,CAAA;AAE3E,eAAO,MAAM,UAAU,2BAAqB,CAAA"}
|
package/index.js
CHANGED
|
@@ -7,6 +7,15 @@ import { createDelayMiddleware } from './delay/delayMiddleware.js';
|
|
|
7
7
|
import { compileSchemas } from './schema/compile.js';
|
|
8
8
|
import { createResourceRouter } from './resourceRouter.js';
|
|
9
9
|
import { TembaError as TembaErrorInternal } from './requestInterceptor/TembaError.js';
|
|
10
|
+
import { createAuthMiddleware, isAuthEnabled } from './auth/auth.js';
|
|
11
|
+
// Route for handling not allowed methods.
|
|
12
|
+
const handleMethodNotAllowed = (_, res) => {
|
|
13
|
+
res.status(405).json({ message: 'Method Not Allowed' });
|
|
14
|
+
};
|
|
15
|
+
// Route for handling not found.
|
|
16
|
+
const handleNotFound = (_, res) => {
|
|
17
|
+
res.status(404).json({ message: 'Not Found' });
|
|
18
|
+
};
|
|
10
19
|
const createServer = (userConfig) => {
|
|
11
20
|
const config = initConfig(userConfig);
|
|
12
21
|
const queries = createQueries(config.connectionString);
|
|
@@ -16,6 +25,11 @@ const createServer = (userConfig) => {
|
|
|
16
25
|
app.use(morgan('tiny'));
|
|
17
26
|
// Enable CORS for all requests.
|
|
18
27
|
app.use(cors({ origin: true, credentials: true }));
|
|
28
|
+
// If enabled, add auth middleware to all requests, and disable the tokens resource.
|
|
29
|
+
if (isAuthEnabled()) {
|
|
30
|
+
app.use(createAuthMiddleware(queries));
|
|
31
|
+
app.all('/tokens', handleNotFound);
|
|
32
|
+
}
|
|
19
33
|
// Add a delay to every request, if configured.
|
|
20
34
|
if (config.delay > 0) {
|
|
21
35
|
const delayMiddleware = createDelayMiddleware(config.delay);
|
|
@@ -44,14 +58,6 @@ const createServer = (userConfig) => {
|
|
|
44
58
|
rootRouter.get('/', async (_, res) => {
|
|
45
59
|
return res.send('It works! ツ');
|
|
46
60
|
});
|
|
47
|
-
// Route for handling not allowed methods.
|
|
48
|
-
const handleMethodNotAllowed = (_, res) => {
|
|
49
|
-
res.status(405).json({ message: 'Method Not Allowed' });
|
|
50
|
-
};
|
|
51
|
-
// Route for handling not found.
|
|
52
|
-
const handleNotFound = (_, res) => {
|
|
53
|
-
res.status(404).json({ message: 'Not Found' });
|
|
54
|
-
};
|
|
55
61
|
// All other requests to the root URL are not allowed.
|
|
56
62
|
rootRouter.all('/', handleMethodNotAllowed);
|
|
57
63
|
// In case of an API prefix, resource URLs outside of the API prefix return a 404 Not Found.
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEvC,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temba",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.1",
|
|
4
4
|
"description": "Get a simple REST API with zero coding in less than 30 seconds (seriously).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"ajv": "^8.12.0",
|
|
40
40
|
"connect-pause": "^0.1.0",
|
|
41
41
|
"cors": "^2.8.5",
|
|
42
|
+
"dotenv": "^16.4.5",
|
|
42
43
|
"express": "^4.18.3",
|
|
43
44
|
"lowdb": "^7.0.1",
|
|
44
45
|
"morgan": "^1.10.0"
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Queries } from '../data/types.js';
|
|
2
|
+
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
2
3
|
import type { DeleteRequest } from './types.js';
|
|
3
|
-
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean) => (req: DeleteRequest) => Promise<{
|
|
4
|
-
status: number;
|
|
5
|
-
body?: undefined;
|
|
6
|
-
} | {
|
|
4
|
+
export declare const createDeleteRoutes: (queries: Queries, allowDeleteCollection: boolean, requestInterceptor: RequestInterceptor | null) => (req: DeleteRequest) => Promise<{
|
|
7
5
|
status: number;
|
|
8
6
|
body: {
|
|
9
7
|
message: string;
|
|
10
8
|
};
|
|
9
|
+
} | {
|
|
10
|
+
status: number;
|
|
11
|
+
body?: undefined;
|
|
11
12
|
}>;
|
|
12
13
|
//# sourceMappingURL=delete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,eAAO,MAAM,kBAAkB,YACpB,OAAO,yBACO,OAAO,sBACV,kBAAkB,GAAG,IAAI,WAEZ,aAAa;;;;;;;;EAkC/C,CAAA"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
import { TembaError } from '../index.js';
|
|
2
|
+
import { interceptDeleteRequest } from '../requestInterceptor/interceptRequest.js';
|
|
3
|
+
export const createDeleteRoutes = (queries, allowDeleteCollection, requestInterceptor) => {
|
|
2
4
|
const handleDelete = async (req) => {
|
|
3
5
|
try {
|
|
4
6
|
const { resource, id } = req;
|
|
7
|
+
if (requestInterceptor?.delete) {
|
|
8
|
+
try {
|
|
9
|
+
interceptDeleteRequest(requestInterceptor.delete, resource, id);
|
|
10
|
+
}
|
|
11
|
+
catch (error) {
|
|
12
|
+
return {
|
|
13
|
+
status: error instanceof TembaError ? error.statusCode : 500,
|
|
14
|
+
body: { message: error.message },
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
5
18
|
if (id) {
|
|
6
19
|
const item = await queries.getById(resource, id);
|
|
7
20
|
if (item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/requestHandlers/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAE/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAI/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,OAAgB,EAChB,qBAA8B,EAC9B,kBAA6C,EAC7C,EAAE;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE5B,IAAI,kBAAkB,EAAE,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,sBAAsB,CAAC,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACjE,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAChD,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;gBACxB,CAAC;gBACD,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;YACnC,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;QACxB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
|
package/requestHandlers/get.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Queries } from '../data/types.js';
|
|
2
|
+
import type { RequestInterceptor } from '../requestInterceptor/types.js';
|
|
2
3
|
import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
|
|
3
4
|
import type { GetRequest } from './types.js';
|
|
4
|
-
export declare const createGetRoutes: (queries: Queries, cacheControl: string, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean) => (req: GetRequest) => Promise<{
|
|
5
|
+
export declare const createGetRoutes: (queries: Queries, cacheControl: string, requestInterceptor: RequestInterceptor | null, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean) => (req: GetRequest) => Promise<{
|
|
5
6
|
status: number;
|
|
6
7
|
body: unknown;
|
|
7
8
|
headers: {
|
|
@@ -9,14 +10,14 @@ export declare const createGetRoutes: (queries: Queries, cacheControl: string, r
|
|
|
9
10
|
};
|
|
10
11
|
} | {
|
|
11
12
|
status: number;
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
body: {
|
|
14
|
+
message: string;
|
|
14
15
|
};
|
|
15
|
-
body?: undefined;
|
|
16
16
|
} | {
|
|
17
17
|
status: number;
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
headers: {
|
|
19
|
+
'Cache-control': string;
|
|
20
20
|
};
|
|
21
|
+
body?: undefined;
|
|
21
22
|
}>;
|
|
22
23
|
//# sourceMappingURL=get.d.ts.map
|
|
@@ -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,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,eAAO,MAAM,eAAe,YACjB,OAAO,gBACF,MAAM,sBACA,kBAAkB,GAAG,IAAI,2BACpB,uBAAuB,GAAG,IAAI,oBACrC,OAAO,WAKK,UAAU;;;;;;;;;;;;;;;;;EA8DzC,CAAA"}
|
package/requestHandlers/get.js
CHANGED
|
@@ -1,11 +1,24 @@
|
|
|
1
|
+
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
2
|
+
import { interceptGetRequest } from '../requestInterceptor/interceptRequest.js';
|
|
1
3
|
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
|
|
2
4
|
import { removeNullFields } from './utils.js';
|
|
3
|
-
export const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnNullFields) => {
|
|
5
|
+
export const createGetRoutes = (queries, cacheControl, requestInterceptor, responseBodyInterceptor, returnNullFields) => {
|
|
4
6
|
const defaultResponse = { headers: { 'Cache-control': cacheControl } };
|
|
5
7
|
const responseOk = (body) => ({ ...defaultResponse, status: 200, body });
|
|
6
8
|
const handleGet = async (req) => {
|
|
7
9
|
try {
|
|
8
10
|
const { resource, id } = req;
|
|
11
|
+
if (!req.isHeadRequest && requestInterceptor?.get) {
|
|
12
|
+
try {
|
|
13
|
+
interceptGetRequest(requestInterceptor.get, resource, id);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return {
|
|
17
|
+
status: error instanceof TembaError ? error.statusCode : 500,
|
|
18
|
+
body: { message: error.message },
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
9
22
|
if (id) {
|
|
10
23
|
const item = await queries.getById(resource, id);
|
|
11
24
|
if (!item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AAGxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,YAAoB,EACpB,uBAAuD,EACvD,gBAAyB,EACzB,EAAE;IACF,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,CAAA;IACtE,MAAM,UAAU,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAE5B,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;gBAC5C,CAAC;gBAED,MAAM,OAAO,GAAG,uBAAuB;oBACrC,CAAC,CAAC,qBAAqB,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC9E,CAAC,CAAC,IAAI,CAAA;gBAER,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC3B,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAClE,CAAC;oBAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;wBAChC,OAAO,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAA;oBAC9C,CAAC;gBACH,CAAC;gBAED,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;YAC5B,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAE5C,MAAM,QAAQ,GAAG,uBAAuB;gBACtC,CAAC,CAAC,qBAAqB,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gBAC3E,CAAC,CAAC,KAAK,CAAA;YAET,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACnE,CAAC;gBAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,OAAO,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;gBAC/C,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC7B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,15 +10,15 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
10
10
|
};
|
|
11
11
|
} | {
|
|
12
12
|
status: number;
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
body: {
|
|
14
|
+
message: string;
|
|
15
15
|
};
|
|
16
|
-
body?: undefined;
|
|
17
16
|
} | {
|
|
18
17
|
status: number;
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
headers: {
|
|
19
|
+
'Cache-control': string;
|
|
21
20
|
};
|
|
21
|
+
body?: undefined;
|
|
22
22
|
}>;
|
|
23
23
|
handlePost: (req: import("./types.js").PostRequest) => Promise<{
|
|
24
24
|
status: number;
|
|
@@ -42,13 +42,13 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
42
42
|
body: unknown;
|
|
43
43
|
}>;
|
|
44
44
|
handleDelete: (req: import("./types.js").DeleteRequest) => Promise<{
|
|
45
|
-
status: number;
|
|
46
|
-
body?: undefined;
|
|
47
|
-
} | {
|
|
48
45
|
status: number;
|
|
49
46
|
body: {
|
|
50
47
|
message: string;
|
|
51
48
|
};
|
|
49
|
+
} | {
|
|
50
|
+
status: number;
|
|
51
|
+
body?: undefined;
|
|
52
52
|
}>;
|
|
53
53
|
};
|
|
54
54
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,iBAAiB,YACnB,OAAO,WACP,eAAe,gBACV,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,eAAO,MAAM,iBAAiB,YACnB,OAAO,WACP,eAAe,gBACV,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsC3B,CAAA"}
|
package/requestHandlers/index.js
CHANGED
|
@@ -5,11 +5,11 @@ import { createPatchRoutes } from './patch.js';
|
|
|
5
5
|
import { createDeleteRoutes } from './delete.js';
|
|
6
6
|
export const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
7
7
|
const { cacheControl, requestInterceptor, responseBodyInterceptor, returnNullFields, allowDeleteCollection, } = routerConfig;
|
|
8
|
-
const handleGet = createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnNullFields);
|
|
8
|
+
const handleGet = createGetRoutes(queries, cacheControl, requestInterceptor, responseBodyInterceptor, returnNullFields);
|
|
9
9
|
const handlePost = createPostRoutes(queries, requestInterceptor, returnNullFields, schemas.post);
|
|
10
10
|
const handlePut = createPutRoutes(queries, requestInterceptor, returnNullFields, schemas.put);
|
|
11
11
|
const handlePatch = createPatchRoutes(queries, requestInterceptor, returnNullFields, schemas.patch);
|
|
12
|
-
const handleDelete = createDeleteRoutes(queries, allowDeleteCollection);
|
|
12
|
+
const handleDelete = createDeleteRoutes(queries, allowDeleteCollection, requestInterceptor);
|
|
13
13
|
return {
|
|
14
14
|
handleGet,
|
|
15
15
|
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;AAM7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,OAAwB,EACxB,YAA0B,EAC1B,EAAE;IACF,MAAM,EACJ,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,GACtB,GAAG,YAAY,CAAA;IAEhB,MAAM,SAAS,GAAG,eAAe,CAC/B,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhG,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAE7F,MAAM,WAAW,GAAG,iBAAiB,CACnC,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,CACd,CAAA;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAA;
|
|
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;AAM7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,OAAwB,EACxB,YAA0B,EAC1B,EAAE;IACF,MAAM,EACJ,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,GACtB,GAAG,YAAY,CAAA;IAEhB,MAAM,SAAS,GAAG,eAAe,CAC/B,OAAO,EACP,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAEhG,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAE7F,MAAM,WAAW,GAAG,iBAAiB,CACnC,OAAO,EACP,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,CAAC,KAAK,CACd,CAAA;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAA;IAE3F,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
package/requestHandlers/patch.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { interceptPatchRequest } from '../requestInterceptor/interceptRequest.js';
|
|
2
2
|
import { validate } from '../schema/validate.js';
|
|
3
3
|
import { removeNullFields } from './utils.js';
|
|
4
4
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
@@ -13,7 +13,7 @@ export const createPatchRoutes = (queries, requestInterceptor, returnNullFields,
|
|
|
13
13
|
let body2 = body;
|
|
14
14
|
if (requestInterceptor?.patch) {
|
|
15
15
|
try {
|
|
16
|
-
body2 =
|
|
16
|
+
body2 = interceptPatchRequest(requestInterceptor.patch, resource, id, body);
|
|
17
17
|
}
|
|
18
18
|
catch (error) {
|
|
19
19
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,EAAE;IACF,MAAM,WAAW,GAAG,KAAK,EAAE,GAAiB,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAElC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,KAAK,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,KAAK,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBAC7E,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAE5C,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAExD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAA;QAC9F,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA"}
|
package/requestHandlers/post.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { format } from 'url';
|
|
2
|
-
import {
|
|
2
|
+
import { interceptPostRequest } from '../requestInterceptor/interceptRequest.js';
|
|
3
3
|
import { removeNullFields } from './utils.js';
|
|
4
4
|
import { validate } from '../schema/validate.js';
|
|
5
5
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
@@ -14,7 +14,7 @@ export const createPostRoutes = (queries, requestInterceptor, returnNullFields,
|
|
|
14
14
|
let body2 = body;
|
|
15
15
|
if (requestInterceptor?.post) {
|
|
16
16
|
try {
|
|
17
|
-
body2 =
|
|
17
|
+
body2 = interceptPostRequest(requestInterceptor.post, resource, body);
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
20
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAK7C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAAoC,EACpC,EAAE;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,GAAgB,EAAE,EAAE;QAC5C,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;YAE9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC1D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,KAAK,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;gBACvE,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAsB,CAAC,CAAA;YAEtE,OAAO;gBACL,OAAO,EAAE;oBACP,QAAQ,EAAE,MAAM,CAAC;wBACf,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,IAAI;wBACV,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;qBACtC,CAAC;iBACH;gBACD,MAAM,EAAE,GAAG;gBACX,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;aAC7D,CAAA;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
|
package/requestHandlers/put.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { interceptPutRequest } from '../requestInterceptor/interceptRequest.js';
|
|
2
2
|
import { validate } from '../schema/validate.js';
|
|
3
3
|
import { removeNullFields } from './utils.js';
|
|
4
4
|
import { TembaError } from '../requestInterceptor/TembaError.js';
|
|
@@ -13,7 +13,7 @@ export const createPutRoutes = (queries, requestInterceptor, returnNullFields, s
|
|
|
13
13
|
let body2 = body;
|
|
14
14
|
if (requestInterceptor?.put) {
|
|
15
15
|
try {
|
|
16
|
-
body2 =
|
|
16
|
+
body2 = interceptPutRequest(requestInterceptor.put, resource, id, body);
|
|
17
17
|
}
|
|
18
18
|
catch (error) {
|
|
19
19
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAE7D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,kBAA6C,EAC7C,gBAAyB,EACzB,OAA2C,EAC3C,EAAE;IACF,MAAM,SAAS,GAAG,KAAK,EAAE,GAAe,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAA;YAElC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC5D,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACvC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAA;YAC1E,CAAC;YAED,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,kBAAkB,EAAE,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,KAAK,GAAG,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;gBACzE,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,OAAO;wBACL,MAAM,EAAE,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;wBAC5D,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE;qBAC5C,CAAA;gBACH,CAAC;YACH,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI;gBACP,OAAO;oBACL,MAAM,EAAE,GAAG;oBACX,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC;iBACF,CAAA;YAEH,IAAI,GAAG,EAAE,GAAI,KAAgB,EAAE,EAAE,EAAE,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAE1D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAA;QAChG,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,CAAA;QACrE,CAAC;IACH,CAAC,CAAA;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA"}
|
|
@@ -8,6 +8,7 @@ export type RequestInfo = {
|
|
|
8
8
|
body: unknown | null;
|
|
9
9
|
host: string | null;
|
|
10
10
|
protocol: string | null;
|
|
11
|
+
method: string;
|
|
11
12
|
};
|
|
12
13
|
export type ErrorResponse = {
|
|
13
14
|
message: string;
|
|
@@ -18,6 +19,7 @@ export type TembaRequest = {
|
|
|
18
19
|
};
|
|
19
20
|
export type GetRequest = TembaRequest & {
|
|
20
21
|
id: string | null;
|
|
22
|
+
isHeadRequest: boolean;
|
|
21
23
|
};
|
|
22
24
|
export type PostRequest = TembaRequest & {
|
|
23
25
|
body: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestHandlers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;IACjB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IACtC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAA;AAErC,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC,CAAA"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const
|
|
1
|
+
import type { InterceptedDeleteRequest, InterceptedGetRequest, InterceptedPostRequest, InterceptedPutRequest } from './types.js';
|
|
2
|
+
export declare const interceptGetRequest: (intercept: InterceptedGetRequest, resource: string, id: string | null) => void;
|
|
3
|
+
export declare const interceptPostRequest: (intercept: InterceptedPostRequest, resource: string, body: unknown) => unknown;
|
|
4
|
+
export declare const interceptPutRequest: (intercept: InterceptedPutRequest, resource: string, id: string, body: unknown) => unknown;
|
|
5
|
+
export declare const interceptPatchRequest: (intercept: InterceptedPutRequest, resource: string, id: string, body: unknown) => unknown;
|
|
6
|
+
export declare const interceptDeleteRequest: (intercept: InterceptedDeleteRequest, resource: string, id: string | null) => void;
|
|
3
7
|
//# sourceMappingURL=interceptRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptRequest.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"interceptRequest.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,mBAAmB,cACnB,qBAAqB,YACtB,MAAM,MACZ,MAAM,GAAG,IAAI,SAGlB,CAAA;AAED,eAAO,MAAM,oBAAoB,cACpB,sBAAsB,YACvB,MAAM,QACV,OAAO,YAId,CAAA;AAED,eAAO,MAAM,mBAAmB,cACnB,qBAAqB,YACtB,MAAM,MACZ,MAAM,QACJ,OAAO,YAId,CAAA;AAED,eAAO,MAAM,qBAAqB,cATrB,qBAAqB,YACtB,MAAM,MACZ,MAAM,QACJ,OAAO,YAMyC,CAAA;AAExD,eAAO,MAAM,sBAAsB,cACtB,wBAAwB,YACzB,MAAM,MACZ,MAAM,GAAG,IAAI,SAGlB,CAAA"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
export const
|
|
1
|
+
export const interceptGetRequest = (intercept, resource, id) => {
|
|
2
|
+
intercept({ resource, id });
|
|
3
|
+
};
|
|
4
|
+
export const interceptPostRequest = (intercept, resource, body) => {
|
|
2
5
|
const intercepted = intercept({ resource, body });
|
|
6
|
+
return interceptRequest(intercepted, body);
|
|
7
|
+
};
|
|
8
|
+
export const interceptPutRequest = (intercept, resource, id, body) => {
|
|
9
|
+
const intercepted = intercept({ resource, id, body });
|
|
10
|
+
return interceptRequest(intercepted, body);
|
|
11
|
+
};
|
|
12
|
+
export const interceptPatchRequest = interceptPutRequest;
|
|
13
|
+
export const interceptDeleteRequest = (intercept, resource, id) => {
|
|
14
|
+
intercept({ resource, id });
|
|
15
|
+
};
|
|
16
|
+
const interceptRequest = (intercepted, body) => {
|
|
3
17
|
if (!intercepted && typeof body === 'object')
|
|
4
18
|
return body;
|
|
5
19
|
// The request body was replaced by an object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interceptRequest.js","sourceRoot":"","sources":["../../../src/requestInterceptor/interceptRequest.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAgC,EAChC,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAAiC,EACjC,QAAgB,EAChB,IAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,SAAgC,EAChC,QAAgB,EAChB,EAAU,EACV,IAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACrD,OAAO,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,mBAAmB,CAAA;AAExD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,SAAmC,EACnC,QAAgB,EAChB,EAAiB,EACjB,EAAE;IACF,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED,MAAM,gBAAgB,GAAG,CAAC,WAAmC,EAAE,IAAa,EAAE,EAAE;IAC9E,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAEzD,6CAA6C;IAC7C,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/E,OAAO,WAAW,CAAA;IAEpB,kEAAkE;IAClE,iEAAiE;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1,12 +1,28 @@
|
|
|
1
|
-
type
|
|
1
|
+
type InterceptedResource = {
|
|
2
2
|
resource: string;
|
|
3
|
+
};
|
|
4
|
+
type WithMaybeId = InterceptedResource & {
|
|
5
|
+
id: string | null;
|
|
6
|
+
};
|
|
7
|
+
type WithBody = InterceptedResource & {
|
|
8
|
+
body: unknown;
|
|
9
|
+
};
|
|
10
|
+
type WithIdAndBody = InterceptedResource & {
|
|
11
|
+
id: string;
|
|
3
12
|
body: unknown;
|
|
4
13
|
};
|
|
5
|
-
export type
|
|
14
|
+
export type InterceptedReturnValue = void | object;
|
|
15
|
+
export type InterceptedGetRequest = (request: WithMaybeId) => InterceptedReturnValue;
|
|
16
|
+
export type InterceptedPostRequest = (request: WithBody) => InterceptedReturnValue;
|
|
17
|
+
export type InterceptedPatchRequest = (request: WithIdAndBody) => InterceptedReturnValue;
|
|
18
|
+
export type InterceptedPutRequest = (request: WithIdAndBody) => InterceptedReturnValue;
|
|
19
|
+
export type InterceptedDeleteRequest = (request: WithMaybeId) => InterceptedReturnValue;
|
|
6
20
|
export type RequestInterceptor = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
21
|
+
get?: InterceptedGetRequest;
|
|
22
|
+
post?: InterceptedPostRequest;
|
|
23
|
+
patch?: InterceptedPatchRequest;
|
|
24
|
+
put?: InterceptedPutRequest;
|
|
25
|
+
delete?: InterceptedDeleteRequest;
|
|
10
26
|
};
|
|
11
27
|
export {};
|
|
12
28
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/requestInterceptor/types.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,KAAK,WAAW,GAAG,mBAAmB,GAAG;IACvC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,QAAQ,GAAG,mBAAmB,GAAG;IACpC,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,KAAK,aAAa,GAAG,mBAAmB,GAAG;IACzC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,sBAAsB,CAAA;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK,sBAAsB,CAAA;AAClF,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,sBAAsB,CAAA;AACxF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,sBAAsB,CAAA;AACtF,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,sBAAsB,CAAA;AAEvF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,IAAI,CAAC,EAAE,sBAAsB,CAAA;IAC7B,KAAK,CAAC,EAAE,uBAAuB,CAAA;IAC/B,GAAG,CAAC,EAAE,qBAAqB,CAAA;IAC3B,MAAM,CAAC,EAAE,wBAAwB,CAAA;CAClC,CAAA"}
|
package/resourceRouter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceRouter.d.ts","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"resourceRouter.d.ts","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAmE5C,eAAO,MAAM,oBAAoB,YACtB,OAAO,WACP,eAAe,gBACV,YAAY,+CAsI3B,CAAA"}
|
package/resourceRouter.js
CHANGED
|
@@ -22,6 +22,7 @@ const convertToGetRequest = (requestInfo) => {
|
|
|
22
22
|
return {
|
|
23
23
|
id: requestInfo.id,
|
|
24
24
|
resource: requestInfo.resource,
|
|
25
|
+
isHeadRequest: requestInfo.method.toUpperCase() === 'HEAD',
|
|
25
26
|
};
|
|
26
27
|
};
|
|
27
28
|
const convertToPostRequest = (requestInfo) => {
|
|
@@ -63,6 +64,7 @@ export const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
|
63
64
|
body: req.body,
|
|
64
65
|
host,
|
|
65
66
|
protocol,
|
|
67
|
+
method: req.method,
|
|
66
68
|
};
|
|
67
69
|
};
|
|
68
70
|
const validateResource = (requestInfo) => {
|
package/resourceRouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceRouter.js","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAmB3C,MAAM,OAAO,GAAG,CACd,OAA6C,EACV,EAAE;IACrC,OAAO,QAAQ,IAAI,OAAO,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,OAAe,EAAE,EAAE;IACtD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAmC,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC3D,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAC5F,CAAC,CAAA;AAED,MAAM,yBAAyB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC7D,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;AAC3F,CAAC,CAAA;AAED,MAAM,iCAAiC,GAAG,CAAC,WAAwB,EAAE,EAAE;IACrE,OAAO,WAAW,CAAC,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI;QACzF,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,0CAA0C,CAAC;QAC9D,CAAC,CAAC,WAAW,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,WAAwB,EAAE,EAAE;IACvD,OAAO;QACL,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,QAAQ,EAAE,WAAW,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"resourceRouter.js","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"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"}
|