@revisium/endpoint 0.9.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/LICENSE +204 -0
- package/README.md +9 -0
- package/dist/endpoint-microservice/commands/handlers/base-endpoint.handler.d.ts +6 -0
- package/dist/endpoint-microservice/commands/handlers/base-endpoint.handler.js +17 -0
- package/dist/endpoint-microservice/commands/handlers/base-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/commands/handlers/create-endpoint.handler.d.ts +10 -0
- package/dist/endpoint-microservice/commands/handlers/create-endpoint.handler.js +41 -0
- package/dist/endpoint-microservice/commands/handlers/create-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/commands/handlers/delete-endpoint.handler.d.ts +10 -0
- package/dist/endpoint-microservice/commands/handlers/delete-endpoint.handler.js +40 -0
- package/dist/endpoint-microservice/commands/handlers/delete-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/commands/handlers/index.d.ts +5 -0
- package/dist/endpoint-microservice/commands/handlers/index.js +14 -0
- package/dist/endpoint-microservice/commands/handlers/index.js.map +1 -0
- package/dist/endpoint-microservice/commands/handlers/run-all-endpoints.handler.d.ts +16 -0
- package/dist/endpoint-microservice/commands/handlers/run-all-endpoints.handler.js +44 -0
- package/dist/endpoint-microservice/commands/handlers/run-all-endpoints.handler.js.map +1 -0
- package/dist/endpoint-microservice/commands/handlers/update-endpoint.handler.d.ts +10 -0
- package/dist/endpoint-microservice/commands/handlers/update-endpoint.handler.js +41 -0
- package/dist/endpoint-microservice/commands/handlers/update-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/commands/impl/create-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/commands/impl/create-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/commands/impl/create-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/commands/impl/delete-endpoint.command.d.ts +6 -0
- package/dist/endpoint-microservice/commands/impl/delete-endpoint.command.js +11 -0
- package/dist/endpoint-microservice/commands/impl/delete-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/commands/impl/index.d.ts +3 -0
- package/dist/endpoint-microservice/commands/impl/index.js +20 -0
- package/dist/endpoint-microservice/commands/impl/index.js.map +1 -0
- package/dist/endpoint-microservice/commands/impl/run-all-endpoints.command.d.ts +3 -0
- package/dist/endpoint-microservice/commands/impl/run-all-endpoints.command.js +8 -0
- package/dist/endpoint-microservice/commands/impl/run-all-endpoints.command.js.map +1 -0
- package/dist/endpoint-microservice/commands/impl/update-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/commands/impl/update-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/commands/impl/update-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/core-api/core-api.module.d.ts +2 -0
- package/dist/endpoint-microservice/core-api/core-api.module.js +25 -0
- package/dist/endpoint-microservice/core-api/core-api.module.js.map +1 -0
- package/dist/endpoint-microservice/core-api/generated/api.d.ts +390 -0
- package/dist/endpoint-microservice/core-api/generated/api.js +550 -0
- package/dist/endpoint-microservice/core-api/generated/api.js.map +1 -0
- package/dist/endpoint-microservice/core-api/internal-core-api.service.d.ts +13 -0
- package/dist/endpoint-microservice/core-api/internal-core-api.service.js +87 -0
- package/dist/endpoint-microservice/core-api/internal-core-api.service.js.map +1 -0
- package/dist/endpoint-microservice/core-api/proxy-core-api.service.d.ts +5 -0
- package/dist/endpoint-microservice/core-api/proxy-core-api.service.js +32 -0
- package/dist/endpoint-microservice/core-api/proxy-core-api.service.js.map +1 -0
- package/dist/endpoint-microservice/core-api/utils/transformFromPrismaToRowModel.d.ts +4 -0
- package/dist/endpoint-microservice/core-api/utils/transformFromPrismaToRowModel.js +24 -0
- package/dist/endpoint-microservice/core-api/utils/transformFromPrismaToRowModel.js.map +1 -0
- package/dist/endpoint-microservice/database/database.module.d.ts +2 -0
- package/dist/endpoint-microservice/database/database.module.js +21 -0
- package/dist/endpoint-microservice/database/database.module.js.map +1 -0
- package/dist/endpoint-microservice/database/prisma.service.d.ts +5 -0
- package/dist/endpoint-microservice/database/prisma.service.js +21 -0
- package/dist/endpoint-microservice/database/prisma.service.js.map +1 -0
- package/dist/endpoint-microservice/endpoint-listener.controller.d.ts +12 -0
- package/dist/endpoint-microservice/endpoint-listener.controller.js +54 -0
- package/dist/endpoint-microservice/endpoint-listener.controller.js.map +1 -0
- package/dist/endpoint-microservice/endpoint-microservice.module.d.ts +9 -0
- package/dist/endpoint-microservice/endpoint-microservice.module.js +58 -0
- package/dist/endpoint-microservice/endpoint-microservice.module.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/create-graphql-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/create-graphql-endpoint.handler.js +32 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/create-graphql-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/delete-graphql-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/delete-graphql-endpoint.handler.js +32 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/delete-graphql-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/index.d.ts +4 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/index.js +12 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/index.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/update-graphql-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/update-graphql-endpoint.handler.js +33 -0
- package/dist/endpoint-microservice/graphql/commands/handlers/update-graphql-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/impl/create-graphql-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/graphql/commands/impl/create-graphql-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/graphql/commands/impl/create-graphql-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/impl/delete-graphql-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/graphql/commands/impl/delete-graphql-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/graphql/commands/impl/delete-graphql-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/impl/index.d.ts +4 -0
- package/dist/endpoint-microservice/graphql/commands/impl/index.js +21 -0
- package/dist/endpoint-microservice/graphql/commands/impl/index.js.map +1 -0
- package/dist/endpoint-microservice/graphql/commands/impl/update-graphql-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/graphql/commands/impl/update-graphql-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/graphql/commands/impl/update-graphql-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.controller.d.ts +9 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.controller.js +85 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.controller.js.map +1 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.service.d.ts +20 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.service.js +138 -0
- package/dist/endpoint-microservice/graphql/graphql-endpoint.service.js.map +1 -0
- package/dist/endpoint-microservice/graphql/graphql.module.d.ts +2 -0
- package/dist/endpoint-microservice/graphql/graphql.module.js +28 -0
- package/dist/endpoint-microservice/graphql/graphql.module.js.map +1 -0
- package/dist/endpoint-microservice/graphql/index.d.ts +1 -0
- package/dist/endpoint-microservice/graphql/index.js +18 -0
- package/dist/endpoint-microservice/graphql/index.js.map +1 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/get-graphql-schema.handler.d.ts +26 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/get-graphql-schema.handler.js +234 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/get-graphql-schema.handler.js.map +1 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/index.d.ts +2 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/index.js +6 -0
- package/dist/endpoint-microservice/graphql/queries/handlers/index.js.map +1 -0
- package/dist/endpoint-microservice/graphql/queries/impl/get-graphql-schema.query.d.ts +8 -0
- package/dist/endpoint-microservice/graphql/queries/impl/get-graphql-schema.query.js +10 -0
- package/dist/endpoint-microservice/graphql/queries/impl/get-graphql-schema.query.js.map +1 -0
- package/dist/endpoint-microservice/graphql/queries/impl/index.d.ts +1 -0
- package/dist/endpoint-microservice/graphql/queries/impl/index.js +18 -0
- package/dist/endpoint-microservice/graphql/queries/impl/index.js.map +1 -0
- package/dist/endpoint-microservice/graphql/queries/types/index.d.ts +0 -0
- package/dist/endpoint-microservice/graphql/queries/types/index.js +1 -0
- package/dist/endpoint-microservice/graphql/queries/types/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/create-restapi-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/create-restapi-endpoint.handler.js +32 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/create-restapi-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/delete-restapi-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/delete-restapi-endpoint.handler.js +32 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/delete-restapi-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/index.d.ts +4 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/index.js +12 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/update-restapi-endpoint.handler.d.ts +8 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/update-restapi-endpoint.handler.js +33 -0
- package/dist/endpoint-microservice/restapi/commands/handlers/update-restapi-endpoint.handler.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/impl/create-restapi-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/restapi/commands/impl/create-restapi-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/restapi/commands/impl/create-restapi-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/impl/delete-restapi-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/restapi/commands/impl/delete-restapi-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/restapi/commands/impl/delete-restapi-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/impl/index.d.ts +3 -0
- package/dist/endpoint-microservice/restapi/commands/impl/index.js +20 -0
- package/dist/endpoint-microservice/restapi/commands/impl/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/commands/impl/update-restapi-endpoint.command.d.ts +4 -0
- package/dist/endpoint-microservice/restapi/commands/impl/update-restapi-endpoint.command.js +10 -0
- package/dist/endpoint-microservice/restapi/commands/impl/update-restapi-endpoint.command.js.map +1 -0
- package/dist/endpoint-microservice/restapi/index.d.ts +1 -0
- package/dist/endpoint-microservice/restapi/index.js +18 -0
- package/dist/endpoint-microservice/restapi/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/get-open-api-schema.handler.d.ts +12 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/get-open-api-schema.handler.js +396 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/get-open-api-schema.handler.js.map +1 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/index.d.ts +2 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/index.js +6 -0
- package/dist/endpoint-microservice/restapi/queries/handlers/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/queries/impl/get-open-api-schema.query.d.ts +8 -0
- package/dist/endpoint-microservice/restapi/queries/impl/get-open-api-schema.query.js +10 -0
- package/dist/endpoint-microservice/restapi/queries/impl/get-open-api-schema.query.js.map +1 -0
- package/dist/endpoint-microservice/restapi/queries/impl/index.d.ts +1 -0
- package/dist/endpoint-microservice/restapi/queries/impl/index.js +18 -0
- package/dist/endpoint-microservice/restapi/queries/impl/index.js.map +1 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.controller.d.ts +12 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.controller.js +170 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.controller.js.map +1 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.service.d.ts +36 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.service.js +173 -0
- package/dist/endpoint-microservice/restapi/restapi-endpoint.service.js.map +1 -0
- package/dist/endpoint-microservice/restapi/restapi.module.d.ts +2 -0
- package/dist/endpoint-microservice/restapi/restapi.module.js +33 -0
- package/dist/endpoint-microservice/restapi/restapi.module.js.map +1 -0
- package/dist/endpoint-microservice/restapi/swagger-endpoint.controller.d.ts +8 -0
- package/dist/endpoint-microservice/restapi/swagger-endpoint.controller.js +98 -0
- package/dist/endpoint-microservice/restapi/swagger-endpoint.controller.js.map +1 -0
- package/dist/endpoint-microservice/shared/default-port.d.ts +1 -0
- package/dist/endpoint-microservice/shared/default-port.js +5 -0
- package/dist/endpoint-microservice/shared/default-port.js.map +1 -0
- package/dist/endpoint-microservice/shared/types/json-schema-type.d.ts +24 -0
- package/dist/endpoint-microservice/shared/types/json-schema-type.js +3 -0
- package/dist/endpoint-microservice/shared/types/json-schema-type.js.map +1 -0
- package/dist/endpoint-microservice/shared/types/open-api-schema.d.ts +2 -0
- package/dist/endpoint-microservice/shared/types/open-api-schema.js +3 -0
- package/dist/endpoint-microservice/shared/types/open-api-schema.js.map +1 -0
- package/dist/endpoint-microservice/shared/types/pagination.interface.d.ts +15 -0
- package/dist/endpoint-microservice/shared/types/pagination.interface.js +3 -0
- package/dist/endpoint-microservice/shared/types/pagination.interface.js.map +1 -0
- package/dist/endpoint-microservice/shared/utils/getOffsetPagination.d.ts +18 -0
- package/dist/endpoint-microservice/shared/utils/getOffsetPagination.js +45 -0
- package/dist/endpoint-microservice/shared/utils/getOffsetPagination.js.map +1 -0
- package/dist/endpoint-microservice/shared/utils/parseHeaders.d.ts +3 -0
- package/dist/endpoint-microservice/shared/utils/parseHeaders.js +12 -0
- package/dist/endpoint-microservice/shared/utils/parseHeaders.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +33 -0
- package/dist/main.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +100 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
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);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./create-graphql-endpoint.command"), exports);
|
18
|
+
__exportStar(require("./delete-graphql-endpoint.command"), exports);
|
19
|
+
__exportStar(require("./update-graphql-endpoint.command"), exports);
|
20
|
+
__exportStar(require("./update-graphql-endpoint.command"), exports);
|
21
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/endpoint-microservice/graphql/commands/impl/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAgG;AAChG,oEAAgG;AAChG,oEAAgG;AAChG,oEAAgG"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.UpdateGraphqlEndpointCommand = void 0;
|
4
|
+
class UpdateGraphqlEndpointCommand {
|
5
|
+
constructor(endpointId) {
|
6
|
+
this.endpointId = endpointId;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
exports.UpdateGraphqlEndpointCommand = UpdateGraphqlEndpointCommand;
|
10
|
+
//# sourceMappingURL=update-graphql-endpoint.command.js.map
|
package/dist/endpoint-microservice/graphql/commands/impl/update-graphql-endpoint.command.js.map
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"update-graphql-endpoint.command.js","sourceRoot":"","sources":["../../../../../src/endpoint-microservice/graphql/commands/impl/update-graphql-endpoint.command.ts"],"names":[],"mappings":";;;AAAA,MAAa,4BAA4B;IACvC,YAAmC,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;CAC1D;AAFD,oEAEC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { NextFunction, Request, Response } from 'express';
|
2
|
+
import { GraphqlEndpointService } from 'src/endpoint-microservice/graphql/graphql-endpoint.service';
|
3
|
+
export declare class GraphqlEndpointController {
|
4
|
+
private readonly endpointService;
|
5
|
+
constructor(endpointService: GraphqlEndpointService);
|
6
|
+
get(organizationId: string, projectName: string, branchName: string, postfix: string, req: Request, res: Response, next: NextFunction): void;
|
7
|
+
post(organizationId: string, projectName: string, branchName: string, postfix: string | undefined, req: Request, res: Response, next: NextFunction): void;
|
8
|
+
private run;
|
9
|
+
}
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
exports.GraphqlEndpointController = void 0;
|
16
|
+
const common_1 = require("@nestjs/common");
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
18
|
+
const graphql_endpoint_service_1 = require("./graphql-endpoint.service");
|
19
|
+
let GraphqlEndpointController = class GraphqlEndpointController {
|
20
|
+
constructor(endpointService) {
|
21
|
+
this.endpointService = endpointService;
|
22
|
+
}
|
23
|
+
get(organizationId, projectName, branchName, postfix, req, res, next) {
|
24
|
+
this.run({
|
25
|
+
organizationId,
|
26
|
+
projectName,
|
27
|
+
branchName,
|
28
|
+
postfix,
|
29
|
+
req,
|
30
|
+
res,
|
31
|
+
next,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
post(organizationId, projectName, branchName, postfix, req, res, next) {
|
35
|
+
this.run({
|
36
|
+
organizationId,
|
37
|
+
projectName,
|
38
|
+
branchName,
|
39
|
+
postfix,
|
40
|
+
req,
|
41
|
+
res,
|
42
|
+
next,
|
43
|
+
});
|
44
|
+
}
|
45
|
+
run({ organizationId, projectName, branchName, postfix, req, res, next, }) {
|
46
|
+
const endpointMiddleware = this.endpointService.getEndpointMiddleware(organizationId, projectName, branchName, postfix);
|
47
|
+
if (!endpointMiddleware) {
|
48
|
+
return res.status(common_1.HttpStatus.NOT_FOUND).send();
|
49
|
+
}
|
50
|
+
endpointMiddleware(req, res, next);
|
51
|
+
}
|
52
|
+
};
|
53
|
+
exports.GraphqlEndpointController = GraphqlEndpointController;
|
54
|
+
__decorate([
|
55
|
+
(0, common_1.Get)(),
|
56
|
+
__param(0, (0, common_1.Param)('organizationId')),
|
57
|
+
__param(1, (0, common_1.Param)('projectName')),
|
58
|
+
__param(2, (0, common_1.Param)('branchName')),
|
59
|
+
__param(3, (0, common_1.Param)('postfix')),
|
60
|
+
__param(4, (0, common_1.Req)()),
|
61
|
+
__param(5, (0, common_1.Res)()),
|
62
|
+
__param(6, (0, common_1.Next)()),
|
63
|
+
__metadata("design:type", Function),
|
64
|
+
__metadata("design:paramtypes", [String, String, String, String, Object, Object, Function]),
|
65
|
+
__metadata("design:returntype", void 0)
|
66
|
+
], GraphqlEndpointController.prototype, "get", null);
|
67
|
+
__decorate([
|
68
|
+
(0, common_1.Post)(),
|
69
|
+
__param(0, (0, common_1.Param)('organizationId')),
|
70
|
+
__param(1, (0, common_1.Param)('projectName')),
|
71
|
+
__param(2, (0, common_1.Param)('branchName')),
|
72
|
+
__param(3, (0, common_1.Param)('postfix')),
|
73
|
+
__param(4, (0, common_1.Req)()),
|
74
|
+
__param(5, (0, common_1.Res)()),
|
75
|
+
__param(6, (0, common_1.Next)()),
|
76
|
+
__metadata("design:type", Function),
|
77
|
+
__metadata("design:paramtypes", [String, String, String, String, Object, Object, Function]),
|
78
|
+
__metadata("design:returntype", void 0)
|
79
|
+
], GraphqlEndpointController.prototype, "post", null);
|
80
|
+
exports.GraphqlEndpointController = GraphqlEndpointController = __decorate([
|
81
|
+
(0, swagger_1.ApiExcludeController)(),
|
82
|
+
(0, common_1.Controller)('endpoint/graphql/:organizationId/:projectName/:branchName/:postfix'),
|
83
|
+
__metadata("design:paramtypes", [graphql_endpoint_service_1.GraphqlEndpointService])
|
84
|
+
], GraphqlEndpointController);
|
85
|
+
//# sourceMappingURL=graphql-endpoint.controller.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"graphql-endpoint.controller.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,6CAAuD;AAEvD,yEAAoG;AAM7F,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAA6B,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;IAAG,CAAC;IAGxE,GAAG,CACwB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAAe,EAEf,GAAY,EACL,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CACuB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAA2B,EACpB,GAAY,EACZ,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,EACH,GAAG,EACH,IAAI,GASL;QACC,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACnE,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA9EY,8DAAyB;AAIpC;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IAEL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAWR;AAGD;IADC,IAAA,aAAI,GAAE;IAEJ,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAWR;oCA9CU,yBAAyB;IAJrC,IAAA,8BAAoB,GAAE;IACtB,IAAA,mBAAU,EACT,oEAAoE,CACrE;qCAE+C,iDAAsB;GADzD,yBAAyB,CA8ErC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/// <reference types="qs" />
|
2
|
+
import { QueryBus } from '@nestjs/cqrs';
|
3
|
+
import { RequestHandler } from 'express';
|
4
|
+
import { PrismaService } from 'src/endpoint-microservice/database/prisma.service';
|
5
|
+
export declare class GraphqlEndpointService {
|
6
|
+
private prisma;
|
7
|
+
private queryBus;
|
8
|
+
private readonly logger;
|
9
|
+
private map;
|
10
|
+
private startedEndpointIds;
|
11
|
+
constructor(prisma: PrismaService, queryBus: QueryBus);
|
12
|
+
getEndpointMiddleware(organizationId: string, projectName: string, branchName: string, postfix: string): RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
13
|
+
existEndpoint(endpointId: string): boolean;
|
14
|
+
stopEndpoint(endpointId: string): Promise<void>;
|
15
|
+
runEndpoint(endpointId: string): Promise<void>;
|
16
|
+
private _run;
|
17
|
+
private getPostfix;
|
18
|
+
private getUrl;
|
19
|
+
private getDbEndpoint;
|
20
|
+
}
|
@@ -0,0 +1,138 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
var GraphqlEndpointService_1;
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
13
|
+
exports.GraphqlEndpointService = void 0;
|
14
|
+
const server_1 = require("@apollo/server");
|
15
|
+
const default_1 = require("@apollo/server/plugin/landingPage/default");
|
16
|
+
const express4_1 = require("@apollo/server/express4");
|
17
|
+
const common_1 = require("@nestjs/common");
|
18
|
+
const cqrs_1 = require("@nestjs/cqrs");
|
19
|
+
const prisma_service_1 = require("../database/prisma.service");
|
20
|
+
const impl_1 = require("./queries/impl");
|
21
|
+
const parseHeaders_1 = require("../shared/utils/parseHeaders");
|
22
|
+
let GraphqlEndpointService = GraphqlEndpointService_1 = class GraphqlEndpointService {
|
23
|
+
constructor(prisma, queryBus) {
|
24
|
+
this.prisma = prisma;
|
25
|
+
this.queryBus = queryBus;
|
26
|
+
this.logger = new common_1.Logger(GraphqlEndpointService_1.name);
|
27
|
+
this.map = new Map();
|
28
|
+
this.startedEndpointIds = [];
|
29
|
+
}
|
30
|
+
getEndpointMiddleware(organizationId, projectName, branchName, postfix) {
|
31
|
+
const item = this.map.get(this.getUrl(organizationId, projectName, branchName, postfix));
|
32
|
+
return item?.middleware;
|
33
|
+
}
|
34
|
+
existEndpoint(endpointId) {
|
35
|
+
return this.startedEndpointIds.includes(endpointId);
|
36
|
+
}
|
37
|
+
async stopEndpoint(endpointId) {
|
38
|
+
if (!this.startedEndpointIds.includes(endpointId)) {
|
39
|
+
throw new Error(`${endpointId} is not started`);
|
40
|
+
}
|
41
|
+
const [url, item] = [...this.map.entries()].find(([_, mapValue]) => mapValue.endpointId === endpointId);
|
42
|
+
if (item) {
|
43
|
+
await item.apollo.stop();
|
44
|
+
this.map.delete(url);
|
45
|
+
}
|
46
|
+
this.startedEndpointIds = this.startedEndpointIds.filter((id) => id !== endpointId);
|
47
|
+
this.logger.log(`stopped endpoint name=${url} endpointId=${endpointId}`);
|
48
|
+
}
|
49
|
+
async runEndpoint(endpointId) {
|
50
|
+
if (this.startedEndpointIds.includes(endpointId)) {
|
51
|
+
throw new Error(`${endpointId} already started`);
|
52
|
+
}
|
53
|
+
const dbEndpoint = await this.getDbEndpoint(endpointId);
|
54
|
+
const { revision: { branch, ...revision }, } = dbEndpoint;
|
55
|
+
const url = this.getUrl(branch.project.organizationId, branch.project.name, branch.name, this.getPostfix(revision));
|
56
|
+
const apollo = await this._run(revision.id);
|
57
|
+
this.startedEndpointIds.push(endpointId);
|
58
|
+
this.map.set(url, {
|
59
|
+
middleware: (0, express4_1.expressMiddleware)(apollo, {
|
60
|
+
context: async ({ req }) => {
|
61
|
+
return { headers: (0, parseHeaders_1.parseHeaders)(req.headers) };
|
62
|
+
},
|
63
|
+
}),
|
64
|
+
apollo,
|
65
|
+
endpointId,
|
66
|
+
});
|
67
|
+
this.logger.log(`started endpoint name=${url} endpointId=${endpointId}`);
|
68
|
+
}
|
69
|
+
async _run(revisionId) {
|
70
|
+
const graphqlSchema = await this.queryBus.execute(new impl_1.GetGraphqlSchemaQuery({
|
71
|
+
revisionId,
|
72
|
+
}));
|
73
|
+
const tables = Object.keys(graphqlSchema.getQueryType().getFields()).filter((field) => field !== '_service');
|
74
|
+
const table = tables[0] || 'Table';
|
75
|
+
const server = new server_1.ApolloServer({
|
76
|
+
schema: graphqlSchema,
|
77
|
+
introspection: true,
|
78
|
+
plugins: [
|
79
|
+
(0, default_1.ApolloServerPluginLandingPageLocalDefault)({
|
80
|
+
document: `query ExampleQuery {
|
81
|
+
${table} {
|
82
|
+
edges {
|
83
|
+
node {
|
84
|
+
id
|
85
|
+
}
|
86
|
+
}
|
87
|
+
pageInfo {
|
88
|
+
startCursor
|
89
|
+
endCursor
|
90
|
+
hasPreviousPage
|
91
|
+
hasNextPage
|
92
|
+
}
|
93
|
+
totalCount
|
94
|
+
}
|
95
|
+
}
|
96
|
+
`,
|
97
|
+
}),
|
98
|
+
],
|
99
|
+
});
|
100
|
+
await server.start();
|
101
|
+
return server;
|
102
|
+
}
|
103
|
+
getPostfix(revision) {
|
104
|
+
if (revision.isHead) {
|
105
|
+
return 'head';
|
106
|
+
}
|
107
|
+
if (revision.isDraft) {
|
108
|
+
return 'draft';
|
109
|
+
}
|
110
|
+
return revision.id;
|
111
|
+
}
|
112
|
+
getUrl(organizationId, projectName, branchName, postfix) {
|
113
|
+
return `${organizationId}/${projectName}/${branchName}/${postfix}`;
|
114
|
+
}
|
115
|
+
getDbEndpoint(endpointId) {
|
116
|
+
return this.prisma.endpoint.findUniqueOrThrow({
|
117
|
+
where: { id: endpointId },
|
118
|
+
include: {
|
119
|
+
revision: {
|
120
|
+
include: {
|
121
|
+
branch: {
|
122
|
+
include: {
|
123
|
+
project: true,
|
124
|
+
},
|
125
|
+
},
|
126
|
+
},
|
127
|
+
},
|
128
|
+
},
|
129
|
+
});
|
130
|
+
}
|
131
|
+
};
|
132
|
+
exports.GraphqlEndpointService = GraphqlEndpointService;
|
133
|
+
exports.GraphqlEndpointService = GraphqlEndpointService = GraphqlEndpointService_1 = __decorate([
|
134
|
+
(0, common_1.Injectable)(),
|
135
|
+
__metadata("design:paramtypes", [prisma_service_1.PrismaService,
|
136
|
+
cqrs_1.QueryBus])
|
137
|
+
], GraphqlEndpointService);
|
138
|
+
//# sourceMappingURL=graphql-endpoint.service.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"graphql-endpoint.service.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.service.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
9
|
+
exports.GraphqlModule = void 0;
|
10
|
+
const common_1 = require("@nestjs/common");
|
11
|
+
const cqrs_1 = require("@nestjs/cqrs");
|
12
|
+
const core_api_module_1 = require("../core-api/core-api.module");
|
13
|
+
const database_module_1 = require("../database/database.module");
|
14
|
+
const handlers_1 = require("./commands/handlers");
|
15
|
+
const graphql_endpoint_controller_1 = require("./graphql-endpoint.controller");
|
16
|
+
const graphql_endpoint_service_1 = require("./graphql-endpoint.service");
|
17
|
+
const handlers_2 = require("./queries/handlers");
|
18
|
+
let GraphqlModule = class GraphqlModule {
|
19
|
+
};
|
20
|
+
exports.GraphqlModule = GraphqlModule;
|
21
|
+
exports.GraphqlModule = GraphqlModule = __decorate([
|
22
|
+
(0, common_1.Module)({
|
23
|
+
imports: [cqrs_1.CqrsModule, database_module_1.DatabaseModule, core_api_module_1.CoreApiModule],
|
24
|
+
providers: [graphql_endpoint_service_1.GraphqlEndpointService, ...handlers_1.GRAPHQL_COMMANDS, ...handlers_2.GRAPHQL_QUERIES],
|
25
|
+
controllers: [graphql_endpoint_controller_1.GraphqlEndpointController],
|
26
|
+
})
|
27
|
+
], GraphqlModule);
|
28
|
+
//# sourceMappingURL=graphql.module.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"graphql.module.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uCAA0C;AAC1C,iEAAmF;AACnF,iEAAoF;AACpF,kDAAuF;AACvF,+EAA0G;AAC1G,yEAAoG;AACpG,iDAAqF;AAO9E,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IALzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,EAAE,gCAAc,EAAE,+BAAa,CAAC;QACpD,SAAS,EAAE,CAAC,iDAAsB,EAAE,GAAG,2BAAgB,EAAE,GAAG,0BAAe,CAAC;QAC5E,WAAW,EAAE,CAAC,uDAAyB,CAAC;KACzC,CAAC;GACW,aAAa,CAAG"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from 'src/endpoint-microservice/graphql/commands/impl';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
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);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./commands/impl"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgE"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { IQueryHandler } from '@nestjs/cqrs';
|
2
|
+
import { GraphQLSchema } from 'graphql/type';
|
3
|
+
import { InternalCoreApiService } from 'src/endpoint-microservice/core-api/internal-core-api.service';
|
4
|
+
import { ProxyCoreApiService } from 'src/endpoint-microservice/core-api/proxy-core-api.service';
|
5
|
+
import { GetGraphqlSchemaQuery } from 'src/endpoint-microservice/graphql/queries/impl';
|
6
|
+
import { JsonSchemaType } from 'src/endpoint-microservice/shared/types/json-schema-type';
|
7
|
+
export type GetJsonSchemasReturnType = {
|
8
|
+
id: string;
|
9
|
+
versionId: string;
|
10
|
+
data: JsonSchemaType;
|
11
|
+
}[];
|
12
|
+
export declare class GetGraphqlSchemaHandler implements IQueryHandler<GetGraphqlSchemaQuery> {
|
13
|
+
private readonly internalCoreApi;
|
14
|
+
private readonly proxyCoreApi;
|
15
|
+
constructor(internalCoreApi: InternalCoreApiService, proxyCoreApi: ProxyCoreApiService);
|
16
|
+
execute({ data, }: GetGraphqlSchemaQuery): Promise<GraphQLSchema>;
|
17
|
+
private getNodeType;
|
18
|
+
private getEdgeType;
|
19
|
+
private getTableConnection;
|
20
|
+
private getTableInput;
|
21
|
+
private getQueryFields;
|
22
|
+
private getRootSchema;
|
23
|
+
private getArrayItems;
|
24
|
+
private getObjectSchema;
|
25
|
+
private getSchemas;
|
26
|
+
}
|
@@ -0,0 +1,234 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
7
|
+
};
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.GetGraphqlSchemaHandler = void 0;
|
13
|
+
const cqrs_1 = require("@nestjs/cqrs");
|
14
|
+
const type_1 = require("graphql/type");
|
15
|
+
const utilities_1 = require("graphql/utilities");
|
16
|
+
const internal_core_api_service_1 = require("../../../core-api/internal-core-api.service");
|
17
|
+
const proxy_core_api_service_1 = require("../../../core-api/proxy-core-api.service");
|
18
|
+
const impl_1 = require("../impl");
|
19
|
+
const DateTimeType = new type_1.GraphQLScalarType({
|
20
|
+
name: 'DataTime',
|
21
|
+
});
|
22
|
+
const PageInfo = new type_1.GraphQLObjectType({
|
23
|
+
name: 'PageInfo',
|
24
|
+
fields: {
|
25
|
+
startCursor: { type: type_1.GraphQLString },
|
26
|
+
endCursor: { type: type_1.GraphQLString },
|
27
|
+
hasNextPage: { type: new type_1.GraphQLNonNull(type_1.GraphQLBoolean) },
|
28
|
+
hasPreviousPage: { type: new type_1.GraphQLNonNull(type_1.GraphQLBoolean) },
|
29
|
+
},
|
30
|
+
});
|
31
|
+
const ServiceType = new type_1.GraphQLObjectType({
|
32
|
+
name: '_Service',
|
33
|
+
fields: {
|
34
|
+
sdl: { type: type_1.GraphQLString },
|
35
|
+
},
|
36
|
+
});
|
37
|
+
const DEFAULT_FIRST = 100;
|
38
|
+
let GetGraphqlSchemaHandler = class GetGraphqlSchemaHandler {
|
39
|
+
constructor(internalCoreApi, proxyCoreApi) {
|
40
|
+
this.internalCoreApi = internalCoreApi;
|
41
|
+
this.proxyCoreApi = proxyCoreApi;
|
42
|
+
}
|
43
|
+
async execute({ data, }) {
|
44
|
+
let cachedSdl = undefined;
|
45
|
+
const schema = new type_1.GraphQLSchema({
|
46
|
+
query: new type_1.GraphQLObjectType({
|
47
|
+
name: 'Query',
|
48
|
+
fields: {
|
49
|
+
...(await this.getQueryFields(data)),
|
50
|
+
_service: {
|
51
|
+
type: ServiceType,
|
52
|
+
resolve: () => {
|
53
|
+
if (!cachedSdl) {
|
54
|
+
cachedSdl = (0, utilities_1.printSchema)(schema);
|
55
|
+
}
|
56
|
+
return { sdl: cachedSdl };
|
57
|
+
},
|
58
|
+
},
|
59
|
+
},
|
60
|
+
}),
|
61
|
+
});
|
62
|
+
return schema;
|
63
|
+
}
|
64
|
+
getNodeType(data, safetyTableId) {
|
65
|
+
return new type_1.GraphQLObjectType({
|
66
|
+
name: safetyTableId,
|
67
|
+
fields: () => ({
|
68
|
+
versionId: { type: new type_1.GraphQLNonNull(type_1.GraphQLString) },
|
69
|
+
id: { type: new type_1.GraphQLNonNull(type_1.GraphQLString) },
|
70
|
+
createdAt: { type: new type_1.GraphQLNonNull(DateTimeType) },
|
71
|
+
data: {
|
72
|
+
type: this.getRootSchema(`Data${safetyTableId}`, data.data),
|
73
|
+
},
|
74
|
+
}),
|
75
|
+
});
|
76
|
+
}
|
77
|
+
getEdgeType(data, safetyTableId) {
|
78
|
+
return new type_1.GraphQLObjectType({
|
79
|
+
name: `${safetyTableId}Edge`,
|
80
|
+
fields: {
|
81
|
+
node: {
|
82
|
+
type: new type_1.GraphQLNonNull(this.getNodeType(data, safetyTableId)),
|
83
|
+
},
|
84
|
+
cursor: { type: new type_1.GraphQLNonNull(type_1.GraphQLString) },
|
85
|
+
},
|
86
|
+
});
|
87
|
+
}
|
88
|
+
getTableConnection(data, safetyTableId) {
|
89
|
+
return new type_1.GraphQLObjectType({
|
90
|
+
name: `${safetyTableId}Connection`,
|
91
|
+
fields: {
|
92
|
+
edges: {
|
93
|
+
type: new type_1.GraphQLNonNull(new type_1.GraphQLList(new type_1.GraphQLNonNull(this.getEdgeType(data, safetyTableId)))),
|
94
|
+
},
|
95
|
+
pageInfo: { type: new type_1.GraphQLNonNull(PageInfo) },
|
96
|
+
totalCount: { type: new type_1.GraphQLNonNull(type_1.GraphQLFloat) },
|
97
|
+
},
|
98
|
+
});
|
99
|
+
}
|
100
|
+
getTableInput(name) {
|
101
|
+
return new type_1.GraphQLInputObjectType({
|
102
|
+
name: `Get${name}Input`,
|
103
|
+
fields: {
|
104
|
+
first: { type: type_1.GraphQLFloat },
|
105
|
+
after: { type: type_1.GraphQLString },
|
106
|
+
},
|
107
|
+
});
|
108
|
+
}
|
109
|
+
async getQueryFields({ revisionId, }) {
|
110
|
+
const mapper = {};
|
111
|
+
for (const rowSchema of await this.getSchemas(revisionId)) {
|
112
|
+
if (isEmptyObject(rowSchema.data)) {
|
113
|
+
continue;
|
114
|
+
}
|
115
|
+
const safetyTableId = getSafetyName(rowSchema.id, 'INVALID_TABLE_NAME');
|
116
|
+
mapper[safetyTableId] = {
|
117
|
+
type: new type_1.GraphQLNonNull(this.getTableConnection(rowSchema, safetyTableId)),
|
118
|
+
args: {
|
119
|
+
data: { type: this.getTableInput(safetyTableId) },
|
120
|
+
},
|
121
|
+
resolve: async (_, { data }, context) => {
|
122
|
+
return this.proxyCoreApi.rows({
|
123
|
+
revisionId,
|
124
|
+
tableId: rowSchema.id,
|
125
|
+
first: data?.first || DEFAULT_FIRST,
|
126
|
+
after: data?.after,
|
127
|
+
}, { headers: context.headers });
|
128
|
+
},
|
129
|
+
};
|
130
|
+
}
|
131
|
+
return mapper;
|
132
|
+
}
|
133
|
+
getRootSchema(name, schema) {
|
134
|
+
switch (schema.type) {
|
135
|
+
case 'object':
|
136
|
+
return new type_1.GraphQLNonNull(this.getObjectSchema(name, schema));
|
137
|
+
case 'array':
|
138
|
+
return new type_1.GraphQLNonNull(new type_1.GraphQLList(this.getArrayItems(name, schema.items)));
|
139
|
+
case 'string':
|
140
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLString);
|
141
|
+
case 'number':
|
142
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLFloat);
|
143
|
+
case 'boolean':
|
144
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLBoolean);
|
145
|
+
default:
|
146
|
+
throw new Error('Invalid type');
|
147
|
+
}
|
148
|
+
}
|
149
|
+
getArrayItems(name, schema) {
|
150
|
+
switch (schema.type) {
|
151
|
+
case 'string':
|
152
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLString);
|
153
|
+
case 'number':
|
154
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLFloat);
|
155
|
+
case 'boolean':
|
156
|
+
return new type_1.GraphQLNonNull(type_1.GraphQLBoolean);
|
157
|
+
case 'object':
|
158
|
+
return new type_1.GraphQLNonNull(this.getObjectSchema(`${name}_Items`, schema));
|
159
|
+
case 'array':
|
160
|
+
return new type_1.GraphQLNonNull(new type_1.GraphQLList(this.getArrayItems(`${name}_Items`, schema.items)));
|
161
|
+
default:
|
162
|
+
throw new Error('Invalid type');
|
163
|
+
}
|
164
|
+
}
|
165
|
+
getObjectSchema(name, schema) {
|
166
|
+
const fields = {};
|
167
|
+
Object.entries(schema.properties)
|
168
|
+
.filter((property) => !isEmptyObject(property[1]))
|
169
|
+
.forEach(([key, itemSchema]) => {
|
170
|
+
if (getSafetyName(key, 'field') !== key) {
|
171
|
+
}
|
172
|
+
else {
|
173
|
+
if (itemSchema.type === 'string') {
|
174
|
+
fields[key] = { type: new type_1.GraphQLNonNull(type_1.GraphQLString) };
|
175
|
+
}
|
176
|
+
else if (itemSchema.type === 'number') {
|
177
|
+
fields[key] = { type: new type_1.GraphQLNonNull(type_1.GraphQLFloat) };
|
178
|
+
}
|
179
|
+
else if (itemSchema.type === 'boolean') {
|
180
|
+
fields[key] = { type: new type_1.GraphQLNonNull(type_1.GraphQLBoolean) };
|
181
|
+
}
|
182
|
+
else if (itemSchema.type === 'object') {
|
183
|
+
fields[key] = {
|
184
|
+
type: new type_1.GraphQLNonNull(this.getObjectSchema(`${name}_${key}`, itemSchema)),
|
185
|
+
};
|
186
|
+
}
|
187
|
+
else if (itemSchema.type === 'array') {
|
188
|
+
fields[key] = {
|
189
|
+
type: new type_1.GraphQLNonNull(new type_1.GraphQLList(this.getArrayItems(`${name}_${key}`, itemSchema.items))),
|
190
|
+
};
|
191
|
+
}
|
192
|
+
}
|
193
|
+
});
|
194
|
+
return new type_1.GraphQLObjectType({
|
195
|
+
name,
|
196
|
+
fields: () => fields,
|
197
|
+
});
|
198
|
+
}
|
199
|
+
async getSchemas(revisionId) {
|
200
|
+
const result = await this.internalCoreApi.rows({
|
201
|
+
revisionId,
|
202
|
+
tableId: 'schema',
|
203
|
+
first: 1000,
|
204
|
+
});
|
205
|
+
return result.edges.map((edge) => edge.node);
|
206
|
+
}
|
207
|
+
};
|
208
|
+
exports.GetGraphqlSchemaHandler = GetGraphqlSchemaHandler;
|
209
|
+
exports.GetGraphqlSchemaHandler = GetGraphqlSchemaHandler = __decorate([
|
210
|
+
(0, cqrs_1.QueryHandler)(impl_1.GetGraphqlSchemaQuery),
|
211
|
+
__metadata("design:paramtypes", [internal_core_api_service_1.InternalCoreApiService,
|
212
|
+
proxy_core_api_service_1.ProxyCoreApiService])
|
213
|
+
], GetGraphqlSchemaHandler);
|
214
|
+
const isEmptyObject = (schema) => {
|
215
|
+
if (schema.type === 'object' && !Object.keys(schema.properties).length) {
|
216
|
+
return true;
|
217
|
+
}
|
218
|
+
if (schema.type === 'array') {
|
219
|
+
return isEmptyObject(schema.items);
|
220
|
+
}
|
221
|
+
return false;
|
222
|
+
};
|
223
|
+
const startName = /[_a-zA-Z]/;
|
224
|
+
const containName = /^[_a-zA-Z0-9]+$/;
|
225
|
+
const getSafetyName = (name, prefix) => {
|
226
|
+
if (!startName.test(name[0])) {
|
227
|
+
return getSafetyName(`${prefix}_${name}`, prefix);
|
228
|
+
}
|
229
|
+
if (!containName.test(name)) {
|
230
|
+
return getSafetyName(name.replace(/[^_a-zA-Z0-9]/g, '_'), prefix);
|
231
|
+
}
|
232
|
+
return name;
|
233
|
+
};
|
234
|
+
//# sourceMappingURL=get-graphql-schema.handler.js.map
|