temba 0.23.0 → 0.24.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/config/index.d.ts +3 -3
- package/config/index.js +5 -10
- package/config/index.js.map +1 -1
- package/delay/delayMiddleware.js +1 -5
- package/delay/delayMiddleware.js.map +1 -1
- package/index.d.ts +1 -1
- package/index.js +20 -50
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/queries/in-memory.d.ts +1 -1
- package/queries/in-memory.js +1 -4
- package/queries/in-memory.js.map +1 -1
- package/queries/mongo.d.ts +1 -1
- package/queries/mongo.js +3 -7
- package/queries/mongo.js.map +1 -1
- package/queries/queries.d.ts +1 -1
- package/queries/queries.js +5 -9
- package/queries/queries.js.map +1 -1
- package/queries/types.js +1 -2
- package/requestBodyInterceptor/interceptRequestBody.d.ts +1 -1
- package/requestBodyInterceptor/interceptRequestBody.js +1 -5
- package/requestBodyInterceptor/interceptRequestBody.js.map +1 -1
- package/requestBodyInterceptor/types.js +1 -2
- package/requestHandlers/delete.d.ts +2 -2
- package/requestHandlers/delete.js +1 -5
- package/requestHandlers/delete.js.map +1 -1
- package/requestHandlers/get.d.ts +3 -3
- package/requestHandlers/get.js +9 -13
- package/requestHandlers/get.js.map +1 -1
- package/requestHandlers/index.d.ts +8 -8
- package/requestHandlers/index.js +11 -15
- package/requestHandlers/index.js.map +1 -1
- package/requestHandlers/patch.d.ts +4 -4
- package/requestHandlers/patch.js +7 -11
- package/requestHandlers/patch.js.map +1 -1
- package/requestHandlers/post.d.ts +4 -4
- package/requestHandlers/post.js +9 -13
- package/requestHandlers/post.js.map +1 -1
- package/requestHandlers/put.d.ts +4 -4
- package/requestHandlers/put.js +7 -11
- package/requestHandlers/put.js.map +1 -1
- package/requestHandlers/types.js +1 -2
- package/requestHandlers/utils.js +1 -5
- package/requestHandlers/utils.js.map +1 -1
- package/resourceRouter.d.ts +3 -3
- package/resourceRouter.js +7 -14
- package/resourceRouter.js.map +1 -1
- package/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
- package/responseBodyInterceptor/interceptResponseBody.js +1 -5
- package/responseBodyInterceptor/interceptResponseBody.js.map +1 -1
- package/responseBodyInterceptor/types.d.ts +1 -1
- package/responseBodyInterceptor/types.js +1 -2
- package/schema/compile.d.ts +1 -1
- package/schema/compile.js +3 -10
- package/schema/compile.js.map +1 -1
- package/schema/types.js +1 -2
- package/schema/validate.d.ts +1 -1
- package/schema/validate.js +1 -5
- package/schema/validate.js.map +1 -1
- package/urls/urlParser.js +1 -5
- package/urls/urlParser.js.map +1 -1
package/config/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import type { ConfiguredSchemas } from '../schema/types';
|
|
3
|
-
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
|
|
4
|
-
import { ResponseBodyInterceptor } from '../responseBodyInterceptor/types';
|
|
2
|
+
import type { ConfiguredSchemas } from '../schema/types.js';
|
|
3
|
+
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
|
|
4
|
+
import { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
|
|
5
5
|
export type Config = {
|
|
6
6
|
validateResources: boolean;
|
|
7
7
|
resources: string[];
|
package/config/index.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isUndefined = exports.initConfig = void 0;
|
|
4
1
|
const defaultConfig = {
|
|
5
2
|
resources: [],
|
|
6
3
|
validateResources: false,
|
|
@@ -17,7 +14,7 @@ const defaultConfig = {
|
|
|
17
14
|
port: 3000,
|
|
18
15
|
schemas: null,
|
|
19
16
|
};
|
|
20
|
-
const initConfig = (userConfig) => {
|
|
17
|
+
export const initConfig = (userConfig) => {
|
|
21
18
|
if (!userConfig)
|
|
22
19
|
return defaultConfig;
|
|
23
20
|
const config = { ...defaultConfig };
|
|
@@ -65,13 +62,13 @@ const initConfig = (userConfig) => {
|
|
|
65
62
|
if (userConfig.customRouter) {
|
|
66
63
|
config.customRouter = userConfig.customRouter;
|
|
67
64
|
}
|
|
68
|
-
if (!
|
|
65
|
+
if (!isUndefined(userConfig.returnNullFields)) {
|
|
69
66
|
config.returnNullFields = userConfig.returnNullFields;
|
|
70
67
|
}
|
|
71
|
-
if (!
|
|
68
|
+
if (!isUndefined(userConfig.isTesting)) {
|
|
72
69
|
config.isTesting = userConfig.isTesting;
|
|
73
70
|
}
|
|
74
|
-
if (!
|
|
71
|
+
if (!isUndefined(userConfig.port)) {
|
|
75
72
|
config.port = userConfig.port;
|
|
76
73
|
}
|
|
77
74
|
if (userConfig.schemas) {
|
|
@@ -79,7 +76,5 @@ const initConfig = (userConfig) => {
|
|
|
79
76
|
}
|
|
80
77
|
return config;
|
|
81
78
|
};
|
|
82
|
-
|
|
83
|
-
const isUndefined = (value) => typeof value === 'undefined';
|
|
84
|
-
exports.isUndefined = isUndefined;
|
|
79
|
+
export const isUndefined = (value) => typeof value === 'undefined';
|
|
85
80
|
//# sourceMappingURL=index.js.map
|
package/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}
|
package/delay/delayMiddleware.js
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDelayMiddleware = void 0;
|
|
4
1
|
const pause = (delay) => {
|
|
5
2
|
return (req, res, next) => {
|
|
6
3
|
setTimeout(next, delay);
|
|
7
4
|
};
|
|
8
5
|
};
|
|
9
|
-
const createDelayMiddleware = (delay) => {
|
|
6
|
+
export const createDelayMiddleware = (delay) => {
|
|
10
7
|
return (req, res, next) => {
|
|
11
8
|
console.log('Start delay...');
|
|
12
9
|
pause(delay)(req, res, next);
|
|
13
10
|
console.log('Delay finished!');
|
|
14
11
|
};
|
|
15
12
|
};
|
|
16
|
-
exports.createDelayMiddleware = createDelayMiddleware;
|
|
17
13
|
//# sourceMappingURL=delayMiddleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delayMiddleware.js","sourceRoot":"","sources":["../../../src/delay/delayMiddleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delayMiddleware.js","sourceRoot":"","sources":["../../../src/delay/delayMiddleware.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE;IAC9B,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACzB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,KAAa,EAAE,EAAE;IACrD,OAAO,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACzD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;QAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;QAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA"}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,60 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.create = void 0;
|
|
30
|
-
const express_1 = __importStar(require("express"));
|
|
31
|
-
const morgan_1 = __importDefault(require("morgan"));
|
|
32
|
-
const queries_1 = require("./queries/queries");
|
|
33
|
-
const config_1 = require("./config");
|
|
34
|
-
const cors_1 = __importDefault(require("cors"));
|
|
35
|
-
const delayMiddleware_1 = require("./delay/delayMiddleware");
|
|
36
|
-
const compile_1 = require("./schema/compile");
|
|
37
|
-
const resourceRouter_1 = require("./resourceRouter");
|
|
1
|
+
import express, { json } from 'express';
|
|
2
|
+
import morgan from 'morgan';
|
|
3
|
+
import { createQueries } from './queries/queries.js';
|
|
4
|
+
import { initConfig } from './config/index.js';
|
|
5
|
+
import cors from 'cors';
|
|
6
|
+
import { createDelayMiddleware } from './delay/delayMiddleware.js';
|
|
7
|
+
import { compileSchemas } from './schema/compile.js';
|
|
8
|
+
import { createResourceRouter } from './resourceRouter.js';
|
|
38
9
|
const createServer = (userConfig) => {
|
|
39
|
-
const config =
|
|
40
|
-
const queries =
|
|
41
|
-
const app = (
|
|
42
|
-
app.use(
|
|
10
|
+
const config = initConfig(userConfig);
|
|
11
|
+
const queries = createQueries(config.connectionString);
|
|
12
|
+
const app = express();
|
|
13
|
+
app.use(json());
|
|
43
14
|
// Add HTTP request logging.
|
|
44
|
-
app.use((
|
|
15
|
+
app.use(morgan('tiny'));
|
|
45
16
|
// Enable CORS for all requests.
|
|
46
|
-
app.use((
|
|
17
|
+
app.use(cors({ origin: true, credentials: true }));
|
|
47
18
|
// Add a delay to every request, if configured.
|
|
48
19
|
if (config.delay > 0) {
|
|
49
|
-
const delayMiddleware =
|
|
20
|
+
const delayMiddleware = createDelayMiddleware(config.delay);
|
|
50
21
|
app.use(delayMiddleware);
|
|
51
22
|
}
|
|
52
23
|
// Serve a static folder, if configured.
|
|
53
24
|
if (config.staticFolder) {
|
|
54
|
-
app.use(
|
|
25
|
+
app.use(express.static(config.staticFolder));
|
|
55
26
|
}
|
|
56
27
|
// On the root URL (with apiPrefix, if applicable) only a GET is allowed.
|
|
57
|
-
const rootRouter =
|
|
28
|
+
const rootRouter = express.Router();
|
|
58
29
|
const rootPath = config.apiPrefix ? `${config.apiPrefix}` : '/';
|
|
59
30
|
app.use(rootPath, rootRouter);
|
|
60
31
|
// Use a custom router, if configured.
|
|
@@ -65,8 +36,8 @@ const createServer = (userConfig) => {
|
|
|
65
36
|
// HEAD is not implemented here, because Express supports it out of the box.
|
|
66
37
|
// Create a router on all other URLs, for all supported methods
|
|
67
38
|
const resourcePath = config.apiPrefix ? `${config.apiPrefix}*` : '*';
|
|
68
|
-
const schemas =
|
|
69
|
-
const resourceRouter =
|
|
39
|
+
const schemas = compileSchemas(config.schemas);
|
|
40
|
+
const resourceRouter = createResourceRouter(queries, schemas, config);
|
|
70
41
|
app.use(resourcePath, resourceRouter);
|
|
71
42
|
// A GET to the root URL shows a default message.
|
|
72
43
|
rootRouter.get('/', async (_, res) => {
|
|
@@ -108,6 +79,5 @@ const createServer = (userConfig) => {
|
|
|
108
79
|
Express: config.isTesting ? app : undefined,
|
|
109
80
|
};
|
|
110
81
|
};
|
|
111
|
-
const create = (userConfig) => createServer(userConfig);
|
|
112
|
-
exports.create = create;
|
|
82
|
+
export const create = (userConfig) => createServer(userConfig);
|
|
113
83
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temba",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Get a simple MongoDB REST API with zero coding in less than 30 seconds (seriously).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"build": "rm -rf dist && tsc && cp package.json README.md ./dist/src",
|
|
8
|
+
"build": "rm -rf dist && tsc && tsc-alias && cp package.json README.md ./dist/src",
|
|
9
9
|
"test": "vitest",
|
|
10
10
|
"test:watch": "vitest --watch",
|
|
11
11
|
"lint": "eslint --ignore-path .gitignore --ext .js,.ts .",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"prettier": "^3.2.5",
|
|
31
31
|
"supertest": "^6.3.4",
|
|
32
32
|
"ts-node": "^10.9.2",
|
|
33
|
+
"tsc-alias": "^1.8.8",
|
|
33
34
|
"typescript": "^5.4.2",
|
|
34
35
|
"vitest": "^1.4.0"
|
|
35
36
|
},
|
package/queries/in-memory.d.ts
CHANGED
package/queries/in-memory.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inMemoryQueries = void 0;
|
|
4
1
|
const data = {};
|
|
5
2
|
const getAll = (resource) => {
|
|
6
3
|
createResourceArrayIfNecessary(resource);
|
|
@@ -52,7 +49,7 @@ const createResourceArrayIfNecessary = (resource) => {
|
|
|
52
49
|
if (!Object.hasOwn(data, resource))
|
|
53
50
|
data[resource] = [];
|
|
54
51
|
};
|
|
55
|
-
|
|
52
|
+
export const inMemoryQueries = {
|
|
56
53
|
getAll,
|
|
57
54
|
getById,
|
|
58
55
|
create,
|
package/queries/in-memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../../src/queries/in-memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../../src/queries/in-memory.ts"],"names":[],"mappings":"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"}
|
package/queries/mongo.d.ts
CHANGED
package/queries/mongo.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMongoQueries = void 0;
|
|
4
|
-
const mongo_1 = require("@rakered/mongo");
|
|
1
|
+
import { connect } from '@rakered/mongo';
|
|
5
2
|
let uri;
|
|
6
3
|
let db;
|
|
7
4
|
const connectToDatabase = async () => {
|
|
8
5
|
if (!db) {
|
|
9
6
|
console.log('Connecting to MongoDB...');
|
|
10
7
|
try {
|
|
11
|
-
db = await
|
|
8
|
+
db = await connect(uri);
|
|
12
9
|
console.log('Connected to MongoDB!');
|
|
13
10
|
}
|
|
14
11
|
catch (error) {
|
|
@@ -62,7 +59,7 @@ const removeUnderscoreFromId = (item) => {
|
|
|
62
59
|
const { _id, ...updatedItem } = item;
|
|
63
60
|
return updatedItem;
|
|
64
61
|
};
|
|
65
|
-
const createMongoQueries = (connectionString) => {
|
|
62
|
+
export const createMongoQueries = (connectionString) => {
|
|
66
63
|
uri = connectionString;
|
|
67
64
|
const mongoQueries = {
|
|
68
65
|
getAll,
|
|
@@ -75,5 +72,4 @@ const createMongoQueries = (connectionString) => {
|
|
|
75
72
|
};
|
|
76
73
|
return mongoQueries;
|
|
77
74
|
};
|
|
78
|
-
exports.createMongoQueries = createMongoQueries;
|
|
79
75
|
//# sourceMappingURL=mongo.js.map
|
package/queries/mongo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../../src/queries/mongo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../../src/queries/mongo.ts"],"names":[],"mappings":"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"}
|
package/queries/queries.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const createQueries: (connectionString: string | null) => import("./types").Queries;
|
|
1
|
+
export declare const createQueries: (connectionString: string | null) => import("./types.js").Queries;
|
|
2
2
|
//# sourceMappingURL=queries.d.ts.map
|
package/queries/queries.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const in_memory_1 = require("./in-memory");
|
|
5
|
-
const mongo_1 = require("./mongo");
|
|
6
|
-
const createQueries = (connectionString) => {
|
|
1
|
+
import { inMemoryQueries } from './in-memory.js';
|
|
2
|
+
import { createMongoQueries } from './mongo.js';
|
|
3
|
+
export const createQueries = (connectionString) => {
|
|
7
4
|
if (!connectionString) {
|
|
8
|
-
return
|
|
5
|
+
return inMemoryQueries;
|
|
9
6
|
}
|
|
10
|
-
const mongoQueries =
|
|
7
|
+
const mongoQueries = createMongoQueries(connectionString);
|
|
11
8
|
return mongoQueries;
|
|
12
9
|
};
|
|
13
|
-
exports.createQueries = createQueries;
|
|
14
10
|
//# sourceMappingURL=queries.js.map
|
package/queries/queries.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/queries/queries.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/queries/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,gBAA+B,EAAE,EAAE;IAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAA;IACzD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA"}
|
package/queries/types.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { RequestBodyInterceptorCallback } from './types';
|
|
1
|
+
import type { RequestBodyInterceptorCallback } from './types.js';
|
|
2
2
|
export declare const interceptRequestBody: (intercept: RequestBodyInterceptorCallback, resource: string, body: unknown) => unknown;
|
|
3
3
|
//# sourceMappingURL=interceptRequestBody.d.ts.map
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.interceptRequestBody = void 0;
|
|
4
|
-
const interceptRequestBody = (intercept, resource, body) => {
|
|
1
|
+
export const interceptRequestBody = (intercept, resource, body) => {
|
|
5
2
|
const intercepted = intercept({ resource, body });
|
|
6
3
|
if (!intercepted && typeof body === 'object')
|
|
7
4
|
return body;
|
|
@@ -14,5 +11,4 @@ const interceptRequestBody = (intercept, resource, body) => {
|
|
|
14
11
|
// This is not supported, so we return the original request body.
|
|
15
12
|
return body;
|
|
16
13
|
};
|
|
17
|
-
exports.interceptRequestBody = interceptRequestBody;
|
|
18
14
|
//# sourceMappingURL=interceptRequestBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptRequestBody.js","sourceRoot":"","sources":["../../../src/requestBodyInterceptor/interceptRequestBody.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interceptRequestBody.js","sourceRoot":"","sources":["../../../src/requestBodyInterceptor/interceptRequestBody.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAAyC,EACzC,QAAgB,EAChB,IAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjD,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAEzD,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAA;IAEvD,6CAA6C;IAC7C,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;QAC/E,OAAO,WAAW,CAAA;IAEpB,8EAA8E;IAC9E,iEAAiE;IACjE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Queries } from '../queries/types';
|
|
2
|
-
import type { DeleteRequest } from './types';
|
|
1
|
+
import type { Queries } from '../queries/types.js';
|
|
2
|
+
import type { DeleteRequest } from './types.js';
|
|
3
3
|
export declare const createDeleteRoutes: (queries: Queries) => (req: DeleteRequest) => Promise<{
|
|
4
4
|
status: number;
|
|
5
5
|
body?: undefined;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDeleteRoutes = void 0;
|
|
4
|
-
const createDeleteRoutes = (queries) => {
|
|
1
|
+
export const createDeleteRoutes = (queries) => {
|
|
5
2
|
const handleDelete = async (req) => {
|
|
6
3
|
try {
|
|
7
4
|
const { resource, id } = req;
|
|
@@ -22,5 +19,4 @@ const createDeleteRoutes = (queries) => {
|
|
|
22
19
|
};
|
|
23
20
|
return handleDelete;
|
|
24
21
|
};
|
|
25
|
-
exports.createDeleteRoutes = createDeleteRoutes;
|
|
26
22
|
//# sourceMappingURL=delete.js.map
|
|
@@ -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":"AAGA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAE,EAAE;IACrD,MAAM,YAAY,GAAG,KAAK,EAAE,GAAkB,EAAE,EAAE;QAChD,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;gBAChD,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBACxC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,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,6 +1,6 @@
|
|
|
1
|
-
import type { Queries } from '../queries/types';
|
|
2
|
-
import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types';
|
|
3
|
-
import type { GetRequest } from './types';
|
|
1
|
+
import type { Queries } from '../queries/types.js';
|
|
2
|
+
import type { ResponseBodyInterceptor } from '../responseBodyInterceptor/types.js';
|
|
3
|
+
import type { GetRequest } from './types.js';
|
|
4
4
|
export declare const createGetRoutes: (queries: Queries, cacheControl: string, responseBodyInterceptor: ResponseBodyInterceptor | null, returnNullFields: boolean) => (req: GetRequest) => Promise<{
|
|
5
5
|
status: number;
|
|
6
6
|
body: unknown;
|
package/requestHandlers/get.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const interceptResponseBody_1 = require("../responseBodyInterceptor/interceptResponseBody");
|
|
5
|
-
const utils_1 = require("./utils");
|
|
6
|
-
const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnNullFields) => {
|
|
1
|
+
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
|
|
2
|
+
import { removeNullFields } from './utils.js';
|
|
3
|
+
export const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnNullFields) => {
|
|
7
4
|
const defaultResponse = { headers: { 'Cache-control': cacheControl } };
|
|
8
5
|
const responseOk = (body) => ({ ...defaultResponse, status: 200, body });
|
|
9
6
|
const handleGet = async (req) => {
|
|
@@ -15,28 +12,28 @@ const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnN
|
|
|
15
12
|
return { ...defaultResponse, status: 404 };
|
|
16
13
|
}
|
|
17
14
|
const theItem = responseBodyInterceptor
|
|
18
|
-
?
|
|
15
|
+
? interceptResponseBody(responseBodyInterceptor, { resource, body: item, id })
|
|
19
16
|
: item;
|
|
20
17
|
if (!returnNullFields) {
|
|
21
18
|
if (Array.isArray(theItem)) {
|
|
22
|
-
return responseOk(theItem.map((item) =>
|
|
19
|
+
return responseOk(theItem.map((item) => removeNullFields(item)));
|
|
23
20
|
}
|
|
24
21
|
if (typeof theItem === 'object') {
|
|
25
|
-
return responseOk(
|
|
22
|
+
return responseOk(removeNullFields(theItem));
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
25
|
return responseOk(theItem);
|
|
29
26
|
}
|
|
30
27
|
const items = await queries.getAll(resource);
|
|
31
28
|
const theItems = responseBodyInterceptor
|
|
32
|
-
?
|
|
29
|
+
? interceptResponseBody(responseBodyInterceptor, { resource, body: items })
|
|
33
30
|
: items;
|
|
34
31
|
if (!returnNullFields) {
|
|
35
32
|
if (Array.isArray(theItems)) {
|
|
36
|
-
return responseOk(theItems.map((item) =>
|
|
33
|
+
return responseOk(theItems.map((item) => removeNullFields(item)));
|
|
37
34
|
}
|
|
38
35
|
if (typeof theItems === 'object') {
|
|
39
|
-
return responseOk(
|
|
36
|
+
return responseOk(removeNullFields(theItems));
|
|
40
37
|
}
|
|
41
38
|
}
|
|
42
39
|
return responseOk(theItems);
|
|
@@ -47,5 +44,4 @@ const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnN
|
|
|
47
44
|
};
|
|
48
45
|
return handleGet;
|
|
49
46
|
};
|
|
50
|
-
exports.createGetRoutes = createGetRoutes;
|
|
51
47
|
//# sourceMappingURL=get.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/requestHandlers/get.ts"],"names":[],"mappings":"
|
|
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,8 +1,8 @@
|
|
|
1
|
-
import type { RouterConfig } from '../config';
|
|
2
|
-
import type { CompiledSchemas } from '../schema/types';
|
|
3
|
-
import type { Queries } from '../queries/types';
|
|
1
|
+
import type { RouterConfig } from '../config/index.js';
|
|
2
|
+
import type { CompiledSchemas } from '../schema/types.js';
|
|
3
|
+
import type { Queries } from '../queries/types.js';
|
|
4
4
|
export declare const getRequestHandler: (queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig) => {
|
|
5
|
-
handleGet: (req: import("./types").GetRequest) => Promise<{
|
|
5
|
+
handleGet: (req: import("./types.js").GetRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
|
8
8
|
headers: {
|
|
@@ -20,7 +20,7 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
20
20
|
message: string;
|
|
21
21
|
};
|
|
22
22
|
}>;
|
|
23
|
-
handlePost: (req: import("./types").PostRequest) => Promise<{
|
|
23
|
+
handlePost: (req: import("./types.js").PostRequest) => Promise<{
|
|
24
24
|
status: number;
|
|
25
25
|
body: {
|
|
26
26
|
message: string;
|
|
@@ -33,15 +33,15 @@ export declare const getRequestHandler: (queries: Queries, schemas: CompiledSche
|
|
|
33
33
|
status: number;
|
|
34
34
|
body: unknown;
|
|
35
35
|
}>;
|
|
36
|
-
handlePut: (req: import("./types").PutRequest) => Promise<{
|
|
36
|
+
handlePut: (req: import("./types.js").PutRequest) => Promise<{
|
|
37
37
|
status: number;
|
|
38
38
|
body: unknown;
|
|
39
39
|
}>;
|
|
40
|
-
handlePatch: (req: import("./types").PutRequest) => Promise<{
|
|
40
|
+
handlePatch: (req: import("./types.js").PutRequest) => Promise<{
|
|
41
41
|
status: number;
|
|
42
42
|
body: unknown;
|
|
43
43
|
}>;
|
|
44
|
-
handleDelete: (req: import("./types").DeleteRequest) => Promise<{
|
|
44
|
+
handleDelete: (req: import("./types.js").DeleteRequest) => Promise<{
|
|
45
45
|
status: number;
|
|
46
46
|
body?: undefined;
|
|
47
47
|
} | {
|
package/requestHandlers/index.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const patch_1 = require("./patch");
|
|
8
|
-
const delete_1 = require("./delete");
|
|
9
|
-
const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
1
|
+
import { createGetRoutes } from './get.js';
|
|
2
|
+
import { createPostRoutes } from './post.js';
|
|
3
|
+
import { createPutRoutes } from './put.js';
|
|
4
|
+
import { createPatchRoutes } from './patch.js';
|
|
5
|
+
import { createDeleteRoutes } from './delete.js';
|
|
6
|
+
export const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
10
7
|
const { cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields } = routerConfig;
|
|
11
|
-
const handleGet =
|
|
12
|
-
const handlePost =
|
|
13
|
-
const handlePut =
|
|
14
|
-
const handlePatch =
|
|
15
|
-
const handleDelete =
|
|
8
|
+
const handleGet = createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnNullFields);
|
|
9
|
+
const handlePost = createPostRoutes(queries, requestBodyInterceptor, returnNullFields, schemas.post);
|
|
10
|
+
const handlePut = createPutRoutes(queries, requestBodyInterceptor, returnNullFields, schemas.put);
|
|
11
|
+
const handlePatch = createPatchRoutes(queries, requestBodyInterceptor, returnNullFields, schemas.patch);
|
|
12
|
+
const handleDelete = createDeleteRoutes(queries);
|
|
16
13
|
return {
|
|
17
14
|
handleGet,
|
|
18
15
|
handlePost,
|
|
@@ -21,5 +18,4 @@ const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
|
21
18
|
handleDelete,
|
|
22
19
|
};
|
|
23
20
|
};
|
|
24
|
-
exports.getRequestHandler = getRequestHandler;
|
|
25
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/requestHandlers/index.ts"],"names":[],"mappings":"
|
|
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,EAAE,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,GACvF,YAAY,CAAA;IAEd,MAAM,SAAS,GAAG,eAAe,CAC/B,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IAED,MAAM,UAAU,GAAG,gBAAgB,CACjC,OAAO,EACP,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,CAAC,IAAI,CACb,CAAA;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IAEjG,MAAM,WAAW,GAAG,iBAAiB,CACnC,OAAO,EACP,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,CAAC,KAAK,CACd,CAAA;IAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAEhD,OAAO;QACL,SAAS;QACT,UAAU;QACV,SAAS;QACT,WAAW;QACX,YAAY;KACb,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ValidateFunctionPerResource } from '../schema/types';
|
|
2
|
-
import type { PatchRequest } from './types';
|
|
3
|
-
import type { Queries } from '../queries/types';
|
|
4
|
-
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
|
|
1
|
+
import type { ValidateFunctionPerResource } from '../schema/types.js';
|
|
2
|
+
import type { PatchRequest } from './types.js';
|
|
3
|
+
import type { Queries } from '../queries/types.js';
|
|
4
|
+
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
|
|
5
5
|
export declare const createPatchRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null) => (req: PatchRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
package/requestHandlers/patch.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const validate_1 = require("../schema/validate");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
1
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
2
|
+
import { validate } from '../schema/validate.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
|
+
export const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
8
5
|
const handlePatch = async (req) => {
|
|
9
6
|
try {
|
|
10
7
|
const { body, resource, id } = req;
|
|
11
|
-
const validationResult =
|
|
8
|
+
const validationResult = validate(body, schemas?.[resource]);
|
|
12
9
|
if (validationResult.isValid === false) {
|
|
13
10
|
return { status: 400, body: { message: validationResult.errorMessage } };
|
|
14
11
|
}
|
|
15
12
|
const body2 = requestBodyInterceptor?.patch
|
|
16
|
-
?
|
|
13
|
+
? interceptRequestBody(requestBodyInterceptor.patch, resource, body)
|
|
17
14
|
: body;
|
|
18
15
|
if (typeof body2 === 'string')
|
|
19
16
|
return { status: 400, body: { message: body2 } };
|
|
@@ -27,7 +24,7 @@ const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, sc
|
|
|
27
24
|
};
|
|
28
25
|
item = { ...item, ...body2, id };
|
|
29
26
|
const updatedItem = await queries.update(resource, item);
|
|
30
|
-
return { status: 200, body: returnNullFields ? updatedItem :
|
|
27
|
+
return { status: 200, body: returnNullFields ? updatedItem : removeNullFields(updatedItem) };
|
|
31
28
|
}
|
|
32
29
|
catch (error) {
|
|
33
30
|
return { status: 500, body: { message: error.message } };
|
|
@@ -35,5 +32,4 @@ const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, sc
|
|
|
35
32
|
};
|
|
36
33
|
return handlePatch;
|
|
37
34
|
};
|
|
38
|
-
exports.createPatchRoutes = createPatchRoutes;
|
|
39
35
|
//# sourceMappingURL=patch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/requestHandlers/patch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAA;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAgB,EAChB,sBAAqD,EACrD,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,MAAM,KAAK,GAAG,sBAAsB,EAAE,KAAK;gBACzC,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAA;YAER,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;YAE/E,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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ValidateFunctionPerResource } from '../schema/types';
|
|
2
|
-
import type { PostRequest } from './types';
|
|
3
|
-
import type { Queries } from '../queries/types';
|
|
4
|
-
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
|
|
1
|
+
import type { ValidateFunctionPerResource } from '../schema/types.js';
|
|
2
|
+
import type { PostRequest } from './types.js';
|
|
3
|
+
import type { Queries } from '../queries/types.js';
|
|
4
|
+
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
|
|
5
5
|
export declare const createPostRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource) => (req: PostRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: {
|
package/requestHandlers/post.js
CHANGED
|
@@ -1,34 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
const validate_1 = require("../schema/validate");
|
|
8
|
-
const createPostRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
1
|
+
import { format } from 'url';
|
|
2
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
|
+
import { validate } from '../schema/validate.js';
|
|
5
|
+
export const createPostRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
9
6
|
const handlePost = async (req) => {
|
|
10
7
|
try {
|
|
11
8
|
const { body, protocol, host, resource } = req;
|
|
12
|
-
const validationResult =
|
|
9
|
+
const validationResult = validate(body, schemas[resource]);
|
|
13
10
|
if (validationResult.isValid === false) {
|
|
14
11
|
return { status: 400, body: { message: validationResult.errorMessage } };
|
|
15
12
|
}
|
|
16
13
|
const body2 = requestBodyInterceptor?.post
|
|
17
|
-
?
|
|
14
|
+
? interceptRequestBody(requestBodyInterceptor.post, resource, body)
|
|
18
15
|
: body;
|
|
19
16
|
if (typeof body2 === 'string')
|
|
20
17
|
return { status: 400, body: { message: body2 } };
|
|
21
18
|
const newItem = await queries.create(resource, body2);
|
|
22
19
|
return {
|
|
23
20
|
headers: {
|
|
24
|
-
Location:
|
|
21
|
+
Location: format({
|
|
25
22
|
protocol: protocol,
|
|
26
23
|
host: host,
|
|
27
24
|
pathname: `${resource}/${newItem.id}`,
|
|
28
25
|
}),
|
|
29
26
|
},
|
|
30
27
|
status: 201,
|
|
31
|
-
body: returnNullFields ? newItem :
|
|
28
|
+
body: returnNullFields ? newItem : removeNullFields(newItem),
|
|
32
29
|
};
|
|
33
30
|
}
|
|
34
31
|
catch (error) {
|
|
@@ -37,5 +34,4 @@ const createPostRoutes = (queries, requestBodyInterceptor, returnNullFields, sch
|
|
|
37
34
|
};
|
|
38
35
|
return handlePost;
|
|
39
36
|
};
|
|
40
|
-
exports.createPostRoutes = createPostRoutes;
|
|
41
37
|
//# sourceMappingURL=post.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../../src/requestHandlers/post.ts"],"names":[],"mappings":"
|
|
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,gDAAgD,CAAA;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAM7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,OAAgB,EAChB,sBAAqD,EACrD,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,MAAM,KAAK,GAAG,sBAAsB,EAAE,IAAI;gBACxC,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAA;YAER,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;YAE/E,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.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ValidateFunctionPerResource } from '../schema/types';
|
|
2
|
-
import type { PutRequest } from './types';
|
|
3
|
-
import type { Queries } from '../queries/types';
|
|
4
|
-
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types';
|
|
1
|
+
import type { ValidateFunctionPerResource } from '../schema/types.js';
|
|
2
|
+
import type { PutRequest } from './types.js';
|
|
3
|
+
import type { Queries } from '../queries/types.js';
|
|
4
|
+
import { RequestBodyInterceptor } from '../requestBodyInterceptor/types.js';
|
|
5
5
|
export declare const createPutRoutes: (queries: Queries, requestBodyInterceptor: RequestBodyInterceptor | null, returnNullFields: boolean, schemas: ValidateFunctionPerResource | null) => (req: PutRequest) => Promise<{
|
|
6
6
|
status: number;
|
|
7
7
|
body: unknown;
|
package/requestHandlers/put.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const validate_1 = require("../schema/validate");
|
|
6
|
-
const utils_1 = require("./utils");
|
|
7
|
-
const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
1
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
2
|
+
import { validate } from '../schema/validate.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
|
+
export const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
8
5
|
const handlePut = async (req) => {
|
|
9
6
|
try {
|
|
10
7
|
const { body, resource, id } = req;
|
|
11
|
-
const validationResult =
|
|
8
|
+
const validationResult = validate(body, schemas?.[resource]);
|
|
12
9
|
if (validationResult.isValid === false) {
|
|
13
10
|
return { status: 400, body: { message: validationResult.errorMessage } };
|
|
14
11
|
}
|
|
15
12
|
const body2 = requestBodyInterceptor?.put
|
|
16
|
-
?
|
|
13
|
+
? interceptRequestBody(requestBodyInterceptor.put, resource, body)
|
|
17
14
|
: body;
|
|
18
15
|
if (typeof body2 === 'string')
|
|
19
16
|
return { status: 400, body: { message: body2 } };
|
|
@@ -27,7 +24,7 @@ const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, sche
|
|
|
27
24
|
};
|
|
28
25
|
item = { ...body2, id };
|
|
29
26
|
const replacedItem = await queries.replace(resource, item);
|
|
30
|
-
return { status: 200, body: returnNullFields ? replacedItem :
|
|
27
|
+
return { status: 200, body: returnNullFields ? replacedItem : removeNullFields(replacedItem) };
|
|
31
28
|
}
|
|
32
29
|
catch (error) {
|
|
33
30
|
return { status: 500, body: { message: error.message } };
|
|
@@ -35,5 +32,4 @@ const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, sche
|
|
|
35
32
|
};
|
|
36
33
|
return handlePut;
|
|
37
34
|
};
|
|
38
|
-
exports.createPutRoutes = createPutRoutes;
|
|
39
35
|
//# sourceMappingURL=put.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/requestHandlers/put.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAA;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAM1C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,sBAAqD,EACrD,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,MAAM,KAAK,GAAG,sBAAsB,EAAE,GAAG;gBACvC,CAAC,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAA;YAER,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;YAE/E,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"}
|
package/requestHandlers/types.js
CHANGED
package/requestHandlers/utils.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeNullFields = void 0;
|
|
4
|
-
const removeNullFields = (obj) => {
|
|
1
|
+
export const removeNullFields = (obj) => {
|
|
5
2
|
if (typeof obj !== 'object' || obj === null)
|
|
6
3
|
return obj;
|
|
7
4
|
return Object.fromEntries(Object.entries(obj).filter(([, value]) => value !== null));
|
|
8
5
|
};
|
|
9
|
-
exports.removeNullFields = removeNullFields;
|
|
10
6
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/requestHandlers/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/requestHandlers/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAY,EAAE,EAAE;IAC/C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IACvD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA"}
|
package/resourceRouter.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Queries } from './queries/types';
|
|
2
|
-
import { CompiledSchemas } from './schema/types';
|
|
3
|
-
import { RouterConfig } from './config';
|
|
1
|
+
import { Queries } from './queries/types.js';
|
|
2
|
+
import { CompiledSchemas } from './schema/types.js';
|
|
3
|
+
import { RouterConfig } from './config/index.js';
|
|
4
4
|
export declare const createResourceRouter: (queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig) => import("express-serve-static-core").Router;
|
|
5
5
|
//# sourceMappingURL=resourceRouter.d.ts.map
|
package/resourceRouter.js
CHANGED
|
@@ -1,16 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createResourceRouter = void 0;
|
|
7
|
-
const express_1 = __importDefault(require("express"));
|
|
8
|
-
const requestHandlers_1 = require("./requestHandlers");
|
|
9
|
-
const urlParser_1 = require("./urls/urlParser");
|
|
10
|
-
const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import { getRequestHandler } from './requestHandlers/index.js';
|
|
3
|
+
import { parseUrl } from './urls/urlParser.js';
|
|
4
|
+
export const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
11
5
|
const getUrlInfo = (baseUrl) => {
|
|
12
6
|
const url = routerConfig.apiPrefix ? baseUrl.replace(routerConfig.apiPrefix, '') : baseUrl;
|
|
13
|
-
return
|
|
7
|
+
return parseUrl(url);
|
|
14
8
|
};
|
|
15
9
|
const parseGetRequest = (req) => {
|
|
16
10
|
const urlInfo = getUrlInfo(req.baseUrl);
|
|
@@ -79,8 +73,8 @@ const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
|
79
73
|
const response = await handleRequest(requestInfo);
|
|
80
74
|
sendResponse(response, expressResponse);
|
|
81
75
|
};
|
|
82
|
-
const requestHandler =
|
|
83
|
-
const resourceRouter =
|
|
76
|
+
const requestHandler = getRequestHandler(queries, schemas, routerConfig);
|
|
77
|
+
const resourceRouter = express.Router();
|
|
84
78
|
resourceRouter.get('*', async (expressRequest, expressResponse) => {
|
|
85
79
|
await handle(expressRequest, expressResponse, parseGetRequest, requestHandler.handleGet);
|
|
86
80
|
});
|
|
@@ -98,5 +92,4 @@ const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
|
98
92
|
});
|
|
99
93
|
return resourceRouter;
|
|
100
94
|
};
|
|
101
|
-
exports.createResourceRouter = createResourceRouter;
|
|
102
95
|
//# sourceMappingURL=resourceRouter.js.map
|
package/resourceRouter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resourceRouter.js","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resourceRouter.js","sourceRoot":"","sources":["../../src/resourceRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { InterceptedResponse, ResponseBodyInterceptor } from './types';
|
|
1
|
+
import { InterceptedResponse, ResponseBodyInterceptor } from './types.js';
|
|
2
2
|
export declare const interceptResponseBody: (interceptor: ResponseBodyInterceptor, info: InterceptedResponse) => {};
|
|
3
3
|
//# sourceMappingURL=interceptResponseBody.d.ts.map
|
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.interceptResponseBody = void 0;
|
|
4
|
-
const interceptResponseBody = (interceptor, info) => {
|
|
1
|
+
export const interceptResponseBody = (interceptor, info) => {
|
|
5
2
|
if (!interceptor)
|
|
6
3
|
return info.body;
|
|
7
4
|
const intercepted = interceptor(info);
|
|
8
5
|
return intercepted ? intercepted : info.body;
|
|
9
6
|
};
|
|
10
|
-
exports.interceptResponseBody = interceptResponseBody;
|
|
11
7
|
//# sourceMappingURL=interceptResponseBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interceptResponseBody.js","sourceRoot":"","sources":["../../../src/responseBodyInterceptor/interceptResponseBody.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interceptResponseBody.js","sourceRoot":"","sources":["../../../src/responseBodyInterceptor/interceptResponseBody.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,WAAoC,EACpC,IAAyB,EACzB,EAAE;IACF,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,IAAI,CAAA;IAElC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAErC,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;AAC9C,CAAC,CAAA"}
|
package/schema/compile.d.ts
CHANGED
package/schema/compile.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.compileSchemas = void 0;
|
|
7
|
-
const ajv_1 = __importDefault(require("ajv"));
|
|
8
|
-
const compileSchemas = (configuredSchemas) => {
|
|
1
|
+
import Ajv from 'ajv';
|
|
2
|
+
export const compileSchemas = (configuredSchemas) => {
|
|
9
3
|
// Turn the configured schemas into compiled schemas
|
|
10
4
|
const compiledSchemas = {
|
|
11
5
|
post: {},
|
|
@@ -15,7 +9,7 @@ const compileSchemas = (configuredSchemas) => {
|
|
|
15
9
|
if (!configuredSchemas)
|
|
16
10
|
return compiledSchemas;
|
|
17
11
|
// Use a single Ajv instance in the whole app
|
|
18
|
-
const ajv = new
|
|
12
|
+
const ajv = new Ajv();
|
|
19
13
|
Object.keys(configuredSchemas).forEach((resource) => {
|
|
20
14
|
if (configuredSchemas[resource]?.post) {
|
|
21
15
|
compiledSchemas.post[resource] = ajv.compile(configuredSchemas[resource]?.post);
|
|
@@ -29,5 +23,4 @@ const compileSchemas = (configuredSchemas) => {
|
|
|
29
23
|
});
|
|
30
24
|
return compiledSchemas;
|
|
31
25
|
};
|
|
32
|
-
exports.compileSchemas = compileSchemas;
|
|
33
26
|
//# sourceMappingURL=compile.js.map
|
package/schema/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/schema/compile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/schema/compile.ts"],"names":[],"mappings":"AAAA,OAAO,GAAkB,MAAM,KAAK,CAAA;AAGpC,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,iBAA2C,EAAE,EAAE;IAC5E,oDAAoD;IACpD,MAAM,eAAe,GAAoB;QACvC,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,EAAE;KACV,CAAA;IAED,IAAI,CAAC,iBAAiB;QAAE,OAAO,eAAe,CAAA;IAE9C,6CAA6C;IAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;IAErB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClD,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;YACtC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,IAAiB,CAAC,CAAA;QAC9F,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;YACrC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,GAAgB,CAAC,CAAA;QAC5F,CAAC;QAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;YACvC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,KAAkB,CAAC,CAAA;QAChG,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA"}
|
package/schema/types.js
CHANGED
package/schema/validate.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ValidateFunction } from 'ajv';
|
|
2
|
-
import { ValidationResult } from './types';
|
|
2
|
+
import { ValidationResult } from './types.js';
|
|
3
3
|
export declare const validate: (body: unknown, validate?: ValidateFunction<unknown>) => ValidationResult;
|
|
4
4
|
//# sourceMappingURL=validate.d.ts.map
|
package/schema/validate.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate = void 0;
|
|
4
|
-
const validate = (body, validate) => {
|
|
1
|
+
export const validate = (body, validate) => {
|
|
5
2
|
if (!validate)
|
|
6
3
|
return { isValid: true };
|
|
7
4
|
if (validate(body)) {
|
|
@@ -14,5 +11,4 @@ const validate = (body, validate) => {
|
|
|
14
11
|
};
|
|
15
12
|
}
|
|
16
13
|
};
|
|
17
|
-
exports.validate = validate;
|
|
18
14
|
//# sourceMappingURL=validate.js.map
|
package/schema/validate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/schema/validate.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAa,EAAE,QAAoC,EAAoB,EAAE;IAChG,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAEvC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,iCAAiC;SACjF,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
|
package/urls/urlParser.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseUrl = void 0;
|
|
4
|
-
const parseUrl = (url) => {
|
|
1
|
+
export const parseUrl = (url) => {
|
|
5
2
|
if (!url || (url && !url.trim()))
|
|
6
3
|
return { resource: null, id: null };
|
|
7
4
|
const urlSegments = url.split('/').filter((i) => i);
|
|
@@ -9,5 +6,4 @@ const parseUrl = (url) => {
|
|
|
9
6
|
const id = (urlSegments.length > 1 ? urlSegments[1] : null) ?? null;
|
|
10
7
|
return { resource, id };
|
|
11
8
|
};
|
|
12
|
-
exports.parseUrl = parseUrl;
|
|
13
9
|
//# sourceMappingURL=urlParser.js.map
|
package/urls/urlParser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../../src/urls/urlParser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../../src/urls/urlParser.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;IACtC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAErE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IACzE,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IAEnE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACzB,CAAC,CAAA"}
|