UNPKG

@tricoteuses/assemblee

Version:

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

62 lines 8.18 kB
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import { glob } from "glob"; import fs from "fs-extra"; import path from "path"; export function* walkDir(rootDir, relativeSplitDir = []) { const dir = path.join(rootDir, ...relativeSplitDir); if (!fs.existsSync(dir)) { return; } for (const filename of fs.readdirSync(dir)) { if (filename[0] === ".") { continue; } const filePath = path.join(dir, filename); const relativeSplitPath = [...relativeSplitDir, filename]; if (fs.statSync(filePath).isDirectory()) { yield* walkDir(rootDir, relativeSplitPath); } else { yield relativeSplitPath; } } } export function load(path) { const rawjson = fs.readFileSync(path, { encoding: "utf8" }); return JSON.parse(rawjson); } export function write(something, filename) { const content = JSON.stringify(something, null, 2); fs.ensureDirSync(path.dirname(filename)); fs.writeFileSync(filename, content, { encoding: "utf8" }); } export class GetFileNotFoundError { constructor(message) { _defineProperty(this, "message", void 0); this.message = message; } } export function getFiles(args) { let files = []; function _getFiles(fileOrPattern) { if (glob.hasMagic(fileOrPattern)) { const dataFiles = glob.globSync(fileOrPattern, { cwd: process.cwd() }); // Note: When a legislature ends, the subdirectory of "acteurs" in AMO10 or AMO40 // may be empty (no more député). if (dataFiles.length > 0) files = files.concat(dataFiles); } else { files.push(fileOrPattern); if (!fs.existsSync(fileOrPattern)) throw new GetFileNotFoundError(`${fileOrPattern} file does not exist`); } } args.forEach(_getFiles); return files; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnbG9iIiwiZnMiLCJwYXRoIiwid2Fsa0RpciIsInJvb3REaXIiLCJyZWxhdGl2ZVNwbGl0RGlyIiwiZGlyIiwiam9pbiIsImV4aXN0c1N5bmMiLCJmaWxlbmFtZSIsInJlYWRkaXJTeW5jIiwiZmlsZVBhdGgiLCJyZWxhdGl2ZVNwbGl0UGF0aCIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJsb2FkIiwicmF3anNvbiIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiSlNPTiIsInBhcnNlIiwid3JpdGUiLCJzb21ldGhpbmciLCJjb250ZW50Iiwic3RyaW5naWZ5IiwiZW5zdXJlRGlyU3luYyIsImRpcm5hbWUiLCJ3cml0ZUZpbGVTeW5jIiwiR2V0RmlsZU5vdEZvdW5kRXJyb3IiLCJjb25zdHJ1Y3RvciIsIm1lc3NhZ2UiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRGaWxlcyIsImFyZ3MiLCJmaWxlcyIsIl9nZXRGaWxlcyIsImZpbGVPclBhdHRlcm4iLCJoYXNNYWdpYyIsImRhdGFGaWxlcyIsImdsb2JTeW5jIiwiY3dkIiwicHJvY2VzcyIsImxlbmd0aCIsImNvbmNhdCIsInB1c2giLCJmb3JFYWNoIl0sInNvdXJjZXMiOlsiLi4vc3JjL2ZpbGVfc3lzdGVtcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnbG9iIH0gZnJvbSBcImdsb2JcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBmdW5jdGlvbiogd2Fsa0RpcihcbiAgcm9vdERpcjogc3RyaW5nLFxuICByZWxhdGl2ZVNwbGl0RGlyOiBzdHJpbmdbXSA9IFtdLFxuKTogSXRlcmFibGU8c3RyaW5nW10+IHtcbiAgY29uc3QgZGlyID0gcGF0aC5qb2luKHJvb3REaXIsIC4uLnJlbGF0aXZlU3BsaXREaXIpXG5cbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZvciAoY29uc3QgZmlsZW5hbWUgb2YgZnMucmVhZGRpclN5bmMoZGlyKSkge1xuICAgIGlmIChmaWxlbmFtZVswXSA9PT0gXCIuXCIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpciwgZmlsZW5hbWUpXG4gICAgY29uc3QgcmVsYXRpdmVTcGxpdFBhdGggPSBbLi4ucmVsYXRpdmVTcGxpdERpciwgZmlsZW5hbWVdXG4gICAgaWYgKGZzLnN0YXRTeW5jKGZpbGVQYXRoKS5pc0RpcmVjdG9yeSgpKSB7XG4gICAgICB5aWVsZCogd2Fsa0Rpcihyb290RGlyLCByZWxhdGl2ZVNwbGl0UGF0aClcbiAgICB9IGVsc2Uge1xuICAgICAgeWllbGQgcmVsYXRpdmVTcGxpdFBhdGhcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgY29uc3QgcmF3anNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHBhdGgsIHtcbiAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gIH0pXG4gIHJldHVybiBKU09OLnBhcnNlKHJhd2pzb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZShzb21ldGhpbmc6IGFueSwgZmlsZW5hbWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IGNvbnRlbnQgPSBKU09OLnN0cmluZ2lmeShzb21ldGhpbmcsIG51bGwsIDIpXG4gIGZzLmVuc3VyZURpclN5bmMocGF0aC5kaXJuYW1lKGZpbGVuYW1lKSlcbiAgZnMud3JpdGVGaWxlU3luYyhmaWxlbmFtZSwgY29udGVudCwge1xuICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgfSlcbn1cblxuZXhwb3J0IGNsYXNzIEdldEZpbGVOb3RGb3VuZEVycm9yIHtcbiAgbWVzc2FnZTogc3RyaW5nXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlcyhhcmdzOiBhbnkpOiBhbnkge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdID0gW11cbiAgZnVuY3Rpb24gX2dldEZpbGVzKGZpbGVPclBhdHRlcm46IGFueSkge1xuICAgIGlmIChnbG9iLmhhc01hZ2ljKGZpbGVPclBhdHRlcm4pKSB7XG4gICAgICBjb25zdCBkYXRhRmlsZXMgPSBnbG9iLmdsb2JTeW5jKGZpbGVPclBhdHRlcm4sIHsgY3dkOiBwcm9jZXNzLmN3ZCgpIH0pXG4gICAgICAvLyBOb3RlOiBXaGVuIGEgbGVnaXNsYXR1cmUgZW5kcywgdGhlIHN1YmRpcmVjdG9yeSBvZiBcImFjdGV1cnNcIiBpbiBBTU8xMCBvciBBTU80MFxuICAgICAgLy8gbWF5IGJlIGVtcHR5IChubyBtb3JlIGTDqXB1dMOpKS5cbiAgICAgIGlmIChkYXRhRmlsZXMubGVuZ3RoID4gMCkgZmlsZXMgPSBmaWxlcy5jb25jYXQoZGF0YUZpbGVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBmaWxlcy5wdXNoKGZpbGVPclBhdHRlcm4pXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZU9yUGF0dGVybikpXG4gICAgICAgIHRocm93IG5ldyBHZXRGaWxlTm90Rm91bmRFcnJvcihgJHtmaWxlT3JQYXR0ZXJufSBmaWxlIGRvZXMgbm90IGV4aXN0YClcbiAgICB9XG4gIH1cbiAgYXJncy5mb3JFYWNoKF9nZXRGaWxlcylcbiAgcmV0dXJuIGZpbGVzXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLElBQUksUUFBUSxNQUFNO0FBQzNCLE9BQU9DLEVBQUUsTUFBTSxVQUFVO0FBQ3pCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBRXZCLE9BQU8sVUFBVUMsT0FBT0EsQ0FDdEJDLE9BQWUsRUFDZkMsZ0JBQTBCLEdBQUcsRUFBRSxFQUNYO0VBQ3BCLE1BQU1DLEdBQUcsR0FBR0osSUFBSSxDQUFDSyxJQUFJLENBQUNILE9BQU8sRUFBRSxHQUFHQyxnQkFBZ0IsQ0FBQztFQUVuRCxJ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