"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.LocalDeployApplication = void 0;
const tslib_1 = require("tslib");
const boot_1 = require("@loopback/boot");
const repository_1 = require("@loopback/repository");
const service_proxy_1 = require("@loopback/service-proxy");
const path_1 = tslib_1.__importDefault(require("path"));
const application_1 = require("./application");
const constants_1 = require("./constants");
const artist_web_site_provider_1 = require("./extensions/artist-web-site/artist-web-site.provider");
const content_image_thumb_provider_1 = require("./extensions/content-image-thumb/content-image-thumb.provider");
const home_page_provider_1 = require("./extensions/home-page/home-page.provider");
const post_provider_1 = require("./extensions/post/post.provider");
const travel_story_type_provider_1 = require("./extensions/travel-story/travel-story-type.provider");
const web_site_provider_1 = require("./extensions/web-site/web-site.provider");
class LocalDeployApplication extends boot_1.BootMixin(service_proxy_1.ServiceMixin(repository_1.RepositoryMixin(application_1.ObjectTreesApplication))) {
    constructor(options = {}) {
        options.extensions = [
            web_site_provider_1.WebSiteProvider,
            post_provider_1.PostTypeProvider,
            travel_story_type_provider_1.TravelStoryTypeProvider,
            artist_web_site_provider_1.ArtistWebSiteProvider,
            content_image_thumb_provider_1.ContentImageThumbProvider,
            home_page_provider_1.HomePageProvider,
        ];
        super(options);
        // eslint-disable-next-line @typescript-eslint/no-this-alias
        const app = this;
        // Set up default home page
        const destination = path_1.default.join(__dirname, '../.storage');
        app.bind(constants_1.STORAGE_DIRECTORY).to(destination);
        app.projectRoot = __dirname;
    }
    async boot() {
        await super.boot();
    }
}
exports.LocalDeployApplication = LocalDeployApplication;
//# sourceMappingURL=local.js.map