"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntityDefinitionProvider = void 0;
const extension_provider_1 = require("../../integration/extension.provider");
const extension_description_1 = require("./../../integration/extension-description");
const entity_definition_interceptor_1 = require("./../../interceptors/entity-definition.interceptor");
const entity_definition_cont_1 = require("./entity-definition.cont");
const entity_definition_service_1 = require("./entity-definition.service");
const mustache_service_1 = require("./mustache.service");
const object_node_definition_service_1 = require("./object-node-definition.service");
const object_tree_definition_service_1 = require("./object-tree-definition.service");
class EntityDefinitionProvider extends extension_provider_1.ExtensionProvider {
    constructor(app) {
        super(entity_definition_cont_1.ENTITY_DEFINITION_PROVIDER, app);
        this.app = app;
        this.services.push({ cls: mustache_service_1.MustacheService });
        this.services.push({ cls: entity_definition_service_1.EntityDefinitionService });
        this.services.push({ cls: object_node_definition_service_1.ObjectNodeDefinitionService });
        this.services.push({ cls: object_tree_definition_service_1.ObjectTreeDefinitionService });
        this.interceptorsPrepend.push({
            id: 'EntityDefinitionInterceptor',
            interceptor: entity_definition_interceptor_1.EntityDefinitionInterceptor,
            description: {
                postTreatment: new extension_description_1.RunnerTreatmentDescription('Add Json Schema entity(ies) definition to returned entity(ies)', ['EntityDefinitionService']),
            },
        });
    }
}
exports.EntityDefinitionProvider = EntityDefinitionProvider;
//# sourceMappingURL=entity-definition.provider.js.map