renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
43 lines (42 loc) • 1.63 kB
JavaScript
import { logger } from "../../../logger/index.js";
import { joinUrlParts } from "../../../util/url.js";
import { withCache } from "../../../util/cache/package/with-cache.js";
import { Datasource } from "../datasource.js";
import { datasource, registryUrl } from "./common.js";
import { EndoflifeDateVersions } from "./schema.js";
import { isNonEmptyString } from "@sindresorhus/is";
//#region lib/modules/datasource/endoflife-date/index.ts
var EndoflifeDateDatasource = class EndoflifeDateDatasource extends Datasource {
static id = datasource;
defaultRegistryUrls = [registryUrl];
caching = true;
defaultVersioning = "loose";
releaseTimestampSupport = true;
releaseTimestampNote = "The release timestamp is determined from the `releaseDate` field in the results.";
constructor() {
super(EndoflifeDateDatasource.id);
}
async _getReleases({ registryUrl, packageName }) {
if (!isNonEmptyString(registryUrl)) return null;
logger.trace(`${datasource}.getReleases(${registryUrl}, ${packageName})`);
const result = { releases: [] };
const url = joinUrlParts(registryUrl, `${packageName}.json`);
try {
const response = await this.http.getJson(url, EndoflifeDateVersions);
result.releases.push(...response.body);
return result.releases.length ? result : null;
} catch (err) {
this.handleGenericErrors(err);
}
}
getReleases(config) {
return withCache({
namespace: `datasource-${datasource}`,
key: `${config.registryUrl}:${config.packageName}`,
fallback: true
}, () => this._getReleases(config));
}
};
//#endregion
export { EndoflifeDateDatasource };
//# sourceMappingURL=index.js.map