@openfisca/json-model
Version:
Library to handle informations extracted in JSON or YAML format from OpenFisca parameters, variables, etc
23 lines • 5.86 kB
JavaScript
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=