temba 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -72,11 +72,13 @@ Alternatively, add Temba to your app manually:
72
72
  ```js
73
73
  import temba from 'temba'
74
74
  const server = temba.create()
75
+ server.start()
76
+ ```
77
+
78
+ 3. In your console you'll see:
75
79
 
76
- const port = process.env.PORT || 3000
77
- server.listen(port, () => {
78
- console.log(`Temba is running on port ${port}`)
79
- })
80
+ ```
81
+ Server listening on port 3000
80
82
  ```
81
83
 
82
84
  ### Configuration
@@ -134,11 +136,11 @@ For every resource you use in your requests, a collection is created in the data
134
136
 
135
137
  ### Allowing specific resources only
136
138
 
137
- If you only want to allow specific resource names, configure them by providing a `resourceNames` key in the config object when creating the Temba server:
139
+ If you only want to allow specific resource names, configure them by providing a `resources` key in the config object when creating the Temba server:
138
140
 
139
141
  ```js
140
142
  const config = {
141
- resourceNames: ['movies', 'actors'],
143
+ resources: ['movies', 'actors'],
142
144
  }
143
145
  const server = temba.create(config)
144
146
  ```
@@ -208,14 +210,14 @@ You can even omit a request body when doing a `POST`, `PATCH`, or `PUT`. If you
208
210
  ```js
209
211
  const config = {
210
212
  requestBodyInterceptor: {
211
- post: ({ resourceName, requestBody }) => {
212
- // Validate, or even change the requestBody
213
+ post: ({ resource, body }) => {
214
+ // Validate, or even change the request body
213
215
  },
214
- put: ({ resourceName, requestBody }) => {
215
- // Validate, or even change the requestBody
216
+ put: ({ resource, body }) => {
217
+ // Validate, or even change the request body
216
218
  },
217
- patch: ({ resourceName, requestBody }) => {
218
- // Validate, or even change the requestBody
219
+ patch: ({ resource, body }) => {
220
+ // Validate, or even change the request body
219
221
  },
220
222
  },
221
223
  }
@@ -225,7 +227,7 @@ const server = temba.create(config)
225
227
 
226
228
  The `requestBodyInterceptor` is an object with a `post`, and/or `patch`, and/or `put` field, which contains the callback function you want Temba to call before the JSON is saved to the database.
227
229
 
228
- The callback function receives an object containing the `resourceName`, which for example is `movies` if you request `POST /movies`, and the `requestBody`, which is the JSON object of the request body.
230
+ The callback function receives an object containing the `resource`, which for example is `movies` if you request `POST /movies`, and the `body`, which is the JSON object of the request body.
229
231
 
230
232
  Your callback function can return the following things:
231
233
 
@@ -238,13 +240,13 @@ Example:
238
240
  ```js
