UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

56 lines 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HexDatasource = void 0; const tslib_1 = require("tslib"); const logger_1 = require("../../../logger"); const decorator_1 = require("../../../util/cache/package/decorator"); const url_1 = require("../../../util/url"); const hexVersioning = tslib_1.__importStar(require("../../versioning/hex")); const datasource_1 = require("../datasource"); const schema_1 = require("./schema"); class HexDatasource extends datasource_1.Datasource { static id = 'hex'; constructor() { super(HexDatasource.id); } defaultRegistryUrls = ['https://hex.pm']; defaultVersioning = hexVersioning.id; releaseTimestampSupport = true; releaseTimestampNote = 'The release timestamp is determined the `inserted_at` field in the results.'; sourceUrlSupport = 'package'; sourceUrlNote = 'The source URL is determined from the `Github` field in the results.'; async getReleases({ packageName, registryUrl, }) { /* v8 ignore next 3 -- should never happen */ if (!registryUrl) { return null; } // Get dependency name from packageName. // If the dependency is private packageName contains organization name as following: // hexPackageName:organizationName // hexPackageName is used to pass it in hex dep url // organizationName is used for accessing to private deps const [hexPackageName, organizationName] = packageName.split(':'); const organizationUrlPrefix = organizationName ? `repos/${organizationName}/` : ''; const hexUrl = (0, url_1.joinUrlParts)(registryUrl, `/api/${organizationUrlPrefix}packages/${hexPackageName}`); const { val: result, err } = await this.http .getJsonSafe(hexUrl, schema_1.HexRelease) .onError((err) => { logger_1.logger.warn({ url: hexUrl, datasource: 'hex', packageName, err }, 'Error fetching from url'); }) .unwrap(); if (err) { this.handleGenericErrors(err); } return result; } } exports.HexDatasource = HexDatasource; tslib_1.__decorate([ (0, decorator_1.cache)({ namespace: `datasource-${HexDatasource.id}`, key: ({ packageName }) => packageName, }) ], HexDatasource.prototype, "getReleases", null); //# sourceMappingURL=index.js.map