import { APIGatewayProxyHandler } from "aws-lambda"; import axios from "axios"; import "source-map-support/register"; import { JSDOM } from "jsdom"; export const promiseList: APIGatewayProxyHandler = async (_, _context) => { const page = await axios({ url: "https://tracciailgoverno.pagellapolitica.it/it/promesse/", responseType: "document" }); const { window } = new JSDOM(page.data); const promises = window.document.querySelectorAll(".promise"); const promiseList = Array.prototype.slice.call(promises, 0); return { statusCode: 200, body: JSON.stringify( promiseList.map( prom => ({ name: prom.querySelector("h2.heading span").innerHTML, url: prom.querySelector("a[href]").href, status: prom.querySelector(".promise-status-text").innerHTML }), null, 2 ) ) }; };