239
241
  const config = {
240
242
  requestBodyInterceptor: {
241
- post: ({ resourceName, requestBody }) => {
242
- // Do not allow Pokemons to be created: 400 Bad Request
243
- if (resourceName === 'pokemons') return 'You are not allowed to create new Pokemons'
243
+ post: ({ resource, body }) => {
244
+ // Do not allow Pokemons to be created: 400 Bad Req best
245
+ if (resource === 'pokemons') return 'You are not allowed to create new Pokemons'
244
246
 
245
247
  // Add a genre to Star Trek films:
246
- if (resourceName === 'movies' && requestBody.title.startsWith('Star Trek'))
247
- return { ...requestBody, genre: 'Science Fiction' }
248
+ if (resource === 'movies' && body.title.startsWith('Star Trek'))
249
+ return { ...body, genre: 'Science Fiction' }
248
250
 
249
251
  // If you end up here, void will be returned, so the request will just be saved.
250
252
  },
@@ -260,17 +262,17 @@ To change the response body of a `GET` request, before it's being sent to the cl
260
262
 
261
263
  ```js
262
264
  const config = {
263
- responseBodyInterceptor: ({ resourceName, responseBody, id }) => {
264
- if (resourceName === 'movies') {
265
+ responseBodyInterceptor: ({ resource, body, id }) => {
266
+ if (resource === 'movies') {
265
267
  if (id) {
266
- // responseBody is an object
268
+ // response body is an object
267
269
  return {
268
- ...responseBody,
270
+ ...body,
269
271
  stuff: 'more stuff',
270
272
  }
271
273
  } else {
272
- // responseBody is an array
273
- return responseBody.map((x) => ({
274
+ // response body is an array
275
+ return body.map((x) => ({
274
276
  ...x,
275
277
  stuff: 'more stuff',
276
278
  }))
@@ -284,9 +286,9 @@ const config = {
284
286
  const server = temba.create(config)
285
287
  ```
286
288
 
287
- `responseBodyInterceptor` is a callback function that provides an object containing the `resourceName`, `responseBody`, and the `id`. Depending on whether it's a collection or item request, the `responseBody` is either an array or object, and the `id' can be `undefined`.
289
+ `responseBodyInterceptor` is a callback function that provides an object containing the `resource`, `body`, and the `id`. Depending on whether it's a collection or item request, the `body` is either an array or object, and the `id` can be `undefined`.
288
290
 
289
- In the example above we check for the `id` being defined, but a runtime check to determine the type of `responseBody` would also suffice.
291
+ In the example above we check for the `id` being defined, but a runtime check to determine the type of `body` would also suffice.
290
292
 
291
293
  Whatever you return in this function will become the response body and will be serialized as JSON and returned to the client.
292
294
 
@@ -296,18 +298,7 @@ The `responseBodyInterceptor` will only be called when the response was successf
296
298
 
297
299
  ### Custom router
298
300
 
299
- Although `temba.create()` returns an Express instance, adding your own routes, as you would normally do with Express, is not possible:
300
-
301
- ```js
302
- const server = temba.create()
303
-
304
- // 🛑 Although `server` is an Express instance, the following does not work:
305
- server.get('/hello', (req, res) => {
306
- res.send('hello world')
307
- })
308
- ```
309
-
310
- The reason is that Temba is in charge of all Express routes, to make sure only _resource routes_ can be overruled by a custom router. To add your own routes, create an Express router, and configure it as a `customRouter`:
301
+ Because Temba uses Express under the hood, you can create an Express router, and configure it as a `customRouter`:
311
302
 
312
303
  ```js
313
304
  // Example code of how to create an Express router, from the official Express docs at https://expressjs.com/en/guide/routing.html:
@@ -356,7 +347,7 @@ router.get('api/stuff', (req, res) => {
356
347
  const config = {
357
348
  apiPrefix: 'api',
358
349
  customRouter: router,
359
- resourceNames: ['stuff'],
350
+ resources: ['stuff'],
360
351
  staticFolder: 'build',
361
352
  }
362
353
  const server = temba.create(config)
@@ -380,19 +371,20 @@ const config = {
380
371
  connectionString: 'mongodb://localhost:27017',
381
372
  customRouter: router,
382
373
  delay: 500,
374
+ port: 4321,
383
375
  requestBodyInterceptor: {
384
- post: ({ resourceName, requestBody }) => {
385
- // Validate, or even change the requestBody
376
+ post: ({ resource, body }) => {
377
+ // Validate, or even change the request body
386
378
  },
387
- patch: ({ resourceName, requestBody }) => {
388
- // Validate, or even change the requestBody
379
+ patch: ({ resource, body }) => {
380
+ // Validate, or even change the request body
389
381
  },
390
- put: ({ resourceName, requestBody }) => {
391
- // Validate, or even change the requestBody
382
+ put: ({ resource, body }) => {
383
+ // Validate, or even change the request body
392
384
  },
393
385
  },
394
- resourceNames: ['movies', 'actors'],
395
- responseBodyInterceptor: ({ resourceName, responseBody, id }) => {
386
+ resources: ['movies', 'actors'],
387
+ responseBodyInterceptor: ({ resource, body, id }) => {
396
388
  // Change the response body before it is sent to the client
397
389
  },
398
390
  returnNullFields: false,
@@ -410,8 +402,9 @@ These are all the possible settings:
410
402
  | `connectionString` | See [MongoDB](#mongodb) | `null` |
411
403
  | `customRouter` | See [Custom router](#custom-router) | `null` |
412
404
  | `delay` | After processing the request, the delay in milliseconds before the request should be sent. | `0` |
405
+ | `port` | The port your Temba server listens on | `3000` |
413
406
  | `requestBodyInterceptor` | See [Request body validation or mutation](#request-body-validation-or-mutation) | `noop` |
414
- | `resourceNames` | See [Allowing specific resources only](#allowing-specific-resources-only) | `[]` |
407
+ | `resources` | See [Allowing specific resources only](#allowing-specific-resources-only) | `[]` |
415
408
  | `responseBodyInterceptor` | See [Response body interception](#request-body-validation-or-mutation) | `noop` |
416
409
  | `returnNullFields` | Whether fields with a `null` value should be returned in responses. | `true` |
417
410
  | `staticFolder` | See [Static assets](#static-assets) | `null` |
@@ -424,14 +417,12 @@ Although I won't promise if and when, these are some things to consider for the
424
417
 
425
418
  - Better **security**, for example CORS, CSRF, etc.
426
419
 
427
- - Connecting to a **SQLite** database
420
+ - Opt-in logging with debug-js events
428
421
 
429
422
  - Generic **filtering and sorting**, for example: `GET /api/movies?filter=releaseYear ge 1980 and releaseYear le 1989&sort=-releaseYear,title&page=2&limit=20&fields=title,releaseYear,genre`
430
423
 
431
424
  - Intial data seed when using in-memory.
432
425
 
433
- - Get rid of Express?
434
-
435
426
  ## Under the hood
436
427
 
437
428
  Temba is built with JavaScript, [Node](https://nodejs.org), [Express](https://expressjs.com/), [Jest](https://jestjs.io/), [Supertest](https://www.npmjs.com/package/supertest), and [@rakered/mongo](https://www.npmjs.com/package/@rakered/mongo).
package/config/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { Router } from 'express';
2
2
  import { RequestBodyInterceptor, ResponseBodyInterceptor } from '../routes/types';
3
3
  export type Config = {
4
4
  validateResources: boolean;
5
- resourceNames: string[];
5
+ resources: string[];
6
6
  apiPrefix: string;
7
7
  cacheControl: string;
8
8
  requestBodyInterceptor: RequestBodyInterceptor;
@@ -12,10 +12,12 @@ export type Config = {
12
12
  delay: number;
13
13
  customRouter: Router;
14
14
  returnNullFields: boolean;
15
+ isTesting: boolean;
16
+ port: number;
15
17
  };
16
- export type RouterConfig = Pick<Config, 'validateResources' | 'resourceNames' | 'apiPrefix' | 'cacheControl' | 'requestBodyInterceptor' | 'responseBodyInterceptor' | 'returnNullFields'>;
18
+ export type RouterConfig = Pick<Config, 'validateResources' | 'resources' | 'apiPrefix' | 'cacheControl' | 'requestBodyInterceptor' | 'responseBodyInterceptor' | 'returnNullFields'>;
17
19
  export type UserConfig = {
18
- resourceNames?: string[];
20
+ resources?: string[];
19
21
  staticFolder?: string;
20
22
  apiPrefix?: string;
21
23
  connectionString?: string;
@@ -25,5 +27,7 @@ export type UserConfig = {
25
27
  responseBodyInterceptor?: ResponseBodyInterceptor;
26
28
  customRouter?: Router;
27
29
  returnNullFields?: boolean;
30
+ isTesting?: boolean;
31
+ port?: number;
28
32
  };
29
33
  export declare function initConfig(userConfig: UserConfig): Config;
package/config/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.initConfig = void 0;
4
4
  const defaultConfig = {
5
- resourceNames: [],
5
+ resources: [],
6
6
  validateResources: false,
7
7
  staticFolder: null,
8
8
  apiPrefix: '',
@@ -20,19 +20,21 @@ const defaultConfig = {
20
20
  // do nothing
21
21
  },
22
22
  },
23
- responseBodyInterceptor: ({ responseBody }) => {
24
- return responseBody;
23
+ responseBodyInterceptor: ({ body }) => {
24
+ return body;
25
25
  },
26
26
  customRouter: null,
27
27
  returnNullFields: true,
28
+ isTesting: false,
29
+ port: 3000,
28
30
  };
29
31
  function initConfig(userConfig) {
30
- var _a;
32
+ var _a, _b, _c;
31
33
  if (!userConfig)
32
34
  return defaultConfig;
33
35
  const config = Object.assign({}, defaultConfig);
34
- if (userConfig.resourceNames && userConfig.resourceNames.length > 0) {
35
- config.resourceNames = userConfig.resourceNames;
36
+ if (userConfig.resources && userConfig.resources.length > 0) {
37
+ config.resources = userConfig.resources;
36
38
  config.validateResources = true;
37
39
  }
38
40
  if (userConfig.staticFolder) {
@@ -75,6 +77,8 @@ function initConfig(userConfig) {
75
77
  config.customRouter = userConfig.customRouter;
76
78
  }
77
79
  config.returnNullFields = (_a = userConfig.returnNullFields) !== null && _a !== void 0 ? _a : true;
80
+ config.isTesting = (_b = userConfig.isTesting) !== null && _b !== void 0 ? _b : false;
81
+ config.port = (_c = userConfig.port) !== null && _c !== void 0 ? _c : 3000;
78
82
  return config;
79
83
  }
80
84
  exports.initConfig = initConfig;
@@ -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":"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"}
package/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  import { Config } from './config';
2
- export declare function create(userConfig?: Config): import("express-serve-static-core").Express;
2
+ export declare function create(userConfig?: Config): {
3
+ start: () => void;
4
+ Express: import("express-serve-static-core").Express;
5
+ };
package/index.js CHANGED
@@ -47,8 +47,6 @@ function createServer(userConfig) {
47
47
  const delayMiddleware = (0, delayMiddleware_1.createDelayMiddleware)(config.delay);
48
48
  app.use(delayMiddleware);
49
49
  }
50
- //TODO customRoutes:
51
- // - Al deze routing code naar een aparte functie
52
50
  // Serve a static folder, if configured.
53
51
  if (config.staticFolder) {
54
52
  app.use(express_1.default.static(config.staticFolder));
@@ -75,7 +73,19 @@ function createServer(userConfig) {
75
73
  app.all('*', routes_1.handleMethodNotAllowed);
76
74
  if (config.apiPrefix)
77
75
  app.all(`${config.apiPrefix}*`, routes_1.handleMethodNotAllowed);
78
- return app;
76
+ return {
77
+ start: () => {
78
+ if (config.isTesting) {
79
+ console.log('⛔️ Server not started. Remove or disable isTesting from your config.');
80
+ return;
81
+ }
82
+ app.listen(config.port, () => {
83
+ console.log(`✅ Server listening on port ${config.port}`);
84
+ });
85
+ },
86
+ // Expose Express for testing purposes only, e.g. usage with supertest.
87
+ Express: config.isTesting ? app : undefined,
88
+ };
79
89
  }
80
90
  function create(userConfig) {
81
91
  return createServer(userConfig);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAuC;AACvC,oDAA2B;AAC3B,4CAKwB;AACxB,+CAAiD;AACjD,qCAAyD;AACzD,gDAAuB;AACvB,6DAA+D;AAE/D,SAAS,YAAY,CAAC,UAAuB;IAC3C,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAA;IAErC,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAEtD,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAA;IAEf,4BAA4B;IAC5B,GAAG,CAAC,GAAG,CAAC,IAAA,gBAAM,EAAC,MAAM,CAAC,CAAC,CAAA;IAEvB,gCAAgC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAElD,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE;QACpB,MAAM,eAAe,GAAG,IAAA,uCAAqB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3D,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;KACzB;IAED,oBAAoB;IACpB,iDAAiD;IAEjD,wCAAwC;IACxC,IAAI,MAAM,CAAC,YAAY,EAAE;QACvB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;KAC7C;IAED,wEAAwE;IACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IAC/D,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAU,CAAC,CAAA;IAE7B,IAAI,MAAM,CAAC,YAAY,EAAE;QACvB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;KAC7B;IAED,8EAA8E;IAC9E,MAAM,cAAc,GAAG,IAAA,6BAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IACpE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;IAErC,yGAAyG;IACzG,qCAAqC;IACrC,IAAI,MAAM,CAAC,SAAS,EAAE;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAc,CAAC,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAc,CAAC,CAAA;QAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,uBAAc,CAAC,CAAA;QAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,uBAAc,CAAC,CAAA;KAChC;IAED,gDAAgD;IAChD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,+BAAsB,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,GAAG,EAAE,+BAAsB,CAAC,CAAA;IAE7E,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,MAAM,CAAC,UAAmB;IACxC,OAAO,YAAY,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC;AAFD,wBAEC"}
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.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "Get a simple MongoDB REST API with zero coding in less than 30 seconds (seriously).",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1,11 +1,11 @@
1
1
  declare function connectToDatabase(): void;
2
- declare function getAll(resourceName: any): Promise<unknown>;
3
- declare function getById(resourceName: any, id: any): Promise<unknown>;
4
- declare function create(resourceName: any, item: any): Promise<unknown>;
5
- declare function update(resourceName: any, item: any): Promise<unknown>;
6
- declare function replace(resourceName: any, item: any): Promise<unknown>;
7
- declare function deleteById(resourceName: any, id: any): Promise<void>;
8
- declare function deleteAll(resourceName: any): Promise<unknown>;
2
+ declare function getAll(resource: any): Promise<unknown>;
3
+ declare function getById(resource: any, id: any): Promise<unknown>;
4
+ declare function create(resource: any, item: any): Promise<unknown>;
5
+ declare function update(resource: any, item: any): Promise<unknown>;
6
+ declare function replace(resource: any, item: any): Promise<unknown>;
7
+ declare function deleteById(resource: any, id: any): Promise<void>;
8
+ declare function deleteAll(resource: any): Promise<unknown>;
9
9
  declare const _default: {
10
10
  connectToDatabase: typeof connectToDatabase;
11
11
  getAll: typeof getAll;
@@ -4,54 +4,54 @@ const data = {};
4
4
  function connectToDatabase() {
5
5
  // do nothing
6
6
  }
7
- function getAll(resourceName) {
8
- createResourceArrayIfNecessary(resourceName);
7
+ function getAll(resource) {
8
+ createResourceArrayIfNecessary(resource);
9
9
  return new Promise((resolve) => {
10
- resolve(data[resourceName]);
10
+ resolve(data[resource]);
11
11
  });
12
12
  }
13
- function getById(resourceName, id) {
14
- createResourceArrayIfNecessary(resourceName);
13
+ function getById(resource, id) {
14
+ createResourceArrayIfNecessary(resource);
15
15
  return new Promise((resolve) => {
16
- resolve(data[resourceName].find((item) => item.id === id));
16
+ resolve(data[resource].find((item) => item.id === id));
17
17
  });
18
18
  }
19
- function create(resourceName, item) {
20
- createResourceArrayIfNecessary(resourceName);
19
+ function create(resource, item) {
20
+ createResourceArrayIfNecessary(resource);
21
21
  const newItem = Object.assign(Object.assign({}, item), { id: String(new Date().getTime()) });
22
- data[resourceName] = [...data[resourceName], newItem];
22
+ data[resource] = [...data[resource], newItem];
23
23
  return new Promise((resolve) => {
24
24
  resolve(newItem);
25
25
  });
26
26
  }
27
- function update(resourceName, item) {
28
- createResourceArrayIfNecessary(resourceName);
27
+ function update(resource, item) {
28
+ createResourceArrayIfNecessary(resource);
29
29
  const updatedItem = Object.assign({}, item);
30
- data[resourceName] = [...data[resourceName].filter((r) => r.id !== item.id), updatedItem];
30
+ data[resource] = [...data[resource].filter((r) => r.id !== item.id), updatedItem];
31
31
  return new Promise((resolve) => {
32
32
  resolve(updatedItem);
33
33
  });
34
34
  }
35
- function replace(resourceName, item) {
36
- return update(resourceName, item);
35
+ function replace(resource, item) {
36
+ return update(resource, item);
37
37
  }
38
- function deleteById(resourceName, id) {
39
- createResourceArrayIfNecessary(resourceName);
40
- data[resourceName] = data[resourceName].filter((item) => item.id !== id);
38
+ function deleteById(resource, id) {
39
+ createResourceArrayIfNecessary(resource);
40
+ data[resource] = data[resource].filter((item) => item.id !== id);
41
41
  return new Promise((resolve) => {
42
42
  resolve();
43
43
  });
44
44
  }
45
- function deleteAll(resourceName) {
46
- createResourceArrayIfNecessary(resourceName);
47
- data[resourceName] = [];
45
+ function deleteAll(resource) {
46
+ createResourceArrayIfNecessary(resource);
47
+ data[resource] = [];
48
48
  return new Promise((resolve) => {
49
49
  resolve([]);
50
50
  });
51
51
  }
52
- function createResourceArrayIfNecessary(resourceName) {
53
- if (!data.hasOwnProperty(resourceName))
54
- data[resourceName] = [];
52
+ function createResourceArrayIfNecessary(resource) {
53
+ if (!data.hasOwnProperty(resource))
54
+ data[resource] = [];
55
55
  }
56
56
  exports.default = {
57
57
  connectToDatabase,
@@ -1 +1 @@
1
- {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../src/queries/in-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"in-memory.js","sourceRoot":"","sources":["../../src/queries/in-memory.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,11 @@ export default function createMongoQueries(connectionString: any): {
9
9
  deleteAll: typeof deleteAll;
10
10
  };
11
11
  declare function connectToDatabase(): Promise<void>;
12
- declare function getAll(resourceName: any): Promise<any>;
13
- declare function getById(resourceName: any, id: any): Promise<any>;
14
- declare function create(resourceName: any, item: any): Promise<any>;
15
- declare function update(resourceName: any, item: any): Promise<any>;
16
- declare function replace(resourceName: any, item: any): Promise<any>;
17
- declare function deleteById(resourceName: any, id: any): Promise<void>;
18
- declare function deleteAll(resourceName: any): Promise<void>;
12
+ declare function getAll(resource: any): Promise<any>;
13
+ declare function getById(resource: any, id: any): Promise<any>;
14
+ declare function create(resource: any, item: any): Promise<any>;
15
+ declare function update(resource: any, item: any): Promise<any>;
16
+ declare function replace(resource: any, item: any): Promise<any>;
17
+ declare function deleteById(resource: any, id: any): Promise<void>;
18
+ declare function deleteAll(resource: any): Promise<void>;
19
19
  export {};
package/queries/mongo.js CHANGED
@@ -41,61 +41,61 @@ function connectToDatabase() {
41
41
  }
42
42
  });
43
43
  }
44
- function getAll(resourceName) {
44
+ function getAll(resource) {
45
45
  return __awaiter(this, void 0, void 0, function* () {
46
46
  yield connectToDatabase();
47
- const items = yield db[resourceName].find({});
47
+ const items = yield db[resource].find({});
48
48
  if (!items)
49
49
  return [];
50
50
  return items.map((item) => removeUnderscoreFromId(item));
51
51
  });
52
52
  }
53
- function getById(resourceName, id) {
53
+ function getById(resource, id) {
54
54
  return __awaiter(this, void 0, void 0, function* () {
55
55
  yield connectToDatabase();
56
- const item = yield db[resourceName].findOne({ _id: id });
56
+ const item = yield db[resource].findOne({ _id: id });
57
57
  if (!item)
58
58
  return null;
59
59
  return removeUnderscoreFromId(item);
60
60
  });
61
61
  }
62
- function create(resourceName, item) {
62
+ function create(resource, item) {
63
63
  return __awaiter(this, void 0, void 0, function* () {
64
64
  yield connectToDatabase();
65
- const createdItem = yield db[resourceName].insertOne(item);
65
+ const createdItem = yield db[resource].insertOne(item);
66
66
  return removeUnderscoreFromId(createdItem.ops[0]);
67
67
  });
68
68
  }
69
- function update(resourceName, item) {
69
+ function update(resource, item) {
70
70
  return __awaiter(this, void 0, void 0, function* () {
71
71
  yield connectToDatabase();
72
72
  const id = item.id;
73
73
  delete item.id;
74
- const updatedItem = yield db[resourceName].findOneAndUpdate({ _id: id }, { $set: item }, { returnOriginal: false });
74
+ const updatedItem = yield db[resource].findOneAndUpdate({ _id: id }, { $set: item }, { returnOriginal: false });
75
75
  return removeUnderscoreFromId(updatedItem.value);
76
76
  });
77
77
  }
78
- function replace(resourceName, item) {
78
+ function replace(resource, item) {
79
79
  return __awaiter(this, void 0, void 0, function* () {
80
80
  yield connectToDatabase();
81
81
  const id = item.id;
82
82
  delete item.id;
83
- const replacedItem = yield db[resourceName].findOneAndReplace({ _id: id }, item, {
83
+ const replacedItem = yield db[resource].findOneAndReplace({ _id: id }, item, {
84
84
  returnOriginal: false,
85
85
  });
86
86
  return removeUnderscoreFromId(replacedItem.value);
87
87
  });
88
88
  }
89
- function deleteById(resourceName, id) {
89
+ function deleteById(resource, id) {
90
90
  return __awaiter(this, void 0, void 0, function* () {
91
91
  yield connectToDatabase();
92
- yield db[resourceName].deleteOne({ _id: id });
92
+ yield db[resource].deleteOne({ _id: id });
93
93
  });
94
94
  }
95
- function deleteAll(resourceName) {
95
+ function deleteAll(resource) {
96
96
  return __awaiter(this, void 0, void 0, function* () {
97
97
  yield connectToDatabase();
98
- yield db[resourceName].deleteMany({});
98
+ yield db[resource].deleteMany({});
99
99
  });
100
100
  }
101
101
  function removeUnderscoreFromId(item) {
@@ -1 +1 @@
1
- {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/queries/mongo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongo.js","sourceRoot":"","sources":["../../src/queries/mongo.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  declare function createQueries(connectionString: any): {
2
2
  connectToDatabase: () => Promise<void>;
3
- getAll: (resourceName: any) => Promise<any>;
4
- getById: (resourceName: any, id: any) => Promise<any>;
5
- create: (resourceName: any, item: any) => Promise<any>;
6
- update: (resourceName: any, item: any) => Promise<any>;
7
- replace: (resourceName: any, item: any) => Promise<any>;
8
- deleteById: (resourceName: any, id: any) => Promise<void>;
9
- deleteAll: (resourceName: any) => Promise<void>;
3
+ getAll: (resource: any) => Promise<any>;
4
+ getById: (resource: any, id: any) => Promise<any>;
5
+ create: (resource: any, item: any) => Promise<any>;
6
+ update: (resource: any, item: any) => Promise<any>;
7
+ replace: (resource: any, item: any) => Promise<any>;
8
+ deleteById: (resource: any, id: any) => Promise<void>;
9
+ deleteAll: (resource: any) => Promise<void>;
10
10
  } | {
11
11
  connectToDatabase: () => void;
12
- getAll: (resourceName: any) => Promise<unknown>;
13
- getById: (resourceName: any, id: any) => Promise<unknown>;
14
- create: (resourceName: any, item: any) => Promise<unknown>;
15
- update: (resourceName: any, item: any) => Promise<unknown>;
16
- replace: (resourceName: any, item: any) => Promise<unknown>;
17
- deleteById: (resourceName: any, id: any) => Promise<void>;
18
- deleteAll: (resourceName: any) => Promise<unknown>;
12
+ getAll: (resource: any) => Promise<unknown>;
13
+ getById: (resource: any, id: any) => Promise<unknown>;
14
+ create: (resource: any, item: any) => Promise<unknown>;
15
+ update: (resource: any, item: any) => Promise<unknown>;
16
+ replace: (resource: any, item: any) => Promise<unknown>;
17
+ deleteById: (resource: any, id: any) => Promise<void>;
18
+ deleteAll: (resource: any) => Promise<unknown>;
19
19
  };
20
20
  export { createQueries };
package/routes/delete.js CHANGED
@@ -14,15 +14,15 @@ function createDeleteRoutes(queries) {
14
14
  function handleDelete(req, res) {
15
15
  return __awaiter(this, void 0, void 0, function* () {
16
16
  try {
17
- const { resourceName, id } = req.requestInfo;
17
+ const { resource, id } = req.requestInfo;
18
18
  if (id) {
19
- const item = yield queries.getById(resourceName, id);
19
+ const item = yield queries.getById(resource, id);
20
20
  if (item) {
21
- yield queries.deleteById(resourceName, id);
21
+ yield queries.deleteById(resource, id);
22
22
  }
23
23
  }
24
24
  else {
25
- yield queries.deleteAll(resourceName);
25
+ yield queries.deleteAll(resource);
26
26
  }
27
27
  }
28
28
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/routes/delete.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAS,kBAAkB,CAAC,OAAO;IACjC,SAAe,YAAY,CAAC,GAAG,EAAE,GAAG;;YAClC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;oBACpD,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;qBAC3C;iBACF;qBAAM;oBACL,MAAM,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;iBACtC;aACF;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;KAAA;IAED,OAAO;QACL,YAAY;KACb,CAAA;AACH,CAAC;AAEQ,gDAAkB"}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/routes/delete.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAS,kBAAkB,CAAC,OAAO;IACjC,SAAe,YAAY,CAAC,GAAG,EAAE,GAAG;;YAClC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAChD,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;qBACvC;iBACF;qBAAM;oBACL,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;iBAClC;aACF;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;KAAA;IAED,OAAO;QACL,YAAY;KACb,CAAA;AACH,CAAC;AAEQ,gDAAkB"}
package/routes/get.js CHANGED
@@ -15,10 +15,10 @@ function createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnN
15
15
  function handleGetResource(req, res) {
16
16
  return __awaiter(this, void 0, void 0, function* () {
17
17
  try {
18
- const { resourceName, id } = req.requestInfo;
18
+ const { resource, id } = req.requestInfo;
19
19
  res.set('Cache-control', cacheControl);
20
20
  if (id) {
21
- const item = yield queries.getById(resourceName, id);
21
+ const item = yield queries.getById(resource, id);
22
22
  if (!item) {
23
23
  res.status(404);
24
24
  return res.send();
@@ -26,7 +26,7 @@ function createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnN
26
26
  let theItem = item;
27
27
  if (responseBodyInterceptor) {
28
28
  try {
29
- theItem = responseBodyInterceptor({ resourceName, responseBody: item, id });
29
+ theItem = responseBodyInterceptor({ resource, body: item, id });
30
30
  if (!theItem)
31
31
  theItem = item;
32
32
  }
@@ -40,11 +40,11 @@ function createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnN
40
40
  res.json(returnNullFields ? theItem : (0, utils_1.removeNullFields)(theItem));
41
41
  return res.send();
42
42
  }
43
- const items = yield queries.getAll(resourceName);
43
+ const items = yield queries.getAll(resource);
44
44
  let theItems = items;
45
45
  if (responseBodyInterceptor) {
46
46
  try {
47
- theItems = responseBodyInterceptor({ resourceName, responseBody: items });
47
+ theItems = responseBodyInterceptor({ resource, body: items });
48
48
  if (!theItems)
49
49
  theItems = items;
50
50
  }
package/routes/get.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/routes/get.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB;IACvF,SAAe,iBAAiB,CAAC,GAAG,EAAE,GAAG;;YACvC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;gBAEtC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;oBAEpD,IAAI,CAAC,IAAI,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBACf,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;qBAClB;oBAED,IAAI,OAAO,GAAG,IAAI,CAAA;oBAClB,IAAI,uBAAuB,EAAE;wBAC3B,IAAI;4BACF,OAAO,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;4BAC3E,IAAI,CAAC,OAAO;gCAAE,OAAO,GAAG,IAAI,CAAA;yBAC7B;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gCAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;6BAC9D,CAAC,CAAA;yBACH;qBACF;oBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;oBAChE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;iBAClB;gBAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;gBAEhD,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,IAAI,uBAAuB,EAAE;oBAC3B,IAAI;wBACF,QAAQ,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAA;wBACzE,IAAI,CAAC,QAAQ;4BAAE,QAAQ,GAAG,KAAK,CAAA;qBAChC;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;yBAC9D,CAAC,CAAA;qBACH;iBACF;gBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;aAClB;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,iBAAiB;KAClB,CAAA;AACH,CAAC;AAEQ,0CAAe"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/routes/get.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB;IACvF,SAAe,iBAAiB,CAAC,GAAG,EAAE,GAAG;;YACvC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;gBAEtC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAEhD,IAAI,CAAC,IAAI,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBACf,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;qBAClB;oBAED,IAAI,OAAO,GAAG,IAAI,CAAA;oBAClB,IAAI,uBAAuB,EAAE;wBAC3B,IAAI;4BACF,OAAO,GAAG,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;4BAC/D,IAAI,CAAC,OAAO;gCAAE,OAAO,GAAG,IAAI,CAAA;yBAC7B;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gCAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;6BAC9D,CAAC,CAAA;yBACH;qBACF;oBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;oBAChE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;iBAClB;gBAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAE5C,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,IAAI,uBAAuB,EAAE;oBAC3B,IAAI;wBACF,QAAQ,GAAG,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;wBAC7D,IAAI,CAAC,QAAQ;4BAAE,QAAQ,GAAG,KAAK,CAAA;qBAChC;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;yBAC9D,CAAC,CAAA;qBACH;iBACF;gBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;aAClB;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,iBAAiB;KAClB,CAAA;AACH,CAAC;AAEQ,0CAAe"}
@@ -2,18 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.interceptRequestBody = void 0;
4
4
  function interceptRequestBody(intercept, req) {
5
- const { resourceName } = req.requestInfo;
6
- let requestBody = req.body;
7
- const validationResult = intercept({ resourceName, requestBody });
8
- if (!validationResult && typeof requestBody === 'object')
9
- return requestBody;
5
+ const { resource } = req.requestInfo;
6
+ let body = req.body;
7
+ const validationResult = intercept({ resource, body });
8
+ if (!validationResult && typeof body === 'object')
9
+ return body;
10
10
  if (typeof validationResult === 'string')
11
11
  return validationResult;
12
- // The requestBody was replaced by something else.
12
+ // The request body was replaced by something else.
13
13
  if (validationResult)
14
- requestBody = validationResult;
15
- if (typeof requestBody === 'object') {
16
- return requestBody;
14
+ body = validationResult;
15
+ if (typeof body === 'object') {
16
+ return body;
17
17
  }
18
18
  else
19
19
  return req.body;
@@ -1 +1 @@
1
- {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../../src/routes/interceptors.ts"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,SAAyC,EAAE,GAAG;IAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;IACxC,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAA;IAE1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IAEjE,IAAI,CAAC,gBAAgB,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAA;IAE5E,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAA;IAEjE,kDAAkD;IAClD,IAAI,gBAAgB;QAAE,WAAW,GAAG,gBAAgB,CAAA;IAEpD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACnC,OAAO,WAAW,CAAA;KACnB;;QAAM,OAAO,GAAG,CAAC,IAAI,CAAA;AACxB,CAAC;AAEQ,oDAAoB"}
1
+ {"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../../src/routes/interceptors.ts"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,SAAyC,EAAE,GAAG;IAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;IACpC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IAEnB,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE9D,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAA;IAEjE,mDAAmD;IACnD,IAAI,gBAAgB;QAAE,IAAI,GAAG,gBAAgB,CAAA;IAE7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAA;KACZ;;QAAM,OAAO,GAAG,CAAC,IAAI,CAAA;AACxB,CAAC;AAEQ,oDAAoB"}
package/routes/patch.js CHANGED
@@ -16,19 +16,19 @@ function createPatchRoutes(queries, requestBodyInterceptor, returnNullFields) {
16
16
  function handlePatch(req, res) {
17
17
  return __awaiter(this, void 0, void 0, function* () {
18
18
  try {
19
- const { resourceName, id } = req.requestInfo;
20
- const requestBody = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.patch, req);
21
- if (typeof requestBody === 'string')
22
- return res.status(400).json({ message: requestBody }).send();
19
+ const { resource, id } = req.requestInfo;
20
+ const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.patch, req);
21
+ if (typeof body === 'string')
22
+ return res.status(400).json({ message: body }).send();
23
23
  let item = null;
24
24
  if (id)
25
- item = yield queries.getById(resourceName, id);
25
+ item = yield queries.getById(resource, id);
26
26
  if (!item)
27
27
  return res.status(404).json({
28
28
  message: `ID '${id}' not found`,
29
29
  });
30
- item = Object.assign(Object.assign(Object.assign({}, item), requestBody), { id });
31
- const updatedItem = yield queries.update(resourceName, item);
30
+ item = Object.assign(Object.assign(Object.assign({}, item), body), { id });
31
+ const updatedItem = yield queries.update(resource, item);
32
32
  return res
33
33
  .status(200)
34
34
  .json(returnNullFields ? updatedItem : (0, utils_1.removeNullFields)(updatedItem))
@@ -1 +1 @@
1
- {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/routes/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IAC1E,SAAe,WAAW,CAAC,GAAG,EAAE,GAAG;;YACjC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,MAAM,WAAW,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAE3E,IAAI,OAAO,WAAW,KAAK,QAAQ;oBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAE9D,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;gBAEtD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,iDAAQ,IAAI,GAAK,WAAW,KAAE,EAAE,GAAE,CAAA;gBAEtC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAE5D,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;qBACpE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAEQ,8CAAiB"}
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/routes/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IAC1E,SAAe,WAAW,CAAC,GAAG,EAAE,GAAG;;YACjC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAEpE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,iDAAQ,IAAI,GAAK,IAAI,KAAE,EAAE,GAAE,CAAA;gBAE/B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAExD,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;qBACpE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAEQ,8CAAiB"}
package/routes/post.js CHANGED
@@ -17,17 +17,17 @@ function createPostRoutes(queries, requestBodyInterceptor, returnNullFields) {
17
17
  function handlePost(req, res) {
18
18
  return __awaiter(this, void 0, void 0, function* () {
19
19
  try {
20
- const { resourceName } = req.requestInfo;
21
- const requestBody = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.post, req);
22
- if (typeof requestBody === 'string')
23
- return res.status(400).json({ message: requestBody }).send();
24
- const newItem = yield queries.create(resourceName, requestBody);
20
+ const { resource } = req.requestInfo;
21
+ const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.post, req);
22
+ if (typeof body === 'string')
23
+ return res.status(400).json({ message: body }).send();
24
+ const newItem = yield queries.create(resource, body);
25
25
  return res
26
26
  .set({
27
27
  Location: (0, url_1.format)({
28
28
  protocol: req.protocol,
29
29
  host: req.get('host'),
30
- pathname: `${resourceName}/${newItem.id}`,
30
+ pathname: `${resource}/${newItem.id}`,
31
31
  }),
32
32
  })
33
33
  .status(201)
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/routes/post.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA4B;AAC5B,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACzE,SAAe,UAAU,CAAC,GAAG,EAAE,GAAG;;YAChC,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,WAAW,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAE1E,IAAI,OAAO,WAAW,KAAK,QAAQ;oBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAE9D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAAA;gBAE/D,OAAO,GAAG;qBACP,GAAG,CAAC;oBACH,QAAQ,EAAE,IAAA,YAAM,EAAC;wBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACrB,QAAQ,EAAE,GAAG,YAAY,IAAI,OAAO,CAAC,EAAE,EAAE;qBAC1C,CAAC;iBACH,CAAC;qBACD,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC;qBAC5D,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,UAAU;KACX,CAAA;AACH,CAAC;AAEQ,4CAAgB"}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/routes/post.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA4B;AAC5B,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACzE,SAAe,UAAU,CAAC,GAAG,EAAE,GAAG;;YAChC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAEpC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAEnE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAEpD,OAAO,GAAG;qBACP,GAAG,CAAC;oBACH,QAAQ,EAAE,IAAA,YAAM,EAAC;wBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACrB,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;qBACtC,CAAC;iBACH,CAAC;qBACD,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC;qBAC5D,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,UAAU;KACX,CAAA;AACH,CAAC;AAEQ,4CAAgB"}
package/routes/put.js CHANGED
@@ -16,19 +16,19 @@ function createPutRoutes(queries, requestBodyInterceptor, returnNullFields) {
16
16
  function handlePut(req, res) {
17
17
  return __awaiter(this, void 0, void 0, function* () {
18
18
  try {
19
- const { resourceName, id } = req.requestInfo;
20
- const requestBody = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.put, req);
21
- if (typeof requestBody === 'string')
22
- return res.status(400).json({ message: requestBody }).send();
19
+ const { resource, id } = req.requestInfo;
20
+ const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.put, req);
21
+ if (typeof body === 'string')
22
+ return res.status(400).json({ message: body }).send();
23
23
  let item = null;
24
24
  if (id)
25
- item = yield queries.getById(resourceName, id);
25
+ item = yield queries.getById(resource, id);
26
26
  if (!item)
27
27
  return res.status(404).json({
28
28
  message: `ID '${id}' not found`,
29
29
  });
30
- item = Object.assign(Object.assign({}, requestBody), { id });
31
- const replacedItem = yield queries.replace(resourceName, item);
30
+ item = Object.assign(Object.assign({}, body), { id });
31
+ const replacedItem = yield queries.replace(resource, item);
32
32
  return res
33
33
  .status(200)
34
34
  .json(returnNullFields ? replacedItem : (0, utils_1.removeNullFields)(replacedItem))
package/routes/put.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACxE,SAAe,SAAS,CAAC,GAAG,EAAE,GAAG;;YAC/B,IAAI;gBACF,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAE5C,MAAM,WAAW,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBAEzE,IAAI,OAAO,WAAW,KAAK,QAAQ;oBACjC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAE9D,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;gBAEtD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,mCAAQ,WAAW,KAAE,EAAE,GAAE,CAAA;gBAE7B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;gBAE9D,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,YAAY,CAAC,CAAC;qBACtE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAEQ,0CAAe"}
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACxE,SAAe,SAAS,CAAC,GAAG,EAAE,GAAG;;YAC/B,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBAElE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,mCAAQ,IAAI,KAAE,EAAE,GAAE,CAAA;gBAEtB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAE1D,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,YAAY,CAAC,CAAC;qBACtE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAEQ,0CAAe"}
package/routes/routes.js CHANGED
@@ -21,13 +21,13 @@ const delete_1 = require("./delete");
21
21
  const urlMiddleware_1 = require("../urls/urlMiddleware");
22
22
  const express_1 = __importDefault(require("express"));
23
23
  function createResourceRouter(queries, routerConfig) {
24
- const { validateResources, resourceNames, apiPrefix, cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields, } = routerConfig;
24
+ const { validateResources, resources, apiPrefix, cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields, } = routerConfig;
25
25
  const { handleGetResource } = (0, get_1.createGetRoutes)(queries, cacheControl, responseBodyInterceptor, returnNullFields);
26
26
  const { handlePost } = (0, post_1.createPostRoutes)(queries, requestBodyInterceptor, returnNullFields);
27
27
  const { handlePut } = (0, put_1.createPutRoutes)(queries, requestBodyInterceptor, returnNullFields);
28
28
  const { handlePatch } = (0, patch_1.createPatchRoutes)(queries, requestBodyInterceptor, returnNullFields);
29
29
  const { handleDelete } = (0, delete_1.createDeleteRoutes)(queries);
30
- const validateResource = (0, urlMiddleware_1.createValidateResourceMiddleware)(validateResources, resourceNames);
30
+ const validateResource = (0, urlMiddleware_1.createValidateResourceMiddleware)(validateResources, resources);
31
31
  const getResourceAndId = (0, urlMiddleware_1.createResourceAndIdParser)(apiPrefix);
32
32
  const resourceRouter = express_1.default.Router();
33
33
  resourceRouter
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,iCAAyC;AACzC,+BAAuC;AACvC,mCAA2C;AAC3C,qCAA6C;AAC7C,yDAAmG;AAEnG,sDAA6B;AAG7B,SAAS,oBAAoB,CAAC,OAAO,EAAE,YAA0B;IAC/D,MAAM,EACJ,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACjB,GAAG,YAAY,CAAA;IAEhB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,qBAAe,EAC3C,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAgB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC1F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAe,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IACxF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC5F,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,gBAAgB,GAAG,IAAA,gDAAgC,EAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IAC3F,MAAM,gBAAgB,GAAG,IAAA,yCAAyB,EAAC,SAAS,CAAC,CAAA;IAE7D,MAAM,cAAc,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;IAEvC,cAAc;QACZ,6GAA6G;SAC5G,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;SAC/D,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;SACzD,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC;SACvD,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,CAAC;SAC3D,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAEhE,OAAO,cAAc,CAAA;AACvB,CAAC;AAqBQ,oDAAoB;AAnB7B,iDAAiD;AACjD,MAAM,UAAU,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAkBJ,gCAAU;AAjBzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAO,CAAC,EAAE,GAAG,EAAE,EAAE;IACnC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC,CAAA,CAAC,CAAA;AAEF,sDAAsD;AACtD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;AAE3C,0CAA0C;AAC1C,SAAS,sBAAsB,CAAC,CAAC,EAAE,GAAG;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACzD,CAAC;AAO0C,wDAAsB;AALjE,gCAAgC;AAChC,SAAS,cAAc,CAAC,CAAC,EAAE,GAAG;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAEkE,wCAAc"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,iCAAyC;AACzC,+BAAuC;AACvC,mCAA2C;AAC3C,qCAA6C;AAC7C,yDAAmG;AAEnG,sDAA6B;AAG7B,SAAS,oBAAoB,CAAC,OAAO,EAAE,YAA0B;IAC/D,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACjB,GAAG,YAAY,CAAA;IAEhB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,qBAAe,EAC3C,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAgB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC1F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAe,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IACxF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC5F,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,gBAAgB,GAAG,IAAA,gDAAgC,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IACvF,MAAM,gBAAgB,GAAG,IAAA,yCAAyB,EAAC,SAAS,CAAC,CAAA;IAE7D,MAAM,cAAc,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;IAEvC,cAAc;QACZ,6GAA6G;SAC5G,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;SAC/D,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;SACzD,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC;SACvD,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,CAAC;SAC3D,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAEhE,OAAO,cAAc,CAAA;AACvB,CAAC;AAqBQ,oDAAoB;AAnB7B,iDAAiD;AACjD,MAAM,UAAU,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAkBJ,gCAAU;AAjBzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAO,CAAC,EAAE,GAAG,EAAE,EAAE;IACnC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC,CAAA,CAAC,CAAA;AAEF,sDAAsD;AACtD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;AAE3C,0CAA0C;AAC1C,SAAS,sBAAsB,CAAC,CAAC,EAAE,GAAG;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACzD,CAAC;AAO0C,wDAAsB;AALjE,gCAAgC;AAChC,SAAS,cAAc,CAAC,CAAC,EAAE,GAAG;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAEkE,wCAAc"}
package/routes/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  type RequestInfo = {
2
- resourceName: string;
3
- requestBody: unknown;
2
+ resource: string;
3
+ body: unknown;
4
4
  };
5
5
  export type RequestBodyInterceptorCallback = (info: RequestInfo) => void | string | object;
6
6
  export type RequestBodyInterceptor = {
@@ -9,8 +9,8 @@ export type RequestBodyInterceptor = {
9
9
  put?: RequestBodyInterceptorCallback;
10
10
  };
11
11
  type ResponseInfo = {
12
- resourceName: string;
13
- responseBody: unknown;
12
+ resource: string;
13
+ body: unknown;
14
14
  id?: string;
15
15
  };
16
16
  export type ResponseBodyInterceptor = (info: ResponseInfo) => unknown;
@@ -1,3 +1,3 @@
1
1
  declare function createResourceAndIdParser(apiPrefix: any): (req: any, _: any, next: any) => any;
2
- declare function createValidateResourceMiddleware(validateResources: any, resourceNames: any): (req: any, res: any, next: any) => any;
2
+ declare function createValidateResourceMiddleware(validateResources: any, resources: any): (req: any, res: any, next: any) => any;
3
3
  export { createResourceAndIdParser, createValidateResourceMiddleware };
@@ -11,16 +11,16 @@ function createResourceAndIdParser(apiPrefix) {
11
11
  };
12
12
  }
13
13
  exports.createResourceAndIdParser = createResourceAndIdParser;
14
- function createValidateResourceMiddleware(validateResources, resourceNames) {
14
+ function createValidateResourceMiddleware(validateResources, resources) {
15
15
  return function validateResource(req, res, next) {
16
16
  if (!validateResources)
17
17
  return next();
18
- const { resourceName } = req.requestInfo;
19
- if (!resourceName)
18
+ const { resource } = req.requestInfo;
19
+ if (!resource)
20
20
  return next();
21
- if (!resourceNames.includes(resourceName.toLowerCase())) {
21
+ if (!resources.includes(resource.toLowerCase())) {
22
22
  return res.status(404).json({
23
- message: `'${resourceName}' is an unknown resource`,
23
+ message: `'${resource}' is an unknown resource`,
24
24
  });
25
25
  }
26
26
  return next();
@@ -1 +1 @@
1
- {"version":3,"file":"urlMiddleware.js","sourceRoot":"","sources":["../../src/urls/urlMiddleware.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEtC,SAAS,yBAAyB,CAAC,SAAS;IAC1C,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;QAE7B,GAAG,CAAC,WAAW,mCAAQ,GAAG,CAAC,WAAW,GAAK,OAAO,CAAE,CAAA;QAEpD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAoBQ,8DAAyB;AAlBlC,SAAS,gCAAgC,CAAC,iBAAiB,EAAE,aAAa;IACxE,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC7C,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,EAAE,CAAA;QAErC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;QAExC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,EAAE,CAAA;QAEhC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE;YACvD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,IAAI,YAAY,0BAA0B;aACpD,CAAC,CAAA;SACH;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAEmC,4EAAgC"}
1
+ {"version":3,"file":"urlMiddleware.js","sourceRoot":"","sources":["../../src/urls/urlMiddleware.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEtC,SAAS,yBAAyB,CAAC,SAAS;IAC1C,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;QAE7B,GAAG,CAAC,WAAW,mCAAQ,GAAG,CAAC,WAAW,GAAK,OAAO,CAAE,CAAA;QAEpD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAoBQ,8DAAyB;AAlBlC,SAAS,gCAAgC,CAAC,iBAAiB,EAAE,SAAS;IACpE,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC7C,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,EAAE,CAAA;QAErC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;QAEpC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,EAAE,CAAA;QAE5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,IAAI,QAAQ,0BAA0B;aAChD,CAAC,CAAA;SACH;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAEmC,4EAAgC"}
@@ -1,5 +1,5 @@
1
1
  declare function parseUrl(url: any): {
2
- resourceName: any;
2
+ resource: any;
3
3
  id: any;
4
4
  };
5
5
  export { parseUrl };
package/urls/urlParser.js CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseUrl = void 0;
4
4
  function parseUrl(url) {
5
5
  if (!url || (url && !url.trim()))
6
- return { resourceName: null, id: null };
6
+ return { resource: null, id: null };
7
7
  const urlSegments = url.split('/').filter((i) => i);
8
- const resourceName = urlSegments.length > 0 ? urlSegments[0] : null;
8
+ const resource = urlSegments.length > 0 ? urlSegments[0] : null;
9
9
  const id = urlSegments.length > 1 ? urlSegments[1] : null;
10
- return { resourceName, id };
10
+ return { resource, id };
11
11
  }
12
12
  exports.parseUrl = parseUrl;
13
13
  //# sourceMappingURL=urlParser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../src/urls/urlParser.ts"],"names":[],"mappings":";;;AAAA,SAAS,QAAQ,CAAC,GAAG;IACnB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAEzE,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACnE,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzD,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,CAAA;AAC7B,CAAC;AAEQ,4BAAQ"}
1
+ {"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../src/urls/urlParser.ts"],"names":[],"mappings":";;;AAAA,SAAS,QAAQ,CAAC,GAAG;IACnB,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,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/D,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACzB,CAAC;AAEQ,4BAAQ"}