@ackee/antonio-core
Version:
A HTTP client built on fetch API with axios-like API.
18 lines (17 loc) • 3.26 kB
JavaScript
const isTokenTemplate = token => token.startsWith(':');
export function setUriParams(templateUrl, uriParams) {
const templateToValue = token => {
if (!isTokenTemplate(token)) {
return token;
}
const uriParamKey = token.slice(1);
const value = uriParams[uriParamKey];
if (value === undefined) {
throw new TypeError(`No URI param found for '${token}' template token among URI params: \n${JSON.stringify(uriParams, null, 2)}\n for template URL: '${templateUrl}'.`);
}
// replace template (:itemId) with actual value
return value;
};
return templateUrl.split('/').map(templateToValue).join('/');
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc1Rva2VuVGVtcGxhdGUiLCJ0b2tlbiIsInN0YXJ0c1dpdGgiLCJzZXRVcmlQYXJhbXMiLCJ0ZW1wbGF0ZVVybCIsInVyaVBhcmFtcyIsInRlbXBsYXRlVG9WYWx1ZSIsInVyaVBhcmFtS2V5Iiwic2xpY2UiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIlR5cGVFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzcGxpdCIsIm1hcCIsImpvaW4iXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9yZXF1ZXN0L3V0aWxzL3VybC91cmlQYXJhbXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZXF1ZXN0VXJpUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBpc1Rva2VuVGVtcGxhdGUgPSAodG9rZW46IHN0cmluZyk6IGJvb2xlYW4gPT4gdG9rZW4uc3RhcnRzV2l0aCgnOicpO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0VXJpUGFyYW1zKHRlbXBsYXRlVXJsOiBzdHJpbmcsIHVyaVBhcmFtczogUmVxdWVzdFVyaVBhcmFtcyk6IHN0cmluZyB7XG4gICAgY29uc3QgdGVtcGxhdGVUb1ZhbHVlID0gKHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCFpc1Rva2VuVGVtcGxhdGUodG9rZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cmlQYXJhbUtleSA9IHRva2VuLnNsaWNlKDEpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHVyaVBhcmFtc1t1cmlQYXJhbUtleV07XG5cbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICAgICAgICAgYE5vIFVSSSBwYXJhbSBmb3VuZCBmb3IgJyR7dG9rZW59JyB0ZW1wbGF0ZSB0b2tlbiBhbW9uZyBVUkkgcGFyYW1zOiBcXG4ke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgICAgICB1cmlQYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIDIsXG4gICAgICAgICAgICAgICAgKX1cXG4gZm9yIHRlbXBsYXRlIFVSTDogJyR7dGVtcGxhdGVVcmx9Jy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlcGxhY2UgdGVtcGxhdGUgKDppdGVtSWQpIHdpdGggYWN0dWFsIHZhbHVlXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRlbXBsYXRlVXJsLnNwbGl0KCcvJykubWFwKHRlbXBsYXRlVG9WYWx1ZSkuam9pbignLycpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFFQSxNQUFNQSxlQUFlLEdBQUlDLEtBQWEsSUFBY0EsS0FBSyxDQUFDQyxVQUFVLENBQUMsR0FBRyxDQUFDO0FBRXpFLE9BQU8sU0FBU0MsWUFBWUEsQ0FBQ0MsV0FBbUIsRUFBRUMsU0FBMkIsRUFBVTtFQUNuRixNQUFNQyxlQUFlLEdBQUlMLEtBQWEsSUFBSztJQUN2QyxJQUFJLENBQUNELGVBQWUsQ0FBQ0MsS0FBSyxDQUFDLEVBQUU7TUFDekIsT0FBT0EsS0FBSztJQUNoQjtJQUVBLE1BQU1NLFdBQVcsR0FBR04sS0FBSyxDQUFDTyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLE1BQU1DLEtBQUssR0FBR0osU0FBUyxDQUFDRSxXQUFXLENBQUM7SUFFcEMsSUFBSUUsS0FBSyxLQUFLQyxTQUFTLEVBQUU7TUFDckIsTUFBTSxJQUFJQyxTQUFTLENBQ2YsMkJBQTJCVixLQUFLLHdDQUF3Q1csSUFBSSxDQUFDQyxTQUFTLENBQ2xGUixTQUFTLEVBQ1QsSUFBSSxFQUNKLENBQ0osQ0FBQyx5QkFBeUJELFdBQVcsSUFDekMsQ0FBQztJQUNMOztJQUVBO0lBQ0EsT0FBT0ssS0FBSztFQUNoQixDQUFDO0VBRUQsT0FBT0wsV0FBVyxDQUFDVSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUNDLEdBQUcsQ0FBQ1QsZUFBZSxDQUFDLENBQUNVLElBQUksQ0FBQyxHQUFHLENBQUM7QUFDaEUiLCJpZ25vcmVMaXN0IjpbXX0=