From 6ebc21d8d706e363be9ad106a6bc75266257d422 Mon Sep 17 00:00:00 2001 From: Serhii Dmytruk Date: Mon, 23 Mar 2026 15:55:48 +0200 Subject: [PATCH] Solition --- package.json | 2 +- src/createServer.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c4d3c53..dbbe494 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "license": "GPL-3.0", "devDependencies": { "@mate-academy/eslint-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^2.1.3", "axios": "^1.7.2", "eslint": "^8.57.0", "eslint-plugin-jest": "^28.6.0", diff --git a/src/createServer.js b/src/createServer.js index 1fc5f4e..177a6d1 100644 --- a/src/createServer.js +++ b/src/createServer.js @@ -1,9 +1,44 @@ /* eslint-disable no-console */ 'use strict'; +const http = require('node:http'); + function createServer() { /* Write your code here */ // Return instance of http.Server class + return http.createServer((req, res) => { + const parts = req.url + .split('?')[0] + .replaceAll('//', '/') + .replaceAll('/', ',') + .split(','); + + const myURL = new URL(req.url, 'http://localhost'); + const newSearchParams = new URLSearchParams(myURL.searchParams); + + const responce = {}; + + responce['parts'] = []; + + if (parts.length > 0) { + for (const item of parts) { + if (item !== '') { + responce['parts'].push(item); + } + } + } + + responce['query'] = {}; + + if (newSearchParams.size > 0) { + for (const [name, value] of newSearchParams) { + responce['query'][name] = value; + } + } + + res.setHeader('Content-Type', 'application/json'); + res.end(JSON.stringify(responce)); + }); } module.exports = {