lambdaorm-base
Version:
30 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SchemaFacadeBuilder = void 0;
const application_1 = require("../application");
const schemaService_1 = require("../application/services/schemaService");
const interpretSchemaDataService_1 = require("../application/services/interpretSchemaDataService");
const fileSchemaService_1 = require("./fileSchemaService");
const schemaFileHelper_1 = require("./schemaFileHelper");
class SchemaFacadeBuilder {
// eslint-disable-next-line no-useless-constructor
constructor(exp, helper) {
this.exp = exp;
this.helper = helper;
}
build() {
const schemaService = new schemaService_1.SchemaService();
const createEntitiesService = new application_1.CreateEntitiesService(this.helper.schema);
const interpretSchemaDataService = new interpretSchemaDataService_1.InterpretSchemaDataService(this.helper.schema);
const extender = new application_1.SchemaExtender(this.exp, this.helper);
const createSchema = new application_1.CreateSchema(schemaService);
const initializeSchema = new application_1.InitializeSchema(schemaService);
const updateSchema = new application_1.UpdateSchema(createEntitiesService);
const matchSchema = new application_1.MatchSchema(schemaService, this.helper.schema);
const getSchemaData = new application_1.GetSchemaSchema(interpretSchemaDataService);
const fileSchemaService = new fileSchemaService_1.FileSchemaService(new schemaFileHelper_1.SchemaFileHelper(this.helper), this.helper);
return new application_1.SchemaFacade(schemaService, getSchemaData, extender, createSchema, initializeSchema, updateSchema, matchSchema, fileSchemaService);
}
}
exports.SchemaFacadeBuilder = SchemaFacadeBuilder;
//# sourceMappingURL=facadeBuilder.js.map