UNPKG

@tricoteuses/assemblee

Version:

Retrieve, clean up & handle French Assemblée nationale's open data

48 lines 5.67 kB
import assert from "assert"; import { cleanXmlArtefacts } from "./xml.mjs"; export function cleanOrgane(organe) { cleanXmlArtefacts(organe); const xsiType = organe["@xsi:type"]; if (xsiType !== undefined) { organe.xsiType = xsiType; delete organe["@xsi:type"]; } const viMoDe = organe.viMoDe; cleanXmlArtefacts(viMoDe); const organeParentRef = organe.organeParent; if (organeParentRef !== undefined) { delete organe.organeParent; organe.organeParentRef = organeParentRef; } assert.strictEqual(organe.chambre, undefined); const secretariat = organe.secretariat; if (secretariat !== undefined) { cleanXmlArtefacts(secretariat); } const lieu = organe.lieu; if (lieu !== undefined) { cleanXmlArtefacts(lieu); const region = lieu.region; if (region !== undefined) { cleanXmlArtefacts(region); } const departement = lieu.departement; if (departement !== undefined) { cleanXmlArtefacts(departement); } } const couleurAssociee = organe.couleurAssociee; if (couleurAssociee === null) { delete organe.couleurAssociee; } let listePays = organe.listePays; if (listePays !== undefined) { listePays = listePays.paysRef; if (!Array.isArray(listePays)) { assert.strictEqual(typeof listePays, "string"); listePays = [listePays]; } organe.listePays = listePays; } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuT3JnYW5lIiwib3JnYW5lIiwieHNpVHlwZSIsInVuZGVmaW5lZCIsInZpTW9EZSIsIm9yZ2FuZVBhcmVudFJlZiIsIm9yZ2FuZVBhcmVudCIsInN0cmljdEVxdWFsIiwiY2hhbWJyZSIsInNlY3JldGFyaWF0IiwibGlldSIsInJlZ2lvbiIsImRlcGFydGVtZW50IiwiY291bGV1ckFzc29jaWVlIiwibGlzdGVQYXlzIiwicGF5c1JlZiIsIkFycmF5IiwiaXNBcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9vcmdhbmVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuWG1sQXJ0ZWZhY3RzIH0gZnJvbSBcIi4veG1sXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuT3JnYW5lKG9yZ2FuZTogYW55KTogdm9pZCB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKG9yZ2FuZSlcblxuICBjb25zdCB4c2lUeXBlID0gb3JnYW5lW1wiQHhzaTp0eXBlXCJdXG4gIGlmICh4c2lUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICBvcmdhbmUueHNpVHlwZSA9IHhzaVR5cGVcbiAgICBkZWxldGUgb3JnYW5lW1wiQHhzaTp0eXBlXCJdXG4gIH1cblxuICBjb25zdCB2aU1vRGUgPSBvcmdhbmUudmlNb0RlXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHZpTW9EZSlcblxuICBjb25zdCBvcmdhbmVQYXJlbnRSZWYgPSBvcmdhbmUub3JnYW5lUGFyZW50XG4gIGlmIChvcmdhbmVQYXJlbnRSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlbGV0ZSBvcmdhbmUub3JnYW5lUGFyZW50XG4gICAgb3JnYW5lLm9yZ2FuZVBhcmVudFJlZiA9IG9yZ2FuZVBhcmVudFJlZlxuICB9XG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKG9yZ2FuZS5jaGFtYnJlLCB1bmRlZmluZWQpXG5cbiAgY29uc3Qgc2VjcmV0YXJpYXQgPSBvcmdhbmUuc2VjcmV0YXJpYXRcbiAgaWYgKHNlY3JldGFyaWF0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblhtbEFydGVmYWN0cyhzZWNyZXRhcmlhdClcbiAgfVxuXG4gIGNvbnN0IGxpZXUgPSBvcmdhbmUubGlldVxuICBpZiAobGlldSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMobGlldSlcblxuICAgIGNvbnN0IHJlZ2lvbiA9IGxpZXUucmVnaW9uXG4gICAgaWYgKHJlZ2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjbGVhblhtbEFydGVmYWN0cyhyZWdpb24pXG4gICAgfVxuXG4gICAgY29uc3QgZGVwYXJ0ZW1lbnQgPSBsaWV1LmRlcGFydGVtZW50XG4gICAgaWYgKGRlcGFydGVtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGRlcGFydGVtZW50KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvdWxldXJBc3NvY2llZSA9IG9yZ2FuZS5jb3VsZXVyQXNzb2NpZWVcbiAgaWYgKGNvdWxldXJBc3NvY2llZSA9PT0gbnVsbCkge1xuICAgIGRlbGV0ZSBvcmdhbmUuY291bGV1ckFzc29jaWVlXG4gIH1cblxuICBsZXQgbGlzdGVQYXlzID0gb3JnYW5lLmxpc3RlUGF5c1xuICBpZiAobGlzdGVQYXlzICE9PSB1bmRlZmluZWQpIHtcbiAgICBsaXN0ZVBheXMgPSBsaXN0ZVBheXMucGF5c1JlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheShsaXN0ZVBheXMpKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodHlwZW9mIGxpc3RlUGF5cywgXCJzdHJpbmdcIilcbiAgICAgIGxpc3RlUGF5cyA9IFtsaXN0ZVBheXNdXG4gICAgfVxuICAgIG9yZ2FuZS5saXN0ZVBheXMgPSBsaXN0ZVBheXNcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxNQUFNLE1BQU0sUUFBUTtBQUFBLFNBRWxCQyxpQkFBaUI7QUFFMUIsT0FBTyxTQUFTQyxXQUFXQSxDQUFDQyxNQUFXLEVBQVE7RUFDN0NGLGlCQUFpQixDQUFDRSxNQUFNLENBQUM7RUFFekIsTUFBTUMsT0FBTyxHQUFHRCxNQUFNLENBQUMsV0FBVyxDQUFDO0VBQ25DLElBQUlDLE9BQU8sS0FBS0MsU0FBUyxFQUFFO0lBQ3pCRixNQUFNLENBQUNDLE9BQU8sR0FBR0EsT0FBTztJQUN4QixPQUFPRCxNQUFNLENBQUMsV0FBVyxDQUFDO0VBQzVCO0VBRUEsTUFBTUcsTUFBTSxHQUFHSCxNQUFNLENBQUNHLE1BQU07RUFDNUJMLGlCQUFpQixDQUFDSyxNQUFNLENBQUM7RUFFekIsTUFBTUMsZUFBZSxHQUFHSixNQUFNLENBQUNLLFlBQVk7RUFDM0MsSUFBSUQsZUFBZSxLQUFLRixTQUFTLEVBQUU7SUFDakMsT0FBT0YsTUFBTSxDQUFDSyxZQUFZO0lBQzFCTCxNQUFNLENBQUNJLGVBQWUsR0FBR0EsZUFBZTtFQUMxQztFQUVBUCxNQUFNLENBQUNTLFdBQVcsQ0FBQ04sTUFBTSxDQUFDTyxPQUFPLEVBQUVMLFNBQVMsQ0FBQztFQUU3QyxNQUFNTSxXQUFXLEdBQUdSLE1BQU0sQ0FBQ1EsV0FBVztFQUN0QyxJQUFJQSxXQUFXLEtBQUtOLFNBQVMsRUFBRTtJQUM3QkosaUJBQWlCLENBQUNVLFdBQVcsQ0FBQztFQUNoQztFQUVBLE1BQU1DLElBQUksR0FBR1QsTUFBTSxDQUFDUyxJQUFJO0VBQ3hCLElBQUlBLElBQUksS0FBS1AsU0FBUyxFQUFFO0lBQ3RCSixpQkFBaUIsQ0FBQ1csSUFBSSxDQUFDO0lBRXZCLE1BQU1DLE1BQU0sR0FBR0QsSUFBSSxDQUFDQyxNQUFNO0lBQzFCLElBQUlBLE1BQU0sS0FBS1IsU0FBUyxFQUFFO01BQ3hCSixpQkFBaUIsQ0FBQ1ksTUFBTSxDQUFDO0lBQzNCO0lBRUEsTUFBTUMsV0FBVyxHQUFHRixJQUFJLENBQUNFLFdBQVc7SUFDcEMsSUFBSUEsV0FBVyxLQUFLVCxTQUFTLEVBQUU7TUFDN0JKLGlCQUFpQixDQUFDYSxXQUFXLENBQUM7SUFDaEM7RUFDRjtFQUVBLE1BQU1DLGVBQWUsR0FBR1osTUFBTSxDQUFDWSxlQUFlO0VBQzlDLElBQUlBLGVBQWUsS0FBSyxJQUFJLEVBQUU7SUFDNUIsT0FBT1osTUFBTSxDQUFDWSxlQUFlO0VBQy9CO0VBRUEsSUFBSUMsU0FBUyxHQUFHYixNQUFNLENBQUNhLFNBQVM7RUFDaEMsSUFBSUEsU0FBUyxLQUFLWCxTQUFTLEVBQUU7SUFDM0JXLFNBQVMsR0FBR0EsU0FBUyxDQUFDQyxPQUFPO0lBQzdCLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNILFNBQVMsQ0FBQyxFQUFFO01BQzdCaEIsTUFBTSxDQUFDUyxXQUFXLENBQUMsT0FBT08sU0FBUyxFQUFFLFFBQVEsQ0FBQztNQUM5Q0EsU0FBUyxHQUFHLENBQUNBLFNBQVMsQ0FBQztJQUN6QjtJQUNBYixNQUFNLENBQUNhLFNBQVMsR0FBR0EsU0FBUztFQUM5QjtBQUNGIiwiaWdub3JlTGlzdCI6W119