{"ScriptPreparationCode":null,"TestCases":[{"Name":"regex","Code":"function test(\r\n path,\r\n params\r\n ) {\r\n if (!params) return path\r\n \r\n const pathParamRegex = /\\/:(\\w\u002B\\(([^)]\u002B)\\))\\/?/g;\r\n \r\n \r\n return path\r\n .replace(pathParamRegex, (_, key) =\u003E {\r\n console.log(_)\r\n console.log(key)\r\n if(!params[key[0]]) return \u0022\u0022\r\n return params[key[0]]\r\n })\r\n .concat(params.queryParams ? makeQueryParams(params.queryParams) : \u0027\u0027)\r\n }\r\n\r\nreturn test(\u0027/tet/abc/:c/:param\u0027, {c:\u0022test\u0022})","IsDeferred":false},{"Name":"split","Code":"const removeStringByStrategy =\r\n (strategy) =\u003E (target,type, findIndex) =\u003E {\r\n const strategyFnc = strategy[type];\r\n return strategyFnc(target, findIndex);\r\n };\r\n\r\n const strategy = {\r\n start: (target, findIndex) =\u003E target.slice(findIndex \u002B 1, target.length),\r\n base: (target, findIndex) =\u003E target.slice(0, findIndex) \u002B target.slice(findIndex \u002B 1, target.length),\r\n end: (target, findIndex) =\u003E target.slice(0, findIndex),\r\n };\r\n\r\n \r\n\r\n const removeStringByType = removeStringByStrategy(strategy);\r\n/**\r\n * type:start - \uCC3E\uC740 \uBB38\uC790\uC5F4\uC744 \uC2DC\uC791\uC73C\uB85C \uB05D \uBB38\uC790\uC5F4\uAE4C\uC9C0 \uBC18\uD658(target: \u0022?\u0022, value:\u0022react?kim\u0022, result=\u0022kim\u0022)\r\n * type:base - \uCC3E\uC740 \uBB38\uC790\uC5F4 \uD558\uB098\uB9CC \uC0AD\uC81C(target: \u0022?\u0022, value:\u0022react?kim\u0022, result=\u0022reactkim\u0022)\r\n * type:end - \uCCAB\uBC88\uC9F8 \uC704\uCE58\uBD80\uD130 \uCC3E\uC740 \uBB38\uC790\uC5F4 \uC704\uCE58\uC5D0 \uD3EC\uD568\uB418\uB294 \uBB38\uC790\uC5F4 \uC0AD\uC81C(target: \u0022?\u0022, value:\u0022react?kim\u0022, result=\u0022asf\u0022)\r\n * @param target \uC0AD\uC81C\uD560 \uBB38\uC790\uC5F4\r\n * @returns {string}\r\n */\r\nconst remove = (target) =\u003E (type) =\u003E (value) =\u003E {\r\n const findIndex = value.indexOf(target);\r\n if (findIndex === -1) return value;\r\n \r\n return removeStringByType(value, type, findIndex);\r\n };\r\n\r\nconst removeBraces = remove(\u0022(\u0022);\r\n// \u0022(\u0022\uAC00 \uBC1C\uACAC\uB41C \uC9C0\uC810\uBD80\uD130 \uBB38\uC790\uC5F4 \uB05D\uAE4C\uC9C0 \uC0AD\uC81C\uD558\uB294 \uD568\uC218 \uC0DD\uC131\r\nconst removeBracesFromFindIndexToEnd = removeBraces(\u0022end\u0022);\r\n\r\n\r\nreturn\u0027/tet/abc/:c/:param\u0027.split(\u0022/\u0022).map(removeBracesFromFindIndexToEnd).join(\u0022/\u0022)","IsDeferred":false}]}