UNPKG

@backstage/plugin-techdocs-node

Version:

Common node.js functionalities for TechDocs, to be shared between techdocs-backend plugin and techdocs-cli

47 lines (43 loc) 1.22 kB
'use strict'; var errors = require('@backstage/errors'); var helpers = require('../../helpers.cjs.js'); class UrlPreparer { logger; reader; /** * Returns a directory preparer instance * @param config - A URL preparer config containing the a logger and reader */ static fromConfig(options) { return new UrlPreparer(options.reader, options.logger); } constructor(reader, logger) { this.logger = logger; this.reader = reader; } /** {@inheritDoc PreparerBase.shouldCleanPreparedDirectory} */ shouldCleanPreparedDirectory() { return true; } /** {@inheritDoc PreparerBase.prepare} */ async prepare(entity, options) { try { return await helpers.getDocFilesFromRepository(this.reader, entity, { etag: options?.etag, logger: this.logger }); } catch (error) { errors.assertError(error); if (error.name === "NotModifiedError") { this.logger.debug(`Cache is valid for etag ${options?.etag}`); } else { this.logger.debug( `Unable to fetch files for building docs ${error.message}` ); } throw error; } } } exports.UrlPreparer = UrlPreparer; //# sourceMappingURL=url.cjs.js.map