@pagopa/io-spid-commons
Version:
Common code for integrating SPID authentication
51 lines • 2.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const AP = require("fp-ts/lib/Apply");
const A = require("fp-ts/lib/Array");
const function_1 = require("fp-ts/lib/function");
const O = require("fp-ts/lib/Option");
const T = require("fp-ts/lib/Task");
const TE = require("fp-ts/lib/TaskEither");
const yargs = require("yargs");
const logger_1 = require("../utils/logger");
const metadata_1 = require("../utils/metadata");
//
// parse command line
//
const argv = yargs
.option("idp-metadata-url-env", {
demandOption: false,
description: "ENV var name containing IDP Metadata URL",
normalize: true,
// eslint-disable-next-line id-blacklist
string: true,
})
.option("testenv-metadata-url-env", {
demandOption: false,
description: "ENV var name containing TestEnv2 Metadata URL",
normalize: true,
// eslint-disable-next-line id-blacklist
string: true,
})
.option("cie-metadata-url-env", {
demandOption: false,
description: "ENV var name containing CIE Metadata URL",
normalize: true,
// eslint-disable-next-line id-blacklist
string: true,
})
.help().argv;
const printIdpsMetadata = (idpsMetadataENV, testEnv2MetadataENV, cieMetadataENV) => {
// eslint-disable-next-line functional/immutable-data, @typescript-eslint/no-explicit-any, @typescript-eslint/no-empty-function
logger_1.logger.info = () => { };
const maybeIdpsMetadataURL = (0, function_1.pipe)(O.fromNullable(idpsMetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("idps", () => (0, metadata_1.fetchMetadataXML)(_)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({})));
const maybeTestEnvMetadataURL = (0, function_1.pipe)(O.fromNullable(testEnv2MetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("xx_testenv2", () => (0, metadata_1.fetchMetadataXML)(`${_}/metadata`)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({})));
const maybeCIEMetadataURL = (0, function_1.pipe)(O.fromNullable(cieMetadataENV), O.chainNullableK((_) => process.env[_]), O.map((_) => (0, function_1.pipe)(TE.Do, TE.bind("xx_servizicie", () => (0, metadata_1.fetchMetadataXML)(_)), TE.getOrElseW(() => T.of({})))), O.getOrElseW(() => T.of({})));
return (0, function_1.pipe)(AP.sequenceT(T.ApplicativePar)(maybeIdpsMetadataURL, maybeTestEnvMetadataURL, maybeCIEMetadataURL), T.map(A.reduce({}, (prev, current) => (Object.assign(Object.assign({}, prev), current)))))();
};
printIdpsMetadata(argv["idp-metadata-url-env"], argv["testenv-metadata-url-env"], argv["cie-metadata-url-env"])
// eslint-disable-next-line no-console
.then((metadata) => console.log(JSON.stringify(metadata, null, 2)))
.catch(() => logger_1.logger.error("Error fetching IDP metadata"));
//# sourceMappingURL=startup-idps-metadata.js.map