UNPKG

hn-api-sdk

Version:

HackerNews API with TypeScript, generated by tsdk

52 lines (51 loc) 1.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.pathParams = pathParams; exports.parseParams = parseParams; exports.parseBracesParams = parseBracesParams; function pathParams(path, data, symbol) { var newPath = path; var params = symbol === ':' ? parseParams(path) : parseBracesParams(path); if (params.length > 0) { params.forEach(function (item) { if (data[item.name] !== undefined) { newPath = newPath.replace("".concat(item.symbol), data[item.name]); } }); } return newPath; } /** parse /:a/:b -> [{name: 'a', symbol: ':'},{name: 'b', symbol: ':'},] */ function parseParams(path) { var result = []; var symbol = ':'; var arr = path.split(symbol); arr.forEach(function (item) { if (item && item !== '/') { var key_1 = item.split('/')[0]; result.push({ name: key_1, get symbol() { return "".concat(symbol).concat(key_1); }, }); } }); return result; } /** parse /{a}/{b} -> [{name: 'a', symbol: '{'},{name: 'b', symbol: '{'},] */ function parseBracesParams(path) { var result = []; var arr = path.match(/\{(.*?)\}/g); arr && arr.forEach(function (item) { var key = item.slice(1, -1); result.push({ name: key, get symbol() { return "{".concat(key, "}"); }, }); }); return result; }