UNPKG

drizzle-orm

Version:

Drizzle ORM package for SQL databases

106 lines 3.16 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var array_exports = {}; __export(array_exports, { makePgArray: () => makePgArray, parsePgArray: () => parsePgArray, parsePgNestedArray: () => parsePgNestedArray }); module.exports = __toCommonJS(array_exports); function parsePgArrayValue(arrayString, startFrom, inQuotes) { for (let i = startFrom; i < arrayString.length; i++) { const char = arrayString[i]; if (char === "\\") { i++; continue; } if (char === '"') { return [arrayString.slice(startFrom, i).replace(/\\/g, ""), i + 1]; } if (inQuotes) { continue; } if (char === "," || char === "}") { return [arrayString.slice(startFrom, i).replace(/\\/g, ""), i]; } } return [arrayString.slice(startFrom).replace(/\\/g, ""), arrayString.length]; } function parsePgNestedArray(arrayString, startFrom = 0) { const result = []; let i = startFrom; let lastCharIsComma = false; while (i < arrayString.length) { const char = arrayString[i]; if (char === ",") { if (lastCharIsComma || i === startFrom) { result.push(""); } lastCharIsComma = true; i++; continue; } lastCharIsComma = false; if (char === "\\") { i += 2; continue; } if (char === '"') { const [value2, startFrom2] = parsePgArrayValue(arrayString, i + 1, true); result.push(value2); i = startFrom2; continue; } if (char === "}") { return [result, i + 1]; } if (char === "{") { const [value2, startFrom2] = parsePgNestedArray(arrayString, i + 1); result.push(value2); i = startFrom2; continue; } const [value, newStartFrom] = parsePgArrayValue(arrayString, i, false); result.push(value); i = newStartFrom; } return [result, i]; } function parsePgArray(arrayString) { const [result] = parsePgNestedArray(arrayString, 1); return result; } function makePgArray(array) { return `{${array.map((item) => { if (Array.isArray(item)) { return makePgArray(item); } if (typeof item === "string") { return `"${item.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`; } return `${item}`; }).join(",")}}`; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { makePgArray, parsePgArray, parsePgNestedArray }); //# sourceMappingURL=array.cjs.map