From 327bb657f4de302a7ecf421ab44bd18329d7f26d Mon Sep 17 00:00:00 2001 From: IlyaDoronin Date: Thu, 28 Dec 2023 13:07:50 +0300 Subject: [PATCH] feat: replaceSpacesToEmptyLines --- src/api/question.ts | 3 ++- src/utils/replaceSpacesToEmptyLines.ts | 29 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/utils/replaceSpacesToEmptyLines.ts diff --git a/src/api/question.ts b/src/api/question.ts index 56983d76..74a46745 100644 --- a/src/api/question.ts +++ b/src/api/question.ts @@ -5,6 +5,7 @@ import { GetQuestionListRequest, GetQuestionListResponse } from "@model/question import { EditQuestionRequest, EditQuestionResponse } from "@model/question/edit"; import { DeleteQuestionRequest, DeleteQuestionResponse } from "@model/question/delete"; import { CopyQuestionRequest, CopyQuestionResponse } from "@model/question/copy"; +import { replaceSpacesToEmptyLines } from "../utils/replaceSpacesToEmptyLines"; const baseUrl = process.env.NODE_ENV === "production" ? "/squiz" : "https://squiz.pena.digital/squiz"; @@ -26,7 +27,7 @@ async function getQuestionList(body?: Partial) { method: "POST", }); - return response.items; + return replaceSpacesToEmptyLines(response.items); } function editQuestion(body: EditQuestionRequest, signal?: AbortSignal) { diff --git a/src/utils/replaceSpacesToEmptyLines.ts b/src/utils/replaceSpacesToEmptyLines.ts new file mode 100644 index 00000000..e6310b3b --- /dev/null +++ b/src/utils/replaceSpacesToEmptyLines.ts @@ -0,0 +1,29 @@ +export const replaceSpacesToEmptyLines = (object: T): T => { + if (Array.isArray(object)) { + return object.map(replaceSpacesToEmptyLines) as T; + } + + if (!object || typeof object !== "object") { + return object; + } + + const result: Record = {}; + + for (const [key, value] of Object.entries(object)) { + if (typeof value === "string") { + result[key] = value.replace(/ /g, ""); + + continue; + } + + if (typeof value === "object") { + result[key] = replaceSpacesToEmptyLines(value); + + continue; + } + + result[key] = value; + } + + return result as T; +};