UNPKG

sdmx-rest

Version:

SDMX REST API client for JavaScript

118 lines (103 loc) 3.21 kB
// Generated by CoffeeScript 2.7.0 (function() { var ReportingPeriodType, createErrorMessage, validEnum, validIso8601, validMultipleEnum, validPattern, validPeriod, indexOf = [].indexOf; ({ReportingPeriodType} = require('./sdmx-patterns')); validEnum = function(input, list, name, errors) { var found, i, j, len, ref, v; found = false; ref = Object.values(list); for (j = 0, len = ref.length; j < len; j++) { v = ref[j]; if (v === input) { found = true; } } if (!found) { errors.push(`${input} is not in the list of supported ${name} (${(function() { var k, len1, ref1, results; ref1 = Object.values(list); results = []; for (k = 0, len1 = ref1.length; k < len1; k++) { i = ref1[k]; results.push(i); } return results; })()})`); } return found; }; validMultipleEnum = function(input, list, name, errors) { var found, output, r; found = false; if (input && input.indexOf("\+") > -1) { output = (function() { var j, len, ref, results; ref = input.split("+"); results = []; for (j = 0, len = ref.length; j < len; j++) { r = ref[j]; results.push(validEnum(r, list, name, errors)); } return results; })(); found = indexOf.call(output, false) < 0; } else if (input && input.indexOf(",") > -1) { output = (function() { var j, len, ref, results; ref = input.split(","); results = []; for (j = 0, len = ref.length; j < len; j++) { r = ref[j]; results.push(validEnum(r, list, name, errors)); } return results; })(); found = indexOf.call(output, false) < 0; } else { found = validEnum(input, list, name, errors); } return found; }; validPattern = function(input, regex, name, errors) { var valid; valid = input && input.match(regex); if (!valid) { errors.push(`${input} is not compliant with the pattern defined for ${name} (${regex})`); } return valid; }; createErrorMessage = function(errors, type) { var error, j, len, msg; msg = `Not a valid ${type}: \n`; for (j = 0, len = errors.length; j < len; j++) { error = errors[j]; msg += `- ${error} \n`; } return msg; }; validIso8601 = function(input, name, errors) { var valid; valid = true; if (isNaN(Date.parse(input))) { errors.push(`${name} must be a valid ISO8601 date`); valid = false; } return valid; }; validPeriod = function(input, name, errors) { var valid; valid = validIso8601(input, name, errors) || validPattern(input, ReportingPeriodType, name, errors); if (!valid) { errors.push(`${name} must be a valid SDMX period or a valid ISO8601 date`); valid = false; } return valid; }; exports.isValidEnum = validEnum; exports.isValidMultipleEnum = validMultipleEnum; exports.isValidPattern = validPattern; exports.createErrorMessage = createErrorMessage; exports.isValidDate = validIso8601; exports.isValidPeriod = validPeriod; }).call(this);