temba 0.12.1 → 0.12.3
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 +7 -3
- package/config/index.d.ts +3 -3
- package/index.js +5 -1
- package/index.js.map +1 -1
- package/package.json +17 -17
- package/queries/queries.d.ts +8 -0
- package/routes/types.d.ts +3 -3
package/README.md
CHANGED
|
@@ -28,9 +28,9 @@ This project is inspired by the fantastic [json-server](https://github.com/typic
|
|
|
28
28
|
|
|
29
29
|
## Temba?
|
|
30
30
|
|
|
31
|
-
> _"Temba, at
|
|
31
|
+
> _"Temba, at REST"_
|
|
32
32
|
|
|
33
|
-
A metaphor for the declining of a gift, from the [Star Trek - The Next Generation
|
|
33
|
+
A metaphor for the declining of a gift, from the [Star Trek - The Next Generation episode "Darmok"](https://memory-alpha.fandom.com/wiki/Temba).
|
|
34
34
|
|
|
35
35
|
In the fictional Tamarian language the word _"Temba"_ means something like _"gift"_.
|
|
36
36
|
|
|
@@ -49,9 +49,13 @@ Create your own Temba server with the following command and you are up and runni
|
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
npx create-temba-server my-rest-api
|
|
52
|
+
cd my-rest-api
|
|
53
|
+
npm start
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
This command clones the [Temba-starter](https://github.com/bouwe77/temba-starter) repository
|
|
56
|
+
This command clones the [Temba-starter](https://github.com/bouwe77/temba-starter) repository, installs all dependencies, and starts the server.
|
|
57
|
+
|
|
58
|
+
Once the server is running, you can issue any HTTP request, and it probably will just work, but [learn more here](#what-temba-does).
|
|
55
59
|
|
|
56
60
|
### Manually adding to an existing app
|
|
57
61
|
|
package/config/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { RequestBodyValidator, ResponseBodyInterceptor } from '../routes/types';
|
|
3
|
-
export
|
|
3
|
+
export type Config = {
|
|
4
4
|
validateResources: boolean;
|
|
5
5
|
resourceNames: string[];
|
|
6
6
|
apiPrefix: string;
|
|
@@ -12,8 +12,8 @@ export declare type Config = {
|
|
|
12
12
|
delay: number;
|
|
13
13
|
customRouter: Router;
|
|
14
14
|
};
|
|
15
|
-
export
|
|
16
|
-
export
|
|
15
|
+
export type RouterConfig = Pick<Config, 'validateResources' | 'resourceNames' | 'apiPrefix' | 'cacheControl' | 'requestBodyValidator' | 'responseBodyInterceptor'>;
|
|
16
|
+
export type UserConfig = {
|
|
17
17
|
resourceNames?: string[];
|
|
18
18
|
validateResources?: boolean;
|
|
19
19
|
staticFolder?: string;
|
package/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAuC;AACvC,oDAA2B;AAC3B,4CAA8C;AAC9C,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,oBAAoB;IACpB,GAAG,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAA;IAErB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAgB,MAAM,CAAC,UAAmB;IACxC,OAAO,YAAY,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC;AAFD,wBAEC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "temba",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.3",
|
|
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": {
|
|
@@ -18,27 +18,27 @@
|
|
|
18
18
|
"author": "Bouwe (https://bouwe.io)",
|
|
19
19
|
"license": "ISC",
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@types/cors": "^2.8.
|
|
22
|
-
"@types/express": "^4.17.
|
|
23
|
-
"@types/jest": "^
|
|
24
|
-
"@types/morgan": "^1.9.
|
|
25
|
-
"@types/supertest": "^2.0.
|
|
26
|
-
"@typescript-eslint/eslint-plugin": "^
|
|
27
|
-
"@typescript-eslint/parser": "^
|
|
28
|
-
"eslint": "^8.
|
|
29
|
-
"eslint-config-prettier": "^8.
|
|
30
|
-
"jest": "^
|
|
31
|
-
"jest-extended": "^0.
|
|
32
|
-
"prettier": "^
|
|
33
|
-
"supertest": "^6.
|
|
34
|
-
"ts-jest": "^
|
|
35
|
-
"typescript": "^
|
|
21
|
+
"@types/cors": "^2.8.13",
|
|
22
|
+
"@types/express": "^4.17.17",
|
|
23
|
+
"@types/jest": "^29.5.3",
|
|
24
|
+
"@types/morgan": "^1.9.4",
|
|
25
|
+
"@types/supertest": "^2.0.12",
|
|
26
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
27
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
28
|
+
"eslint": "^8.45.0",
|
|
29
|
+
"eslint-config-prettier": "^8.8.0",
|
|
30
|
+
"jest": "^29.6.1",
|
|
31
|
+
"jest-extended": "^4.0.0",
|
|
32
|
+
"prettier": "^3.0.0",
|
|
33
|
+
"supertest": "^6.3.3",
|
|
34
|
+
"ts-jest": "^29.1.1",
|
|
35
|
+
"typescript": "^5.1.6"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@rakered/mongo": "^1.6.0",
|
|
39
39
|
"connect-pause": "^0.1.0",
|
|
40
40
|
"cors": "^2.8.5",
|
|
41
|
-
"express": "^4.
|
|
41
|
+
"express": "^4.18.2",
|
|
42
42
|
"morgan": "^1.10.0"
|
|
43
43
|
}
|
|
44
44
|
}
|
package/queries/queries.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
declare function createQueries(connectionString: any): {
|
|
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
|
+
deleteById: (resourceName: any, id: any) => Promise<void>;
|
|
8
|
+
deleteAll: (resourceName: any) => Promise<void>;
|
|
9
|
+
} | {
|
|
2
10
|
connectToDatabase: () => void;
|
|
3
11
|
getAll: (resourceName: any) => Promise<unknown>;
|
|
4
12
|
getById: (resourceName: any, id: any) => Promise<unknown>;
|
package/routes/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export type ValidatorCallback = (resourceName: string, requestBody: unknown) => void | string | object;
|
|
2
|
+
export type RequestBodyValidator = {
|
|
3
3
|
post?: ValidatorCallback;
|
|
4
4
|
patch?: ValidatorCallback;
|
|
5
5
|
put?: ValidatorCallback;
|
|
6
6
|
};
|
|
7
|
-
export
|
|
7
|
+
export type ResponseBodyInterceptor = (resourceName: string, responseBody: unknown, id?: string) => unknown;
|