UNPKG

@iotize/tap

Version:

IoTize Device client for Javascript

49 lines 3.73 kB
export class PathParameter { static fillParam(path, key, value) { var map = {}; map[key] = value; return PathParameter.fillParams(path, map); } /** * Same as fillParams but will throw an error if some parameters has not been replaced */ static fillAllParams(path, pathParameters) { path = PathParameter.fillParams(path, pathParameters); const remainingArgs = PathParameter.extractParams(path); if (remainingArgs.length > 0) { throw new Error(`Missing path parameter ${remainingArgs.join(', ')} (path: ${path})`); } return path; } static fillParams(path, mapping) { for (var key in mapping) { var match = '{' + key + '}'; if (path.indexOf(match) >= 0) { path = path.replace(match, mapping[key].toString()); } else { throw new Error('Parameter ' + key + ' does not exist in path: ' + path); } } return path; } /** * * @param path * @returns names of path parameters */ static extractParams(path) { var found = [], rxp = PathParameter.PARAMETER_REGEX, curMatch; while ((curMatch = rxp.exec(path))) { found.push(curMatch[1]); } return found; } static hasParams(path) { return PathParameter.extractParams(path).length > 0; } } (function (PathParameter) { PathParameter.PARAMETER_REGEX = /{([^}]+)}/g; })(PathParameter || (PathParameter = {})); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1wYXJhbWV0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3BhdGgtcGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBQ2pCLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxLQUFhO1FBQzlELElBQUksR0FBRyxHQUFRLEVBQUUsQ0FBQztRQUNsQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE9BQU8sYUFBYSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FDekIsSUFBWSxFQUNaLGNBQWtEO1FBRWxELElBQUksR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN0RCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDNUIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwQkFBMEIsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FDckUsQ0FBQztTQUNIO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQVUsQ0FDdEIsSUFBWSxFQUNaLE9BQTJDO1FBRTNDLEtBQUssSUFBSSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3ZCLElBQUksS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQzVCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUNyRDtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUNiLFlBQVksR0FBRyxHQUFHLEdBQUcsMkJBQTJCLEdBQUcsSUFBSSxDQUN4RCxDQUFDO2FBQ0g7U0FDRjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQVk7UUFDdEMsSUFBSSxLQUFLLEdBQUcsRUFBRSxFQUNaLEdBQUcsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUNuQyxRQUFRLENBQUM7UUFFWCxPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRjtBQUVELFdBQWlCLGFBQWE7SUFDZiw2QkFBZSxHQUFHLFlBQVksQ0FBQztBQUM5QyxDQUFDLEVBRmdCLGFBQWEsS0FBYixhQUFhLFFBRTdCIn0=