temba 0.22.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/index.d.ts +1 -1
- package/index.js +5 -5
- package/package.json +3 -2
- package/queries/in-memory.d.ts +1 -1
- package/queries/mongo.d.ts +1 -1
- package/queries/queries.d.ts +1 -1
- package/queries/queries.js +2 -2
- package/requestBodyInterceptor/interceptRequestBody.d.ts +1 -1
- package/requestHandlers/delete.d.ts +2 -2
- package/requestHandlers/get.d.ts +3 -3
- package/requestHandlers/get.js +2 -2
- package/requestHandlers/index.d.ts +8 -8
- package/requestHandlers/index.js +5 -5
- package/requestHandlers/patch.d.ts +4 -4
- package/requestHandlers/patch.js +3 -3
- package/requestHandlers/post.d.ts +4 -4
- package/requestHandlers/post.js +3 -3
- package/requestHandlers/put.d.ts +4 -4
- package/requestHandlers/put.js +3 -3
- package/resourceRouter.d.ts +3 -3
- package/resourceRouter.js +2 -2
- package/responseBodyInterceptor/interceptResponseBody.d.ts +1 -1
- package/responseBodyInterceptor/types.d.ts +1 -1
- package/schema/compile.d.ts +1 -1
- package/schema/validate.d.ts +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/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import express, { json } from 'express';
|
|
2
2
|
import morgan from 'morgan';
|
|
3
|
-
import { createQueries } from './queries/queries';
|
|
4
|
-
import { initConfig } from './config';
|
|
3
|
+
import { createQueries } from './queries/queries.js';
|
|
4
|
+
import { initConfig } from './config/index.js';
|
|
5
5
|
import cors from 'cors';
|
|
6
|
-
import { createDelayMiddleware } from './delay/delayMiddleware';
|
|
7
|
-
import { compileSchemas } from './schema/compile';
|
|
8
|
-
import { createResourceRouter } from './resourceRouter';
|
|
6
|
+
import { createDelayMiddleware } from './delay/delayMiddleware.js';
|
|
7
|
+
import { compileSchemas } from './schema/compile.js';
|
|
8
|
+
import { createResourceRouter } from './resourceRouter.js';
|
|
9
9
|
const createServer = (userConfig) => {
|
|
10
10
|
const config = initConfig(userConfig);
|
|
11
11
|
const queries = createQueries(config.connectionString);
|
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/mongo.d.ts
CHANGED
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,5 +1,5 @@
|
|
|
1
|
-
import { inMemoryQueries } from './in-memory';
|
|
2
|
-
import { createMongoQueries } from './mongo';
|
|
1
|
+
import { inMemoryQueries } from './in-memory.js';
|
|
2
|
+
import { createMongoQueries } from './mongo.js';
|
|
3
3
|
export const createQueries = (connectionString) => {
|
|
4
4
|
if (!connectionString) {
|
|
5
5
|
return inMemoryQueries;
|
|
@@ -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,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;
|
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,5 +1,5 @@
|
|
|
1
|
-
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody';
|
|
2
|
-
import { removeNullFields } from './utils';
|
|
1
|
+
import { interceptResponseBody } from '../responseBodyInterceptor/interceptResponseBody.js';
|
|
2
|
+
import { removeNullFields } from './utils.js';
|
|
3
3
|
export const createGetRoutes = (queries, cacheControl, responseBodyInterceptor, returnNullFields) => {
|
|
4
4
|
const defaultResponse = { headers: { 'Cache-control': cacheControl } };
|
|
5
5
|
const responseOk = (body) => ({ ...defaultResponse, status: 200, body });
|
|
@@ -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,8 +1,8 @@
|
|
|
1
|
-
import { createGetRoutes } from './get';
|
|
2
|
-
import { createPostRoutes } from './post';
|
|
3
|
-
import { createPutRoutes } from './put';
|
|
4
|
-
import { createPatchRoutes } from './patch';
|
|
5
|
-
import { createDeleteRoutes } from './delete';
|
|
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
6
|
export const getRequestHandler = (queries, schemas, routerConfig) => {
|
|
7
7
|
const { cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields } = routerConfig;
|
|
8
8
|
const handleGet = createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnNullFields);
|
|
@@ -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,6 +1,6 @@
|
|
|
1
|
-
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
|
|
2
|
-
import { validate } from '../schema/validate';
|
|
3
|
-
import { removeNullFields } from './utils';
|
|
1
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
2
|
+
import { validate } from '../schema/validate.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
4
|
export const createPatchRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
5
5
|
const handlePatch = async (req) => {
|
|
6
6
|
try {
|
|
@@ -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,7 +1,7 @@
|
|
|
1
1
|
import { format } from 'url';
|
|
2
|
-
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
|
|
3
|
-
import { removeNullFields } from './utils';
|
|
4
|
-
import { validate } from '../schema/validate';
|
|
2
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
|
+
import { validate } from '../schema/validate.js';
|
|
5
5
|
export const createPostRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
6
6
|
const handlePost = async (req) => {
|
|
7
7
|
try {
|
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,6 +1,6 @@
|
|
|
1
|
-
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody';
|
|
2
|
-
import { validate } from '../schema/validate';
|
|
3
|
-
import { removeNullFields } from './utils';
|
|
1
|
+
import { interceptRequestBody } from '../requestBodyInterceptor/interceptRequestBody.js';
|
|
2
|
+
import { validate } from '../schema/validate.js';
|
|
3
|
+
import { removeNullFields } from './utils.js';
|
|
4
4
|
export const createPutRoutes = (queries, requestBodyInterceptor, returnNullFields, schemas) => {
|
|
5
5
|
const handlePut = async (req) => {
|
|
6
6
|
try {
|
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,6 +1,6 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
|
-
import { getRequestHandler } from './requestHandlers';
|
|
3
|
-
import { parseUrl } from './urls/urlParser';
|
|
2
|
+
import { getRequestHandler } from './requestHandlers/index.js';
|
|
3
|
+
import { parseUrl } from './urls/urlParser.js';
|
|
4
4
|
export const createResourceRouter = (queries, schemas, routerConfig) => {
|
|
5
5
|
const getUrlInfo = (baseUrl) => {
|
|
6
6
|
const url = routerConfig.apiPrefix ? baseUrl.replace(routerConfig.apiPrefix, '') : baseUrl;
|
|
@@ -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
|
package/schema/compile.d.ts
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
|