@visulima/crud 3.0.0-alpha.1 → 3.0.0-alpha.11
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/CHANGELOG.md +165 -0
- package/LICENSE.md +22 -1
- package/README.md +29 -18
- package/dist/adapter/prisma/index.d.cts +39 -0
- package/dist/adapter/prisma/index.d.mts +39 -0
- package/dist/adapter/prisma/index.d.ts +39 -0
- package/dist/adapter/prisma/types.d.cts +31 -0
- package/dist/adapter/prisma/types.d.mts +31 -0
- package/dist/adapter/prisma/types.d.ts +31 -0
- package/dist/adapter/prisma/utils/models-to-route-names.d.cts +5 -0
- package/dist/adapter/prisma/utils/models-to-route-names.d.mts +5 -0
- package/dist/adapter/prisma/utils/models-to-route-names.d.ts +5 -0
- package/dist/adapter/prisma/utils/parse-cursor.d.cts +3 -0
- package/dist/adapter/prisma/utils/parse-cursor.d.mts +3 -0
- package/dist/adapter/prisma/utils/parse-cursor.d.ts +3 -0
- package/dist/adapter/prisma/utils/parse-order-by.d.cts +4 -0
- package/dist/adapter/prisma/utils/parse-order-by.d.mts +4 -0
- package/dist/adapter/prisma/utils/parse-order-by.d.ts +4 -0
- package/dist/adapter/prisma/utils/parse-recursive.d.cts +4 -0
- package/dist/adapter/prisma/utils/parse-recursive.d.mts +4 -0
- package/dist/adapter/prisma/utils/parse-recursive.d.ts +4 -0
- package/dist/adapter/prisma/utils/parse-where.d.cts +4 -0
- package/dist/adapter/prisma/utils/parse-where.d.mts +4 -0
- package/dist/adapter/prisma/utils/parse-where.d.ts +4 -0
- package/dist/base-crud-handler.d.cts +9 -0
- package/dist/base-crud-handler.d.mts +9 -0
- package/dist/base-crud-handler.d.ts +9 -0
- package/dist/handler/create.d.cts +3 -0
- package/dist/handler/create.d.mts +3 -0
- package/dist/handler/create.d.ts +3 -0
- package/dist/handler/delete.d.cts +3 -0
- package/dist/handler/delete.d.mts +3 -0
- package/dist/handler/delete.d.ts +3 -0
- package/dist/handler/list.d.cts +3 -0
- package/dist/handler/list.d.mts +3 -0
- package/dist/handler/list.d.ts +3 -0
- package/dist/handler/read.d.cts +3 -0
- package/dist/handler/read.d.mts +3 -0
- package/dist/handler/read.d.ts +3 -0
- package/dist/handler/update.d.cts +3 -0
- package/dist/handler/update.d.mts +3 -0
- package/dist/handler/update.d.ts +3 -0
- package/dist/index.cjs +13 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.mts +6 -127
- package/dist/index.d.ts +6 -127
- package/dist/index.mjs +3 -1085
- package/dist/next/api/edge/index.d.cts +3 -0
- package/dist/next/api/edge/index.d.mts +3 -0
- package/dist/next/api/edge/index.d.ts +3 -0
- package/dist/next/api/node/index.d.cts +4 -0
- package/dist/next/api/node/index.d.mts +4 -0
- package/dist/next/api/node/index.d.ts +4 -0
- package/dist/next/index.cjs +11 -0
- package/dist/next/index.d.cts +2 -0
- package/dist/next/index.d.mts +2 -8
- package/dist/next/index.d.ts +2 -8
- package/dist/next/index.mjs +2 -4843
- package/dist/packem_shared/PrismaAdapter-Bd2bxZfN.mjs +318 -0
- package/dist/packem_shared/PrismaAdapter-BondygJ8.cjs +324 -0
- package/dist/packem_shared/RouteType-Bk3uAK0x.cjs +14 -0
- package/dist/packem_shared/RouteType-CB2xrWdf.mjs +10 -0
- package/dist/packem_shared/base-crud-handler-Cg8r7S9C.mjs +587 -0
- package/dist/packem_shared/base-crud-handler-DSlkMYL6.cjs +572 -0
- package/dist/packem_shared/edgeHandler-DFuv_tsd.cjs +18 -0
- package/dist/packem_shared/edgeHandler-l0sBgF0s.mjs +16 -0
- package/dist/packem_shared/get-accessible-routes-C6NF9Iry.cjs +16 -0
- package/dist/packem_shared/get-accessible-routes-sV5SDdFn.mjs +14 -0
- package/dist/packem_shared/models-to-route-names-CdwsK0V1.mjs +9 -0
- package/dist/packem_shared/models-to-route-names-Dv94PzhE.cjs +11 -0
- package/dist/{index.js → packem_shared/modelsToOpenApi-DypKlIy4.cjs} +67 -454
- package/dist/packem_shared/modelsToOpenApi-qs_cqTsd.mjs +706 -0
- package/dist/packem_shared/nodeHandler-BlXQahKv.cjs +16 -0
- package/dist/packem_shared/nodeHandler-R76tfOc6.mjs +14 -0
- package/dist/query-parser.d.cts +3 -0
- package/dist/query-parser.d.mts +3 -0
- package/dist/query-parser.d.ts +3 -0
- package/dist/swagger/adapter/prisma/index.d.cts +22 -0
- package/dist/swagger/adapter/prisma/index.d.mts +22 -0
- package/dist/swagger/adapter/prisma/index.d.ts +22 -0
- package/dist/swagger/json-schema-parser.d.cts +18 -0
- package/dist/swagger/json-schema-parser.d.mts +18 -0
- package/dist/swagger/json-schema-parser.d.ts +18 -0
- package/dist/swagger/parameters.d.cts +5 -0
- package/dist/swagger/parameters.d.mts +5 -0
- package/dist/swagger/parameters.d.ts +5 -0
- package/dist/swagger/types.d.cts +39 -0
- package/dist/swagger/types.d.mts +39 -0
- package/dist/swagger/types.d.ts +39 -0
- package/dist/swagger/utils/format-example-ref.d.cts +2 -0
- package/dist/swagger/utils/format-example-ref.d.mts +2 -0
- package/dist/swagger/utils/format-example-ref.d.ts +2 -0
- package/dist/swagger/utils/format-schema-ref.d.cts +2 -0
- package/dist/swagger/utils/format-schema-ref.d.mts +2 -0
- package/dist/swagger/utils/format-schema-ref.d.ts +2 -0
- package/dist/swagger/utils/get-models-accessible-routes.d.cts +4 -0
- package/dist/swagger/utils/get-models-accessible-routes.d.mts +4 -0
- package/dist/swagger/utils/get-models-accessible-routes.d.ts +4 -0
- package/dist/swagger/utils/get-swagger-paths.d.cts +12 -0
- package/dist/swagger/utils/get-swagger-paths.d.mts +12 -0
- package/dist/swagger/utils/get-swagger-paths.d.ts +12 -0
- package/dist/swagger/utils/get-swagger-tags.d.cts +4 -0
- package/dist/swagger/utils/get-swagger-tags.d.mts +4 -0
- package/dist/swagger/utils/get-swagger-tags.d.ts +4 -0
- package/dist/{types-C5c2M01-.d.mts → types.d.cts} +45 -52
- package/dist/{types-C5c2M01-.d.ts → types.d.mts} +45 -52
- package/dist/types.d.ts +131 -0
- package/dist/utils/format-resource-id.d.cts +2 -0
- package/dist/utils/format-resource-id.d.mts +2 -0
- package/dist/utils/format-resource-id.d.ts +2 -0
- package/dist/utils/get-accessible-routes.d.cts +3 -0
- package/dist/utils/get-accessible-routes.d.mts +3 -0
- package/dist/utils/get-accessible-routes.d.ts +3 -0
- package/dist/utils/get-resource-name-from-url.d.cts +5 -0
- package/dist/utils/get-resource-name-from-url.d.mts +5 -0
- package/dist/utils/get-resource-name-from-url.d.ts +5 -0
- package/dist/utils/get-route-type.d.cts +7 -0
- package/dist/utils/get-route-type.d.mts +7 -0
- package/dist/utils/get-route-type.d.ts +7 -0
- package/dist/utils/is-primitive.d.cts +2 -0
- package/dist/utils/is-primitive.d.mts +2 -0
- package/dist/utils/is-primitive.d.ts +2 -0
- package/dist/utils/validate-adapter-methods.d.cts +3 -0
- package/dist/utils/validate-adapter-methods.d.mts +3 -0
- package/dist/utils/validate-adapter-methods.d.ts +3 -0
- package/package.json +36 -17
- package/dist/chunk-542OFGDD.mjs +0 -73
- package/dist/chunk-542OFGDD.mjs.map +0 -1
- package/dist/chunk-AW3MPEJW.js +0 -77
- package/dist/chunk-AW3MPEJW.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/next/index.js +0 -4850
- package/dist/next/index.js.map +0 -1
- package/dist/next/index.mjs.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { b as baseHandler } from './base-crud-handler-Cg8r7S9C.mjs';
|
|
2
|
+
|
|
3
|
+
const handler = async (adapter, options) => await baseHandler(
|
|
4
|
+
async (response, responseConfig) => {
|
|
5
|
+
response.status(responseConfig.status).send(responseConfig.data);
|
|
6
|
+
},
|
|
7
|
+
async (response) => {
|
|
8
|
+
response.end();
|
|
9
|
+
},
|
|
10
|
+
adapter,
|
|
11
|
+
options
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
export { handler as default };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { FakePrismaClient, ModelsOptions } from "../../../types.d.cts";
|
|
3
|
+
import type { SwaggerModelsConfig } from "../../types.d.cts";
|
|
4
|
+
declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
|
|
5
|
+
examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
6
|
+
paths: OpenAPIV3.PathsObject;
|
|
7
|
+
schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
|
|
8
|
+
tags: OpenAPIV3.TagObject[];
|
|
9
|
+
}>;
|
|
10
|
+
export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
|
|
11
|
+
crud?: {
|
|
12
|
+
models: ModelsOptions<M>;
|
|
13
|
+
};
|
|
14
|
+
defaultExposeStrategy?: "all" | "none";
|
|
15
|
+
models?: M[];
|
|
16
|
+
prismaClient: FakePrismaClient & PrismaClient;
|
|
17
|
+
swagger?: Partial<{
|
|
18
|
+
allowedMediaTypes: Record<string, boolean>;
|
|
19
|
+
models: SwaggerModelsConfig<M>;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export = modelsToOpenApi;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { FakePrismaClient, ModelsOptions } from "../../../types.d.mts";
|
|
3
|
+
import type { SwaggerModelsConfig } from "../../types.d.mts";
|
|
4
|
+
declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
|
|
5
|
+
examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
6
|
+
paths: OpenAPIV3.PathsObject;
|
|
7
|
+
schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
|
|
8
|
+
tags: OpenAPIV3.TagObject[];
|
|
9
|
+
}>;
|
|
10
|
+
export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
|
|
11
|
+
crud?: {
|
|
12
|
+
models: ModelsOptions<M>;
|
|
13
|
+
};
|
|
14
|
+
defaultExposeStrategy?: "all" | "none";
|
|
15
|
+
models?: M[];
|
|
16
|
+
prismaClient: FakePrismaClient & PrismaClient;
|
|
17
|
+
swagger?: Partial<{
|
|
18
|
+
allowedMediaTypes: Record<string, boolean>;
|
|
19
|
+
models: SwaggerModelsConfig<M>;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export default modelsToOpenApi;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { FakePrismaClient, ModelsOptions } from "../../../types.d.ts";
|
|
3
|
+
import type { SwaggerModelsConfig } from "../../types.d.ts";
|
|
4
|
+
declare const modelsToOpenApi: <M extends string = string, PrismaClient = FakePrismaClient>({ crud, defaultExposeStrategy, models: ctorModels, prismaClient, swagger, }: ModelsToOpenApiParameters<M, PrismaClient>) => Promise<{
|
|
5
|
+
examples: Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
6
|
+
paths: OpenAPIV3.PathsObject;
|
|
7
|
+
schemas: Record<string, OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject>;
|
|
8
|
+
tags: OpenAPIV3.TagObject[];
|
|
9
|
+
}>;
|
|
10
|
+
export interface ModelsToOpenApiParameters<M extends string, PrismaClient> {
|
|
11
|
+
crud?: {
|
|
12
|
+
models: ModelsOptions<M>;
|
|
13
|
+
};
|
|
14
|
+
defaultExposeStrategy?: "all" | "none";
|
|
15
|
+
models?: M[];
|
|
16
|
+
prismaClient: FakePrismaClient & PrismaClient;
|
|
17
|
+
swagger?: Partial<{
|
|
18
|
+
allowedMediaTypes: Record<string, boolean>;
|
|
19
|
+
models: SwaggerModelsConfig<M>;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
export = modelsToOpenApi;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
declare class PrismaJsonSchemaParser {
|
|
4
|
+
private readonly dmmf;
|
|
5
|
+
private readonly schemaInputTypes;
|
|
6
|
+
constructor(dmmf: any);
|
|
7
|
+
formatInputTypeData(inputType: any): any;
|
|
8
|
+
getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
9
|
+
getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
|
|
10
|
+
getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
|
|
11
|
+
parseInputTypes(models: string[]): Record<string, JSONSchema7>;
|
|
12
|
+
parseModels(): Record<string, JSONSchema7>;
|
|
13
|
+
parseObjectInputType(fieldType: any): {
|
|
14
|
+
$ref?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export = PrismaJsonSchemaParser;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
declare class PrismaJsonSchemaParser {
|
|
4
|
+
private readonly dmmf;
|
|
5
|
+
private readonly schemaInputTypes;
|
|
6
|
+
constructor(dmmf: any);
|
|
7
|
+
formatInputTypeData(inputType: any): any;
|
|
8
|
+
getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
9
|
+
getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
|
|
10
|
+
getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
|
|
11
|
+
parseInputTypes(models: string[]): Record<string, JSONSchema7>;
|
|
12
|
+
parseModels(): Record<string, JSONSchema7>;
|
|
13
|
+
parseObjectInputType(fieldType: any): {
|
|
14
|
+
$ref?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export default PrismaJsonSchemaParser;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { JSONSchema7 } from "json-schema";
|
|
2
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
3
|
+
declare class PrismaJsonSchemaParser {
|
|
4
|
+
private readonly dmmf;
|
|
5
|
+
private readonly schemaInputTypes;
|
|
6
|
+
constructor(dmmf: any);
|
|
7
|
+
formatInputTypeData(inputType: any): any;
|
|
8
|
+
getExampleModelsSchemas(modelNames: string[], schemas: Record<string, OpenAPIV3.SchemaObject>): Record<string, OpenAPIV3.ExampleObject | OpenAPIV3.ReferenceObject>;
|
|
9
|
+
getPaginatedModelsSchemas(modelNames: string[]): Record<string, OpenAPIV3.SchemaObject>;
|
|
10
|
+
getPaginationDataSchema(): Record<string, OpenAPIV3.SchemaObject>;
|
|
11
|
+
parseInputTypes(models: string[]): Record<string, JSONSchema7>;
|
|
12
|
+
parseModels(): Record<string, JSONSchema7>;
|
|
13
|
+
parseObjectInputType(fieldType: any): {
|
|
14
|
+
$ref?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export = PrismaJsonSchemaParser;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RouteType } from "../types.d.cts";
|
|
2
|
+
import type { SwaggerParameter } from "./types.d.cts";
|
|
3
|
+
export declare const commonQueryParameters: SwaggerParameter[];
|
|
4
|
+
export declare const listQueryParameters: SwaggerParameter[];
|
|
5
|
+
export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RouteType } from "../types.d.mts";
|
|
2
|
+
import type { SwaggerParameter } from "./types.d.mts";
|
|
3
|
+
export declare const commonQueryParameters: SwaggerParameter[];
|
|
4
|
+
export declare const listQueryParameters: SwaggerParameter[];
|
|
5
|
+
export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RouteType } from "../types.d.ts";
|
|
2
|
+
import type { SwaggerParameter } from "./types.d.ts";
|
|
3
|
+
export declare const commonQueryParameters: SwaggerParameter[];
|
|
4
|
+
export declare const listQueryParameters: SwaggerParameter[];
|
|
5
|
+
export declare const getQueryParameters: (routeType: RouteType, additionalQueryParameters?: SwaggerParameter[]) => SwaggerParameter[];
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { RouteType } from "../types.d.cts";
|
|
3
|
+
export interface SwaggerType {
|
|
4
|
+
description?: string;
|
|
5
|
+
isArray?: boolean;
|
|
6
|
+
name: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SwaggerOperation {
|
|
10
|
+
body?: SwaggerType;
|
|
11
|
+
response: SwaggerType;
|
|
12
|
+
responses?: Record<number, any>;
|
|
13
|
+
summary?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SwaggerParameter {
|
|
16
|
+
description?: string;
|
|
17
|
+
name: string;
|
|
18
|
+
schema: any & {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface ModelsConfig {
|
|
23
|
+
additionalQueryParams?: SwaggerParameter[];
|
|
24
|
+
routeTypes?: {
|
|
25
|
+
[RouteType.CREATE]?: SwaggerOperation;
|
|
26
|
+
[RouteType.DELETE]?: SwaggerOperation;
|
|
27
|
+
[RouteType.READ_ALL]?: SwaggerOperation;
|
|
28
|
+
[RouteType.READ_ONE]?: SwaggerOperation;
|
|
29
|
+
[RouteType.UPDATE]?: SwaggerOperation;
|
|
30
|
+
};
|
|
31
|
+
tag: OpenAPIV3.TagObject;
|
|
32
|
+
type?: SwaggerType;
|
|
33
|
+
}
|
|
34
|
+
export type SwaggerModelsConfig<M extends string> = {
|
|
35
|
+
[key in M]?: ModelsConfig;
|
|
36
|
+
};
|
|
37
|
+
export type Routes<M extends string> = {
|
|
38
|
+
[key in M]?: RouteType[];
|
|
39
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { RouteType } from "../types.d.mts";
|
|
3
|
+
export interface SwaggerType {
|
|
4
|
+
description?: string;
|
|
5
|
+
isArray?: boolean;
|
|
6
|
+
name: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SwaggerOperation {
|
|
10
|
+
body?: SwaggerType;
|
|
11
|
+
response: SwaggerType;
|
|
12
|
+
responses?: Record<number, any>;
|
|
13
|
+
summary?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SwaggerParameter {
|
|
16
|
+
description?: string;
|
|
17
|
+
name: string;
|
|
18
|
+
schema: any & {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface ModelsConfig {
|
|
23
|
+
additionalQueryParams?: SwaggerParameter[];
|
|
24
|
+
routeTypes?: {
|
|
25
|
+
[RouteType.CREATE]?: SwaggerOperation;
|
|
26
|
+
[RouteType.DELETE]?: SwaggerOperation;
|
|
27
|
+
[RouteType.READ_ALL]?: SwaggerOperation;
|
|
28
|
+
[RouteType.READ_ONE]?: SwaggerOperation;
|
|
29
|
+
[RouteType.UPDATE]?: SwaggerOperation;
|
|
30
|
+
};
|
|
31
|
+
tag: OpenAPIV3.TagObject;
|
|
32
|
+
type?: SwaggerType;
|
|
33
|
+
}
|
|
34
|
+
export type SwaggerModelsConfig<M extends string> = {
|
|
35
|
+
[key in M]?: ModelsConfig;
|
|
36
|
+
};
|
|
37
|
+
export type Routes<M extends string> = {
|
|
38
|
+
[key in M]?: RouteType[];
|
|
39
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { RouteType } from "../types.d.ts";
|
|
3
|
+
export interface SwaggerType {
|
|
4
|
+
description?: string;
|
|
5
|
+
isArray?: boolean;
|
|
6
|
+
name: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SwaggerOperation {
|
|
10
|
+
body?: SwaggerType;
|
|
11
|
+
response: SwaggerType;
|
|
12
|
+
responses?: Record<number, any>;
|
|
13
|
+
summary?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SwaggerParameter {
|
|
16
|
+
description?: string;
|
|
17
|
+
name: string;
|
|
18
|
+
schema: any & {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface ModelsConfig {
|
|
23
|
+
additionalQueryParams?: SwaggerParameter[];
|
|
24
|
+
routeTypes?: {
|
|
25
|
+
[RouteType.CREATE]?: SwaggerOperation;
|
|
26
|
+
[RouteType.DELETE]?: SwaggerOperation;
|
|
27
|
+
[RouteType.READ_ALL]?: SwaggerOperation;
|
|
28
|
+
[RouteType.READ_ONE]?: SwaggerOperation;
|
|
29
|
+
[RouteType.UPDATE]?: SwaggerOperation;
|
|
30
|
+
};
|
|
31
|
+
tag: OpenAPIV3.TagObject;
|
|
32
|
+
type?: SwaggerType;
|
|
33
|
+
}
|
|
34
|
+
export type SwaggerModelsConfig<M extends string> = {
|
|
35
|
+
[key in M]?: ModelsConfig;
|
|
36
|
+
};
|
|
37
|
+
export type Routes<M extends string> = {
|
|
38
|
+
[key in M]?: RouteType[];
|
|
39
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.cts";
|
|
2
|
+
import type { Routes } from "../types.d.cts";
|
|
3
|
+
declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
|
|
4
|
+
export = getModelsAccessibleRoutes;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.mts";
|
|
2
|
+
import type { Routes } from "../types.d.mts";
|
|
3
|
+
declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
|
|
4
|
+
export default getModelsAccessibleRoutes;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.ts";
|
|
2
|
+
import type { Routes } from "../types.d.ts";
|
|
3
|
+
declare const getModelsAccessibleRoutes: <M extends string>(modelNames: M[], models?: ModelsOptions<M>, defaultExposeStrategy?: "all" | "none") => Routes<M>;
|
|
4
|
+
export = getModelsAccessibleRoutes;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.cts";
|
|
2
|
+
import type { Routes, SwaggerModelsConfig } from "../types.d.cts";
|
|
3
|
+
declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
|
|
4
|
+
export interface GetSwaggerPathsParameters<M extends string> {
|
|
5
|
+
models?: ModelsOptions<M>;
|
|
6
|
+
modelsConfig?: SwaggerModelsConfig<M>;
|
|
7
|
+
routes: Routes<M>;
|
|
8
|
+
routesMap?: {
|
|
9
|
+
[key in M]?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export = getSwaggerPaths;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.mts";
|
|
2
|
+
import type { Routes, SwaggerModelsConfig } from "../types.d.mts";
|
|
3
|
+
declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
|
|
4
|
+
export interface GetSwaggerPathsParameters<M extends string> {
|
|
5
|
+
models?: ModelsOptions<M>;
|
|
6
|
+
modelsConfig?: SwaggerModelsConfig<M>;
|
|
7
|
+
routes: Routes<M>;
|
|
8
|
+
routesMap?: {
|
|
9
|
+
[key in M]?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export default getSwaggerPaths;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ModelsOptions } from "../../types.d.ts";
|
|
2
|
+
import type { Routes, SwaggerModelsConfig } from "../types.d.ts";
|
|
3
|
+
declare const getSwaggerPaths: <M extends string>({ models, modelsConfig, routes, routesMap }: GetSwaggerPathsParameters<M>) => Record<string, any>;
|
|
4
|
+
export interface GetSwaggerPathsParameters<M extends string> {
|
|
5
|
+
models?: ModelsOptions<M>;
|
|
6
|
+
modelsConfig?: SwaggerModelsConfig<M>;
|
|
7
|
+
routes: Routes<M>;
|
|
8
|
+
routesMap?: {
|
|
9
|
+
[key in M]?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export = getSwaggerPaths;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OpenAPIV3 } from "openapi-types";
|
|
2
|
+
import type { SwaggerModelsConfig } from "../types.d.mts";
|
|
3
|
+
declare const getSwaggerTags: <M extends string>(modelNames: M[], modelsConfig?: SwaggerModelsConfig<M>) => OpenAPIV3.TagObject[];
|
|
4
|
+
export default getSwaggerTags;
|
|
@@ -1,4 +1,20 @@
|
|
|
1
|
-
|
|
1
|
+
export declare enum RouteType {
|
|
2
|
+
CREATE = "CREATE",
|
|
3
|
+
DELETE = "DELETE",
|
|
4
|
+
READ_ALL = "READ_ALL",
|
|
5
|
+
READ_ONE = "READ_ONE",
|
|
6
|
+
UPDATE = "UPDATE"
|
|
7
|
+
}
|
|
8
|
+
export interface ModelOption {
|
|
9
|
+
exclude?: RouteType[];
|
|
10
|
+
formatResourceId?: (resourceId: string) => number | string;
|
|
11
|
+
name?: string;
|
|
12
|
+
only?: RouteType[];
|
|
13
|
+
}
|
|
14
|
+
export type ModelsOptions<M extends string = string> = {
|
|
15
|
+
[key in M]?: ModelOption;
|
|
16
|
+
};
|
|
17
|
+
export type CreateHandler = <T, Q, Request>(parameters: HandlerParameters<T, Q> & {
|
|
2
18
|
request: Request & {
|
|
3
19
|
body: Record<string, any>;
|
|
4
20
|
};
|
|
@@ -6,25 +22,21 @@ type Handler$4 = <T, Q, Request>(parameters: HandlerParameters<T, Q> & {
|
|
|
6
22
|
data: any;
|
|
7
23
|
status: number;
|
|
8
24
|
}>;
|
|
9
|
-
|
|
10
|
-
type Handler$3 = <T, Q>(parameters: UniqueResourceHandlerParameters<T, Q>) => Promise<{
|
|
25
|
+
export type DeleteHandler = <T, Q>(parameters: UniqueResourceHandlerParameters<T, Q>) => Promise<{
|
|
11
26
|
data: any;
|
|
12
27
|
status: number;
|
|
13
28
|
}>;
|
|
14
|
-
|
|
15
|
-
type Handler$2 = <T, Q extends ParsedQueryParameters>(parameters: HandlerParameters<T, Q> & {
|
|
16
|
-
pagination: PaginationConfig;
|
|
17
|
-
}) => Promise<{
|
|
29
|
+
export type GetHandler = <T, Q>(parameters: UniqueResourceHandlerParameters<T, Q>) => Promise<{
|
|
18
30
|
data: any;
|
|
19
31
|
status: number;
|
|
20
32
|
}>;
|
|
21
|
-
|
|
22
|
-
|
|
33
|
+
export type ListHandler = <T, Q extends ParsedQueryParameters>(parameters: HandlerParameters<T, Q> & {
|
|
34
|
+
pagination: PaginationConfig;
|
|
35
|
+
}) => Promise<{
|
|
23
36
|
data: any;
|
|
24
37
|
status: number;
|
|
25
38
|
}>;
|
|
26
|
-
|
|
27
|
-
type Handler = <T, Q, Request>(parameters: UniqueResourceHandlerParameters<T, Q> & {
|
|
39
|
+
export type UpdateHandler = <T, Q, Request>(parameters: UniqueResourceHandlerParameters<T, Q> & {
|
|
28
40
|
request: Request & {
|
|
29
41
|
body: Partial<T>;
|
|
30
42
|
};
|
|
@@ -32,51 +44,34 @@ type Handler = <T, Q, Request>(parameters: UniqueResourceHandlerParameters<T, Q>
|
|
|
32
44
|
data: any;
|
|
33
45
|
status: number;
|
|
34
46
|
}>;
|
|
35
|
-
|
|
36
|
-
declare enum RouteType {
|
|
37
|
-
CREATE = "CREATE",
|
|
38
|
-
DELETE = "DELETE",
|
|
39
|
-
READ_ALL = "READ_ALL",
|
|
40
|
-
READ_ONE = "READ_ONE",
|
|
41
|
-
UPDATE = "UPDATE"
|
|
42
|
-
}
|
|
43
|
-
interface ModelOption {
|
|
44
|
-
exclude?: RouteType[];
|
|
45
|
-
formatResourceId?: (resourceId: string) => number | string;
|
|
46
|
-
name?: string;
|
|
47
|
-
only?: RouteType[];
|
|
48
|
-
}
|
|
49
|
-
type ModelsOptions<M extends string = string> = {
|
|
50
|
-
[key in M]?: ModelOption;
|
|
51
|
-
};
|
|
52
|
-
interface HandlerOptions<M extends string = string> {
|
|
47
|
+
export interface HandlerOptions<M extends string = string> {
|
|
53
48
|
exposeStrategy?: "all" | "none";
|
|
54
49
|
formatResourceId?: (resourceId: string) => number | string;
|
|
55
50
|
handlers?: {
|
|
56
|
-
create?:
|
|
57
|
-
delete?:
|
|
58
|
-
get?:
|
|
59
|
-
list?:
|
|
60
|
-
update?:
|
|
51
|
+
create?: CreateHandler;
|
|
52
|
+
delete?: DeleteHandler;
|
|
53
|
+
get?: GetHandler;
|
|
54
|
+
list?: ListHandler;
|
|
55
|
+
update?: UpdateHandler;
|
|
61
56
|
};
|
|
62
57
|
models?: ModelsOptions<M>;
|
|
63
58
|
pagination?: PaginationConfig;
|
|
64
59
|
}
|
|
65
|
-
interface PaginationConfig {
|
|
60
|
+
export interface PaginationConfig {
|
|
66
61
|
perPage: number;
|
|
67
62
|
}
|
|
68
|
-
interface HandlerParameters<T, Q> {
|
|
63
|
+
export interface HandlerParameters<T, Q> {
|
|
69
64
|
adapter: Adapter<T, Q>;
|
|
70
65
|
query: Q;
|
|
71
66
|
resourceName: string;
|
|
72
67
|
}
|
|
73
|
-
interface UniqueResourceHandlerParameters<T, Q> {
|
|
68
|
+
export interface UniqueResourceHandlerParameters<T, Q> {
|
|
74
69
|
adapter: Adapter<T, Q>;
|
|
75
70
|
query: Q;
|
|
76
71
|
resourceId: number | string;
|
|
77
72
|
resourceName: string;
|
|
78
73
|
}
|
|
79
|
-
interface Adapter<T, Q, M extends string = string> {
|
|
74
|
+
export interface Adapter<T, Q, M extends string = string> {
|
|
80
75
|
connect?: () => Promise<void>;
|
|
81
76
|
create: (resourceName: M, data: any, query: Q) => Promise<T>;
|
|
82
77
|
delete: (resourceName: M, resourceId: number | string, query: Q) => Promise<T>;
|
|
@@ -94,28 +89,28 @@ interface Adapter<T, Q, M extends string = string> {
|
|
|
94
89
|
parseQuery: (resourceName: M, query: ParsedQueryParameters) => Q;
|
|
95
90
|
update: (resourceName: M, resourceId: number | string, data: any, query: Q) => Promise<T>;
|
|
96
91
|
}
|
|
97
|
-
interface PaginationData {
|
|
92
|
+
export interface PaginationData {
|
|
98
93
|
page: number;
|
|
99
94
|
pageCount: number;
|
|
100
95
|
total: number;
|
|
101
96
|
}
|
|
102
|
-
type RecursiveField = Record<string, Record<string, boolean> | boolean>;
|
|
103
|
-
type WhereOperator = "$cont" | "$ends" | "$eq" | "$gt" | "$gte" | "$in" | "$isnull" | "$lt" | "$lte" | "$neq" | "$notin" | "$starts";
|
|
104
|
-
type SearchCondition = Date | boolean | number | string | null;
|
|
105
|
-
type WhereCondition = {
|
|
97
|
+
export type RecursiveField = Record<string, Record<string, boolean> | boolean>;
|
|
98
|
+
export type WhereOperator = "$cont" | "$ends" | "$eq" | "$gt" | "$gte" | "$in" | "$isnull" | "$lt" | "$lte" | "$neq" | "$notin" | "$starts";
|
|
99
|
+
export type SearchCondition = Date | boolean | number | string | null;
|
|
100
|
+
export type WhereCondition = {
|
|
106
101
|
[key in WhereOperator]?: SearchCondition;
|
|
107
102
|
};
|
|
108
|
-
type Condition = {
|
|
103
|
+
export type Condition = {
|
|
109
104
|
[key: string]: Condition | SearchCondition | WhereCondition;
|
|
110
105
|
};
|
|
111
|
-
type WhereField = Condition & {
|
|
106
|
+
export type WhereField = Condition & {
|
|
112
107
|
$and?: Condition | Condition[];
|
|
113
108
|
$not?: Condition | Condition[];
|
|
114
109
|
$or?: Condition | Condition[];
|
|
115
110
|
};
|
|
116
|
-
type OrderByOperator = "$asc" | "$desc";
|
|
117
|
-
type OrderByField = Record<string, OrderByOperator>;
|
|
118
|
-
interface ParsedQueryParameters {
|
|
111
|
+
export type OrderByOperator = "$asc" | "$desc";
|
|
112
|
+
export type OrderByField = Record<string, OrderByOperator>;
|
|
113
|
+
export interface ParsedQueryParameters {
|
|
119
114
|
distinct?: string;
|
|
120
115
|
include?: RecursiveField;
|
|
121
116
|
limit?: number | undefined;
|
|
@@ -126,13 +121,11 @@ interface ParsedQueryParameters {
|
|
|
126
121
|
skip?: number | undefined;
|
|
127
122
|
where?: WhereField;
|
|
128
123
|
}
|
|
129
|
-
type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;
|
|
130
|
-
interface FakePrismaClient {
|
|
124
|
+
export type ExecuteHandler<Request, Response> = (request: Request, response: Response) => Promise<void>;
|
|
125
|
+
export interface FakePrismaClient {
|
|
131
126
|
$connect: () => void;
|
|
132
127
|
$disconnect: () => Promise<void>;
|
|
133
128
|
[key: string]: any;
|
|
134
129
|
_dmmf?: any;
|
|
135
130
|
_getDmmf?: () => any;
|
|
136
131
|
}
|
|
137
|
-
|
|
138
|
-
export { type Adapter as A, type Condition as C, type ExecuteHandler as E, type FakePrismaClient as F, type HandlerOptions as H, type ModelsOptions as M, type OrderByField as O, type PaginationData as P, RouteType as R, type SearchCondition as S, type UniqueResourceHandlerParameters as U, type WhereCondition as W, type ParsedQueryParameters as a, type HandlerParameters as b, type ModelOption as c, type OrderByOperator as d, type PaginationConfig as e, type RecursiveField as f, type WhereField as g, type WhereOperator as h };
|