UNPKG

@tricoteuses/assemblee

Version:

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

74 lines (71 loc) 9.02 kB
"use strict"; require("core-js/modules/es.object.define-property.js"); Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanBooleanAttribute = cleanBooleanAttribute; exports.cleanIntegerAttribute = cleanIntegerAttribute; exports.cleanXmlArtefacts = cleanXmlArtefacts; require("core-js/modules/es.array.concat.js"); require("core-js/modules/es.array.is-array.js"); require("core-js/modules/es.number.is-nan.js"); require("core-js/modules/es.number.parse-int.js"); require("core-js/modules/es.object.keys.js"); var _nodeAssert = _interopRequireDefault(require("node:assert")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } // Move constant to module scope to avoid recreation var BOOLEAN_MAP = { "false": false, "true": true }; var XML_NAMESPACE = "http://schemas.assemblee-nationale.fr/referentiel"; var XSI_NAMESPACE = "http://www.w3.org/2001/XMLSchema-instance"; function cleanBooleanAttribute(o, key) { var stringValue = o[key]; if (stringValue === undefined || stringValue === null) { delete o[key]; return undefined; } var booleanValue = BOOLEAN_MAP[stringValue]; _nodeAssert["default"].notStrictEqual(booleanValue, undefined, "Invalid boolean value: ".concat(key, " = ").concat(stringValue)); o[key] = booleanValue; return booleanValue; } function cleanIntegerAttribute(o, key) { var stringValue = o[key]; if (stringValue === undefined || stringValue === null) { delete o[key]; return undefined; } var integerValue = Number.parseInt(stringValue); (0, _nodeAssert["default"])(!Number.isNaN(integerValue), "Invalid number value: ".concat(key, " = ").concat(stringValue)); o[key] = integerValue; return integerValue; } /// Remove XML fields that have no use in JSON. function cleanXmlArtefacts(o) { var _o$Xmlns; // Optimize namespace checks with direct property access var xmlns = (_o$Xmlns = o["@xmlns"]) !== null && _o$Xmlns !== void 0 ? _o$Xmlns : o["xmlns"]; if (xmlns !== undefined) { _nodeAssert["default"].strictEqual(xmlns, XML_NAMESPACE); delete o["@xmlns"]; delete o["xmlns"]; } if (o["@xmlns:xsi"] === XSI_NAMESPACE) { delete o["@xmlns:xsi"]; } // Optimize empty checks with direct property access for (var key in o) { var value = o[key]; if (value === null) { delete o[key]; continue; } if (value === undefined) continue; if (value["@xsi:nil"] === "true" || Array.isArray(value) && value.length === 0 || !Array.isArray(value) && value.constructor === Object && Object.keys(value).length === 0) { delete o[key]; } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUFzc2VydCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJCT09MRUFOX01BUCIsIlhNTF9OQU1FU1BBQ0UiLCJYU0lfTkFNRVNQQUNFIiwiY2xlYW5Cb29sZWFuQXR0cmlidXRlIiwibyIsImtleSIsInN0cmluZ1ZhbHVlIiwidW5kZWZpbmVkIiwiYm9vbGVhblZhbHVlIiwiYXNzZXJ0Iiwibm90U3RyaWN0RXF1YWwiLCJjb25jYXQiLCJjbGVhbkludGVnZXJBdHRyaWJ1dGUiLCJpbnRlZ2VyVmFsdWUiLCJOdW1iZXIiLCJwYXJzZUludCIsImlzTmFOIiwiY2xlYW5YbWxBcnRlZmFjdHMiLCJfbyRYbWxucyIsInhtbG5zIiwic3RyaWN0RXF1YWwiLCJ2YWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImNvbnN0cnVjdG9yIiwiT2JqZWN0Iiwia2V5cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy94bWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwibm9kZTphc3NlcnRcIlxuXG4vLyBNb3ZlIGNvbnN0YW50IHRvIG1vZHVsZSBzY29wZSB0byBhdm9pZCByZWNyZWF0aW9uXG5jb25zdCBCT09MRUFOX01BUCA9IHtcbiAgZmFsc2U6IGZhbHNlLFxuICB0cnVlOiB0cnVlLFxufSBhcyBjb25zdFxuXG5jb25zdCBYTUxfTkFNRVNQQUNFID0gXCJodHRwOi8vc2NoZW1hcy5hc3NlbWJsZWUtbmF0aW9uYWxlLmZyL3JlZmVyZW50aWVsXCJcbmNvbnN0IFhTSV9OQU1FU1BBQ0UgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShcbiAgbzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAga2V5OiBzdHJpbmcsXG4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSBvW2tleV1cbiAgaWYgKHN0cmluZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgc3RyaW5nVmFsdWUgPT09IG51bGwpIHtcbiAgICBkZWxldGUgb1trZXldXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGJvb2xlYW5WYWx1ZTogYm9vbGVhbiA9XG4gICAgQk9PTEVBTl9NQVBbc3RyaW5nVmFsdWUgYXMga2V5b2YgdHlwZW9mIEJPT0xFQU5fTUFQXVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgYm9vbGVhblZhbHVlLFxuICAgIHVuZGVmaW5lZCxcbiAgICBgSW52YWxpZCBib29sZWFuIHZhbHVlOiAke2tleX0gPSAke3N0cmluZ1ZhbHVlfWAsXG4gIClcbiAgb1trZXldID0gYm9vbGVhblZhbHVlXG4gIHJldHVybiBib29sZWFuVmFsdWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuSW50ZWdlckF0dHJpYnV0ZShcbiAgbzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAga2V5OiBzdHJpbmcsXG4pOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICBjb25zdCBzdHJpbmdWYWx1ZSA9IG9ba2V5XVxuICBpZiAoc3RyaW5nVmFsdWUgPT09IHVuZGVmaW5lZCB8fCBzdHJpbmdWYWx1ZSA9PT0gbnVsbCkge1xuICAgIGRlbGV0ZSBvW2tleV1cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbiAgY29uc3QgaW50ZWdlclZhbHVlID0gTnVtYmVyLnBhcnNlSW50KHN0cmluZ1ZhbHVlKVxuICBhc3NlcnQoXG4gICAgIU51bWJlci5pc05hTihpbnRlZ2VyVmFsdWUpLFxuICAgIGBJbnZhbGlkIG51bWJlciB2YWx1ZTogJHtrZXl9ID0gJHtzdHJpbmdWYWx1ZX1gLFxuICApXG4gIG9ba2V5XSA9IGludGVnZXJWYWx1ZVxuICByZXR1cm4gaW50ZWdlclZhbHVlXG59XG5cbi8vLyBSZW1vdmUgWE1MIGZpZWxkcyB0aGF0IGhhdmUgbm8gdXNlIGluIEpTT04uXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5YbWxBcnRlZmFjdHMobzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHZvaWQge1xuICAvLyBPcHRpbWl6ZSBuYW1lc3BhY2UgY2hlY2tzIHdpdGggZGlyZWN0IHByb3BlcnR5IGFjY2Vzc1xuICBjb25zdCB4bWxucyA9IG9bXCJAeG1sbnNcIl0gPz8gb1tcInhtbG5zXCJdXG4gIGlmICh4bWxucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHhtbG5zLCBYTUxfTkFNRVNQQUNFKVxuICAgIGRlbGV0ZSBvW1wiQHhtbG5zXCJdXG4gICAgZGVsZXRlIG9bXCJ4bWxuc1wiXVxuICB9XG5cbiAgaWYgKG9bXCJAeG1sbnM6eHNpXCJdID09PSBYU0lfTkFNRVNQQUNFKSB7XG4gICAgZGVsZXRlIG9bXCJAeG1sbnM6eHNpXCJdXG4gIH1cblxuICAvLyBPcHRpbWl6ZSBlbXB0eSBjaGVja3Mgd2l0aCBkaXJlY3QgcHJvcGVydHkgYWNjZXNzXG4gIGZvciAoY29uc3Qga2V5IGluIG8pIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9ba2V5XVxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgZGVsZXRlIG9ba2V5XVxuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgY29udGludWVcblxuICAgIGlmIChcbiAgICAgIHZhbHVlW1wiQHhzaTpuaWxcIl0gPT09IFwidHJ1ZVwiIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB8fFxuICAgICAgKCFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgICAgICB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0ICYmXG4gICAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDApXG4gICAgKSB7XG4gICAgICBkZWxldGUgb1trZXldXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQWdDLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFFaEM7QUFDQSxJQUFNRSxXQUFXLEdBQUc7RUFDbEIsU0FBTyxLQUFLO0VBQ1osUUFBTTtBQUNSLENBQVU7QUFFVixJQUFNQyxhQUFhLEdBQUcsbURBQW1EO0FBQ3pFLElBQU1DLGFBQWEsR0FBRywyQ0FBMkM7QUFFMUQsU0FBU0MscUJBQXFCQSxDQUNuQ0MsQ0FBeUIsRUFDekJDLEdBQVcsRUFDVTtFQUNyQixJQUFNQyxXQUFXLEdBQUdGLENBQUMsQ0FBQ0MsR0FBRyxDQUFDO0VBQzFCLElBQUlDLFdBQVcsS0FBS0MsU0FBUyxJQUFJRCxXQUFXLEtBQUssSUFBSSxFQUFFO0lBQ3JELE9BQU9GLENBQUMsQ0FBQ0MsR0FBRyxDQUFDO0lBQ2IsT0FBT0UsU0FBUztFQUNsQjtFQUNBLElBQU1DLFlBQXFCLEdBQ3pCUixXQUFXLENBQUNNLFdBQVcsQ0FBNkI7RUFDdERHLHNCQUFNLENBQUNDLGNBQWMsQ0FDbkJGLFlBQVksRUFDWkQsU0FBUyw0QkFBQUksTUFBQSxDQUNpQk4sR0FBRyxTQUFBTSxNQUFBLENBQU1MLFdBQVcsQ0FDaEQsQ0FBQztFQUNERixDQUFDLENBQUNDLEdBQUcsQ0FBQyxHQUFHRyxZQUFZO0VBQ3JCLE9BQU9BLFlBQVk7QUFDckI7QUFFTyxTQUFTSSxxQkFBcUJBLENBQ25DUixDQUF5QixFQUN6QkMsR0FBVyxFQUNTO0VBQ3BCLElBQU1DLFdBQVcsR0FBR0YsQ0FBQyxDQUFDQyxHQUFHLENBQUM7RUFDMUIsSUFBSUMsV0FBVyxLQUFLQyxTQUFTLElBQUlELFdBQVcsS0FBSyxJQUFJLEVBQUU7SUFDckQsT0FBT0YsQ0FBQyxDQUFDQyxHQUFHLENBQUM7SUFDYixPQUFPRSxTQUFTO0VBQ2xCO0VBQ0EsSUFBTU0sWUFBWSxHQUFHQyxNQUFNLENBQUNDLFFBQVEsQ0FBQ1QsV0FBVyxDQUFDO0VBQ2pELElBQUFHLHNCQUFNLEVBQ0osQ0FBQ0ssTUFBTSxDQUFDRSxLQUFLLENBQUNILFlBQVksQ0FBQywyQkFBQUYsTUFBQSxDQUNGTixHQUFHLFNBQUFNLE1BQUEsQ0FBTUwsV0FBVyxDQUMvQyxDQUFDO0VBQ0RGLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLEdBQUdRLFlBQVk7RUFDckIsT0FBT0EsWUFBWTtBQUNyQjs7QUFFQTtBQUNPLFNBQVNJLGlCQUFpQkEsQ0FBQ2IsQ0FBeUIsRUFBUTtFQUFBLElBQUFjLFFBQUE7RUFDakU7RUFDQSxJQUFNQyxLQUFLLElBQUFELFFBQUEsR0FBR2QsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFBYyxRQUFBLGNBQUFBLFFBQUEsR0FBSWQsQ0FBQyxDQUFDLE9BQU8sQ0FBQztFQUN2QyxJQUFJZSxLQUFLLEtBQUtaLFNBQVMsRUFBRTtJQUN2QkUsc0JBQU0sQ0FBQ1csV0FBVyxDQUFDRCxLQUFLLEVBQUVsQixhQUFhLENBQUM7SUFDeEMsT0FBT0csQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNsQixPQUFPQSxDQUFDLENBQUMsT0FBTyxDQUFDO0VBQ25CO0VBRUEsSUFBSUEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLRixhQUFhLEVBQUU7SUFDckMsT0FBT0UsQ0FBQyxDQUFDLFlBQVksQ0FBQztFQUN4Qjs7RUFFQTtFQUNBLEtBQUssSUFBTUMsR0FBRyxJQUFJRCxDQUFDLEVBQUU7SUFDbkIsSUFBTWlCLEtBQUssR0FBR2pCLENBQUMsQ0FBQ0MsR0FBRyxDQUFDO0lBQ3BCLElBQUlnQixLQUFLLEtBQUssSUFBSSxFQUFFO01BQ2xCLE9BQU9qQixDQUFDLENBQUNDLEdBQUcsQ0FBQztNQUNiO0lBQ0Y7SUFFQSxJQUFJZ0IsS0FBSyxLQUFLZCxTQUFTLEVBQUU7SUFFekIsSUFDRWMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFDM0JDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixLQUFLLENBQUMsSUFBSUEsS0FBSyxDQUFDRyxNQUFNLEtBQUssQ0FBRSxJQUMzQyxDQUFDRixLQUFLLENBQUNDLE9BQU8sQ0FBQ0YsS0FBSyxDQUFDLElBQ3BCQSxLQUFLLENBQUNJLFdBQVcsS0FBS0MsTUFBTSxJQUM1QkEsTUFBTSxDQUFDQyxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDRyxNQUFNLEtBQUssQ0FBRSxFQUNsQztNQUNBLE9BQU9wQixDQUFDLENBQUNDLEdBQUcsQ0FBQztJQUNmO0VBQ0Y7QUFDRiIsImlnbm9yZUxpc3QiOltdfQ==