UNPKG

sdmx-rest

Version:

SDMX REST API client for JavaScript

88 lines (68 loc) 2.13 kB
// Generated by CoffeeScript 2.7.0 (function() { var ApiNumber, ApiVersion, VersionNumber, checkMultipleItems, checkVersion, contextPattern, createEntryPoint, filterPattern, parseContext, parseFilter, parseFlow, validateDataForV2; ({ApiVersion, ApiNumber} = require('../utils/api-version')); ({VersionNumber} = require('../utils/sdmx-patterns')); createEntryPoint = function(s) { var url; url = s.url; if (!s.url.endsWith('/')) { url = s.url + '/'; } return url; }; parseFlow = function(f) { var parts; parts = f.split(","); if (parts.length === 1) { return ["*", f, "*"]; } else if (parts.length === 2) { return parts.concat(["*"]); } else { return parts; } }; contextPattern = /(.*)=(.*):(.*)\((.*)\)/; parseContext = function(f) { return f.match(contextPattern).slice(1, 5); }; filterPattern = /(.*)=(.*)/; parseFilter = function(f) { return f.match(filterPattern).slice(1, 3); }; validateDataForV2 = function(q, s) { if ((q.provider != null) && q.provider !== "all") { throw Error(`provider not allowed in ${s.api}`); } if (q.start) { throw Error(`start not allowed in ${s.api}`); } if (q.end) { throw Error(`end not allowed in ${s.api}`); } if (q.key.indexOf("\+") > -1) { throw Error(`+ not allowed in key in ${s.api}`); } }; checkVersion = function(q, s) { var v; v = q.version; if (s.api !== ApiVersion.v2_0_0) { if (!(v === 'latest' || v.match(VersionNumber))) { throw Error(`Semantic versioning not allowed in ${s.api}`); } } }; checkMultipleItems = function(i, s, r, a) { if (a < ApiNumber.v1_3_0 && /\+/.test(i)) { throw Error(`Multiple ${r} not allowed in ${s.api}`); } }; exports.createEntryPoint = createEntryPoint; exports.parseFlow = parseFlow; exports.validateDataForV2 = validateDataForV2; exports.checkVersion = checkVersion; exports.checkMultipleItems = checkMultipleItems; exports.parseContext = parseContext; exports.parseFilter = parseFilter; }).call(this);