"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = parseCookies;
/**
 * Parse request cookies
 * ===================================================
 *
 * @description This function takes in a request object and
 * returns the cookies as a JS object
 */
function parseCookies({ request, cookieString, }) {
    try {
        /** @type {string | undefined} */
        const cookieStr = request
            ? request.headers.cookie
            : cookieString
                ? cookieString
                : undefined;
        if (!cookieStr)
            return {};
        if (!cookieStr || typeof cookieStr !== "string") {
            return {};
        }
        const cookieSplitArray = cookieStr.split(";");
        let cookieObject = {};
        cookieSplitArray.forEach((keyValueString) => {
            const [key, value] = keyValueString.split("=");
            if (key && typeof key == "string") {
                const parsedKey = key.replace(/^ +| +$/, "");
                cookieObject[parsedKey] =
                    value && typeof value == "string"
                        ? value.replace(/^ +| +$/, "")
                        : "";
            }
        });
        return cookieObject;
    }
    catch (error) {
        console.log(`ERROR parsing cookies: ${error.message}`);
        return {};
    }
}