@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
48 lines • 5.67 kB
JavaScript
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