UNPKG

@solid/community-server

Version:

Community Solid Server: an open and modular implementation of the Solid specifications

45 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigPodManager = void 0; const global_logger_factory_1 = require("global-logger-factory"); const GenerateUtil_1 = require("./generate/GenerateUtil"); /** * Pod manager that creates a store for the pod with a {@link PodGenerator} * and fills it with resources from a {@link ResourcesGenerator}. * * Part of the dynamic pod creation. * 1. Calls a PodGenerator to instantiate a new resource store for the pod. * 2. Generates the pod resources based on the templates as usual. * 3. Adds the created pod to the routing storage, which is used for linking pod identifiers to their resource stores. * * @see {@link TemplatedPodGenerator}, {@link ConfigPodInitializer}, {@link BaseUrlRouterRule} */ class ConfigPodManager { logger = (0, global_logger_factory_1.getLoggerFor)(this); podGenerator; routingStorage; resourcesGenerator; store; /** * @param podGenerator - Generator for the pod stores. * @param resourcesGenerator - Generator for the pod resources. * @param routingStorage - Where to store the generated pods so they can be routed to. * @param store - The default ResourceStore */ constructor(podGenerator, resourcesGenerator, routingStorage, store) { this.podGenerator = podGenerator; this.routingStorage = routingStorage; this.resourcesGenerator = resourcesGenerator; this.store = store; } async createPod(settings) { this.logger.info(`Creating pod ${settings.base.path}`); // Will error in case there already is a store for the given identifier const store = await this.podGenerator.generate(settings); await this.routingStorage.set(settings.base.path, store); const count = await (0, GenerateUtil_1.addGeneratedResources)(settings, this.resourcesGenerator, this.store); this.logger.info(`Added ${count} resources to ${settings.base.path}`); } } exports.ConfigPodManager = ConfigPodManager; //# sourceMappingURL=ConfigPodManager.js.map