UNPKG

@openfisca/json-model

Version:

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

23 lines 5.86 kB
import { auditKeyValueDictionary, auditOptions, auditRequire, auditTrimString } from "@auditors/core"; import { revaluationTypes } from "../../parameters.js"; import { auditReferencesByDate } from "../references.js"; const auditParameterCustomization = parametersNames => (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, "inflator", true, errors, remainingKeys, auditTrimString, auditOptions(parametersNames)); audit.attribute(data, "revaluation_inflator_reference", true, errors, remainingKeys, auditReferencesByDate); audit.attribute(data, "revaluation_reference", true, errors, remainingKeys, auditReferencesByDate); audit.attribute(data, "revaluation_type", true, errors, remainingKeys, auditTrimString, auditOptions(revaluationTypes)); return audit.reduceRemaining(data, errors, remainingKeys); }; export const auditParameterCustomizationByName = parametersNames => auditKeyValueDictionary([auditTrimString, auditOptions(parametersNames)], [auditParameterCustomization(parametersNames), auditRequire]); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhdWRpdEtleVZhbHVlRGljdGlvbmFyeSIsImF1ZGl0T3B0aW9ucyIsImF1ZGl0UmVxdWlyZSIsImF1ZGl0VHJpbVN0cmluZyIsInJldmFsdWF0aW9uVHlwZXMiLCJhdWRpdFJlZmVyZW5jZXNCeURhdGUiLCJhdWRpdFBhcmFtZXRlckN1c3RvbWl6YXRpb24iLCJwYXJhbWV0ZXJzTmFtZXMiLCJhdWRpdCIsImRhdGFVbmtub3duIiwidW5leHBlY3RlZFR5cGUiLCJkYXRhIiwiZXJyb3JzIiwicmVtYWluaW5nS2V5cyIsIlNldCIsIk9iamVjdCIsImtleXMiLCJhdHRyaWJ1dGUiLCJyZWR1Y2VSZW1haW5pbmciLCJhdWRpdFBhcmFtZXRlckN1c3RvbWl6YXRpb25CeU5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXVkaXRvcnMvcGFyYW1ldGVycy9jdXN0b21pemF0aW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBdWRpdCxcbiAgYXVkaXRLZXlWYWx1ZURpY3Rpb25hcnksXG4gIGF1ZGl0T3B0aW9ucyxcbiAgdHlwZSBBdWRpdG9yLFxuICBhdWRpdFJlcXVpcmUsXG4gIGF1ZGl0VHJpbVN0cmluZyxcbn0gZnJvbSBcIkBhdWRpdG9ycy9jb3JlXCJcblxuaW1wb3J0IHsgcmV2YWx1YXRpb25UeXBlcyB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJzXCJcbmltcG9ydCB7IGF1ZGl0UmVmZXJlbmNlc0J5RGF0ZSB9IGZyb20gXCIuLi9yZWZlcmVuY2VzXCJcblxuY29uc3QgYXVkaXRQYXJhbWV0ZXJDdXN0b21pemF0aW9uID1cbiAgKHBhcmFtZXRlcnNOYW1lczogc3RyaW5nW10pOiBBdWRpdG9yID0+XG4gIChhdWRpdDogQXVkaXQsIGRhdGFVbmtub3duOiB1bmtub3duKTogW3Vua25vd24sIHVua25vd25dID0+IHtcbiAgICBpZiAoZGF0YVVua25vd24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtkYXRhVW5rbm93biwgbnVsbF1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkYXRhVW5rbm93biAhPT0gXCJvYmplY3RcIikge1xuICAgICAgcmV0dXJuIGF1ZGl0LnVuZXhwZWN0ZWRUeXBlKGRhdGFVbmtub3duLCBcIm9iamVjdFwiKVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGE6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0geyAuLi5kYXRhVW5rbm93biB9XG4gICAgY29uc3QgZXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSA9IHt9XG4gICAgY29uc3QgcmVtYWluaW5nS2V5cyA9IG5ldyBTZXQoT2JqZWN0LmtleXMoZGF0YSkpXG5cbiAgICBhdWRpdC5hdHRyaWJ1dGUoXG4gICAgICBkYXRhLFxuICAgICAgXCJpbmZsYXRvclwiLFxuICAgICAgdHJ1ZSxcbiAgICAgIGVycm9ycyxcbiAgICAgIHJlbWFpbmluZ0tleXMsXG4gICAgICBhdWRpdFRyaW1TdHJpbmcsXG4gICAgICBhdWRpdE9wdGlvbnMocGFyYW1ldGVyc05hbWVzKSxcbiAgICApXG4gICAgYXVkaXQuYXR0cmlidXRlKFxuICAgICAgZGF0YSxcbiAgICAgIFwicmV2YWx1YXRpb25faW5mbGF0b3JfcmVmZXJlbmNlXCIsXG4gICAgICB0cnVlLFxuICAgICAgZXJyb3JzLFxuICAgICAgcmVtYWluaW5nS2V5cyxcbiAgICAgIGF1ZGl0UmVmZXJlbmNlc0J5RGF0ZSxcbiAgICApXG4gICAgYXVkaXQuYXR0cmlidXRlKFxuICAgICAgZGF0YSxcbiAgICAgIFwicmV2YWx1YXRpb25fcmVmZXJlbmNlXCIsXG4gICAgICB0cnVlLFxuICAgICAgZXJyb3JzLFxuICAgICAgcmVtYWluaW5nS2V5cyxcbiAgICAgIGF1ZGl0UmVmZXJlbmNlc0J5RGF0ZSxcbiAgICApXG4gICAgYXVkaXQuYXR0cmlidXRlKFxuICAgICAgZGF0YSxcbiAgICAgIFwicmV2YWx1YXRpb25fdHlwZVwiLFxuICAgICAgdHJ1ZSxcbiAgICAgIGVycm9ycyxcbiAgICAgIHJlbWFpbmluZ0tleXMsXG4gICAgICBhdWRpdFRyaW1TdHJpbmcsXG4gICAgICBhdWRpdE9wdGlvbnMocmV2YWx1YXRpb25UeXBlcyksXG4gICAgKVxuXG4gICAgcmV0dXJuIGF1ZGl0LnJlZHVjZVJlbWFpbmluZyhkYXRhLCBlcnJvcnMsIHJlbWFpbmluZ0tleXMpXG4gIH1cblxuZXhwb3J0IGNvbnN0IGF1ZGl0UGFyYW1ldGVyQ3VzdG9taXphdGlvbkJ5TmFtZSA9IChwYXJhbWV0ZXJzTmFtZXM6IHN0cmluZ1tdKSA9PlxuICBhdWRpdEtleVZhbHVlRGljdGlvbmFyeShcbiAgICBbYXVkaXRUcmltU3RyaW5nLCBhdWRpdE9wdGlvbnMocGFyYW1ldGVyc05hbWVzKV0sXG4gICAgW2F1ZGl0UGFyYW1ldGVyQ3VzdG9taXphdGlvbihwYXJhbWV0ZXJzTmFtZXMpLCBhdWRpdFJlcXVpcmVdLFxuICApXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBRUVBLHVCQUF1QixFQUN2QkMsWUFBWSxFQUVaQyxZQUFZLEVBQ1pDLGVBQWUsUUFDVixnQkFBZ0I7QUFBQSxTQUVkQyxnQkFBZ0I7QUFBQSxTQUNoQkMscUJBQXFCO0FBRTlCLE1BQU1DLDJCQUEyQixHQUM5QkMsZUFBeUIsSUFDMUIsQ0FBQ0MsS0FBWSxFQUFFQyxXQUFvQixLQUF5QjtFQUMxRCxJQUFJQSxXQUFXLElBQUksSUFBSSxFQUFFO0lBQ3ZCLE9BQU8sQ0FBQ0EsV0FBVyxFQUFFLElBQUksQ0FBQztFQUM1QjtFQUNBLElBQUksT0FBT0EsV0FBVyxLQUFLLFFBQVEsRUFBRTtJQUNuQyxPQUFPRCxLQUFLLENBQUNFLGNBQWMsQ0FBQ0QsV0FBVyxFQUFFLFFBQVEsQ0FBQztFQUNwRDtFQUVBLE1BQU1FLElBQWdDLEdBQUc7SUFBRSxHQUFHRjtFQUFZLENBQUM7RUFDM0QsTUFBTUcsTUFBa0MsR0FBRyxDQUFDLENBQUM7RUFDN0MsTUFBTUMsYUFBYSxHQUFHLElBQUlDLEdBQUcsQ0FBQ0MsTUFBTSxDQUFDQyxJQUFJLENBQUNMLElBQUksQ0FBQyxDQUFDO0VBRWhESCxLQUFLLENBQUNTLFNBQVMsQ0FDYk4sSUFBSSxFQUNKLFVBQVUsRUFDVixJQUFJLEVBQ0pDLE1BQU0sRUFDTkMsYUFBYSxFQUNiVixlQUFlLEVBQ2ZGLFlBQVksQ0FBQ00sZUFBZSxDQUM5QixDQUFDO0VBQ0RDLEtBQUssQ0FBQ1MsU0FBUyxDQUNiTixJQUFJLEVBQ0osZ0NBQWdDLEVBQ2hDLElBQUksRUFDSkMsTUFBTSxFQUNOQyxhQUFhLEVBQ2JSLHFCQUNGLENBQUM7RUFDREcsS0FBSyxDQUFDUyxTQUFTLENBQ2JOLElBQUksRUFDSix1QkFBdUIsRUFDdkIsSUFBSSxFQUNKQyxNQUFNLEVBQ05DLGFBQWEsRUFDYlIscUJBQ0YsQ0FBQztFQUNERyxLQUFLLENBQUNTLFNBQVMsQ0FDYk4sSUFBSSxFQUNKLGtCQUFrQixFQUNsQixJQUFJLEVBQ0pDLE1BQU0sRUFDTkMsYUFBYSxFQUNiVixlQUFlLEVBQ2ZGLFlBQVksQ0FBQ0csZ0JBQWdCLENBQy9CLENBQUM7RUFFRCxPQUFPSSxLQUFLLENBQUNVLGVBQWUsQ0FBQ1AsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLGFBQWEsQ0FBQztBQUMzRCxDQUFDO0FBRUgsT0FBTyxNQUFNTSxpQ0FBaUMsR0FBSVosZUFBeUIsSUFDekVQLHVCQUF1QixDQUNyQixDQUFDRyxlQUFlLEVBQUVGLFlBQVksQ0FBQ00sZUFBZSxDQUFDLENBQUMsRUFDaEQsQ0FBQ0QsMkJBQTJCLENBQUNDLGVBQWUsQ0FBQyxFQUFFTCxZQUFZLENBQzdELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=