"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TransientEntityProvider = void 0;
const extension_provider_1 = require("../../integration/extension.provider");
const transient_entity_interceptor_1 = require("../../interceptors/transient-entity.interceptor");
const extension_description_1 = require("./../../integration/extension-description");
const transient_entity_const_1 = require("./transient-entity.const");
const transient_entity_service_1 = require("./transient-entity.service");
const transient_node_service_1 = require("./transient-node.service");
const transient_tree_service_1 = require("./transient-tree.service");
class TransientEntityProvider extends extension_provider_1.ExtensionProvider {
    constructor(app) {
        super(transient_entity_const_1.TRANSIENT_ENTITY_PROVIDER, app);
        this.app = app;
        this.services.push({ cls: transient_entity_service_1.TransientEntityService });
        this.services.push({ cls: transient_tree_service_1.TransientTreeService });
        this.services.push({ cls: transient_node_service_1.TransientNodeService });
        this.interceptorsPrepend.push({
            id: 'TransientEntityInterceptor',
            interceptor: transient_entity_interceptor_1.TransientEntityInterceptor,
            description: {
                postTreatment: new extension_description_1.RunnerTreatmentDescription('Add transient data to returned entity(ies)', ['TransientEntityService']),
            },
        });
    }
}
exports.TransientEntityProvider = TransientEntityProvider;
//# sourceMappingURL=transient-entity.provider.js.map