UNPKG

@openfisca/json-model

Version:

Library to handle informations extracted in JSON or YAML format from OpenFisca parameters, variables, etc

24 lines 4.9 kB
import { auditBoolean, auditCleanArray, auditFunction, auditRequire, auditTrimString } from "@auditors/core"; import { auditDecompositionReference } from "./decompositions.js"; export function auditWaterfall(audit, dataUnknown) { if (dataUnknown == null) { return [dataUnknown, null]; } if (typeof dataUnknown !== "object") { return audit.unexpectedType(dataUnknown, "object"); } const data = { ...dataUnknown }; const errors = {}; const remainingKeys = new Set(Object.keys(data)); audit.attribute(data, "advanced", true, errors, remainingKeys, auditBoolean, auditFunction(value => value || undefined) // Delete false. ); audit.attribute(data, "icon", true, errors, remainingKeys, auditTrimString); for (const key of ["label", "name", "root", "totalLabel"]) { audit.attribute(data, key, true, errors, remainingKeys, auditTrimString, auditRequire); } audit.attribute(data, "total", true, errors, remainingKeys, auditCleanArray(auditDecompositionReference)); return audit.reduceRemaining(data, errors, remainingKeys); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhdWRpdEJvb2xlYW4iLCJhdWRpdENsZWFuQXJyYXkiLCJhdWRpdEZ1bmN0aW9uIiwiYXVkaXRSZXF1aXJlIiwiYXVkaXRUcmltU3RyaW5nIiwiYXVkaXREZWNvbXBvc2l0aW9uUmVmZXJlbmNlIiwiYXVkaXRXYXRlcmZhbGwiLCJhdWRpdCIsImRhdGFVbmtub3duIiwidW5leHBlY3RlZFR5cGUiLCJkYXRhIiwiZXJyb3JzIiwicmVtYWluaW5nS2V5cyIsIlNldCIsIk9iamVjdCIsImtleXMiLCJhdHRyaWJ1dGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImtleSIsInJlZHVjZVJlbWFpbmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdWRpdG9ycy93YXRlcmZhbGxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEF1ZGl0LFxuICBhdWRpdEJvb2xlYW4sXG4gIGF1ZGl0Q2xlYW5BcnJheSxcbiAgYXVkaXRGdW5jdGlvbixcbiAgYXVkaXRSZXF1aXJlLFxuICBhdWRpdFRyaW1TdHJpbmcsXG59IGZyb20gXCJAYXVkaXRvcnMvY29yZVwiXG5cbmltcG9ydCB7IGF1ZGl0RGVjb21wb3NpdGlvblJlZmVyZW5jZSB9IGZyb20gXCIuL2RlY29tcG9zaXRpb25zXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGF1ZGl0V2F0ZXJmYWxsKFxuICBhdWRpdDogQXVkaXQsXG4gIGRhdGFVbmtub3duOiB1bmtub3duLFxuKTogW3Vua25vd24sIHVua25vd25dIHtcbiAgaWYgKGRhdGFVbmtub3duID09IG51bGwpIHtcbiAgICByZXR1cm4gW2RhdGFVbmtub3duLCBudWxsXVxuICB9XG4gIGlmICh0eXBlb2YgZGF0YVVua25vd24gIT09IFwib2JqZWN0XCIpIHtcbiAgICByZXR1cm4gYXVkaXQudW5leHBlY3RlZFR5cGUoZGF0YVVua25vd24sIFwib2JqZWN0XCIpXG4gIH1cblxuICBjb25zdCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHsgLi4uZGF0YVVua25vd24gfVxuICBjb25zdCBlcnJvcnM6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0ge31cbiAgY29uc3QgcmVtYWluaW5nS2V5cyA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZGF0YSkpXG5cbiAgYXVkaXQuYXR0cmlidXRlKFxuICAgIGRhdGEsXG4gICAgXCJhZHZhbmNlZFwiLFxuICAgIHRydWUsXG4gICAgZXJyb3JzLFxuICAgIHJlbWFpbmluZ0tleXMsXG4gICAgYXVkaXRCb29sZWFuLFxuICAgIGF1ZGl0RnVuY3Rpb24oKHZhbHVlKSA9PiB2YWx1ZSB8fCB1bmRlZmluZWQpLCAvLyBEZWxldGUgZmFsc2UuXG4gIClcbiAgYXVkaXQuYXR0cmlidXRlKGRhdGEsIFwiaWNvblwiLCB0cnVlLCBlcnJvcnMsIHJlbWFpbmluZ0tleXMsIGF1ZGl0VHJpbVN0cmluZylcbiAgZm9yIChjb25zdCBrZXkgb2YgW1wibGFiZWxcIiwgXCJuYW1lXCIsIFwicm9vdFwiLCBcInRvdGFsTGFiZWxcIl0pIHtcbiAgICBhdWRpdC5hdHRyaWJ1dGUoXG4gICAgICBkYXRhLFxuICAgICAga2V5LFxuICAgICAgdHJ1ZSxcbiAgICAgIGVycm9ycyxcbiAgICAgIHJlbWFpbmluZ0tleXMsXG4gICAgICBhdWRpdFRyaW1TdHJpbmcsXG4gICAgICBhdWRpdFJlcXVpcmUsXG4gICAgKVxuICB9XG4gIGF1ZGl0LmF0dHJpYnV0ZShcbiAgICBkYXRhLFxuICAgIFwidG90YWxcIixcbiAgICB0cnVlLFxuICAgIGVycm9ycyxcbiAgICByZW1haW5pbmdLZXlzLFxuICAgIGF1ZGl0Q2xlYW5BcnJheShhdWRpdERlY29tcG9zaXRpb25SZWZlcmVuY2UpLFxuICApXG5cbiAgcmV0dXJuIGF1ZGl0LnJlZHVjZVJlbWFpbmluZyhkYXRhLCBlcnJvcnMsIHJlbWFpbmluZ0tleXMpXG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBRUVBLFlBQVksRUFDWkMsZUFBZSxFQUNmQyxhQUFhLEVBQ2JDLFlBQVksRUFDWkMsZUFBZSxRQUNWLGdCQUFnQjtBQUFBLFNBRWRDLDJCQUEyQjtBQUVwQyxPQUFPLFNBQVNDLGNBQWNBLENBQzVCQyxLQUFZLEVBQ1pDLFdBQW9CLEVBQ0E7RUFDcEIsSUFBSUEsV0FBVyxJQUFJLElBQUksRUFBRTtJQUN2QixPQUFPLENBQUNBLFdBQVcsRUFBRSxJQUFJLENBQUM7RUFDNUI7RUFDQSxJQUFJLE9BQU9BLFdBQVcsS0FBSyxRQUFRLEVBQUU7SUFDbkMsT0FBT0QsS0FBSyxDQUFDRSxjQUFjLENBQUNELFdBQVcsRUFBRSxRQUFRLENBQUM7RUFDcEQ7RUFFQSxNQUFNRSxJQUFnQyxHQUFHO0lBQUUsR0FBR0Y7RUFBWSxDQUFDO0VBQzNELE1BQU1HLE1BQWtDLEdBQUcsQ0FBQyxDQUFDO0VBQzdDLE1BQU1DLGFBQWEsR0FBRyxJQUFJQyxHQUFHLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDTCxJQUFJLENBQUMsQ0FBQztFQUVoREgsS0FBSyxDQUFDUyxTQUFTLENBQ2JOLElBQUksRUFDSixVQUFVLEVBQ1YsSUFBSSxFQUNKQyxNQUFNLEVBQ05DLGFBQWEsRUFDYlosWUFBWSxFQUNaRSxhQUFhLENBQUVlLEtBQUssSUFBS0EsS0FBSyxJQUFJQyxTQUFTLENBQUMsQ0FBRTtFQUNoRCxDQUFDO0VBQ0RYLEtBQUssQ0FBQ1MsU0FBUyxDQUFDTixJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRUMsTUFBTSxFQUFFQyxhQUFhLEVBQUVSLGVBQWUsQ0FBQztFQUMzRSxLQUFLLE1BQU1lLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxFQUFFO0lBQ3pEWixLQUFLLENBQUNTLFNBQVMsQ0FDYk4sSUFBSSxFQUNKUyxHQUFHLEVBQ0gsSUFBSSxFQUNKUixNQUFNLEVBQ05DLGFBQWEsRUFDYlIsZUFBZSxFQUNmRCxZQUNGLENBQUM7RUFDSDtFQUNBSSxLQUFLLENBQUNTLFNBQVMsQ0FDYk4sSUFBSSxFQUNKLE9BQU8sRUFDUCxJQUFJLEVBQ0pDLE1BQU0sRUFDTkMsYUFBYSxFQUNiWCxlQUFlLENBQUNJLDJCQUEyQixDQUM3QyxDQUFDO0VBRUQsT0FBT0UsS0FBSyxDQUFDYSxlQUFlLENBQUNWLElBQUksRUFBRUMsTUFBTSxFQUFFQyxhQUFhLENBQUM7QUFDM0QiLCJpZ25vcmVMaXN0IjpbXX0=