@backstage/plugin-catalog-backend-module-puppetdb
Version:
A Backstage catalog backend module that helps integrate towards PuppetDB
39 lines (35 loc) • 1.1 kB
JavaScript
;
var transformers = require('./transformers.cjs.js');
var errors = require('@backstage/errors');
var constants = require('./constants.cjs.js');
async function readPuppetNodes(config, opts) {
const transformFn = opts?.transformer ?? transformers.defaultResourceTransformer;
const url = new URL(constants.ENDPOINT_FACTSETS, config.baseUrl);
if (config.query) {
url.searchParams.set("query", config.query);
}
if (opts?.logger) {
opts.logger.debug("Reading nodes from PuppetDB", { url: url.toString() });
}
const response = await fetch(url.toString(), {
method: "GET",
headers: {
"Content-Type": "application/json",
Accept: "application/json"
}
});
if (!response.ok) {
throw await errors.ResponseError.fromResponse(response);
}
const nodes = await response.json();
const entities = [];
for (const node of nodes) {
const entity = await transformFn(node, config);
if (entity) {
entities.push(entity);
}
}
return entities;
}
exports.readPuppetNodes = readPuppetNodes;
//# sourceMappingURL=read.cjs.js.map