"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = grabSchemaFieldsFromData; const serverError_1 = __importDefault(require("./serverError")); /** * # Add User Table to Database */ function grabSchemaFieldsFromData({ data, fields, excludeData, excludeFields, }) { var _a; try { const possibleFields = require("../../data/possibleFields.json"); const dataTypes = require("../../data/dataTypes.json"); /** @type {DSQL_FieldSchemaType[]} */ const finalFields = []; /** @type {string[]} */ let filteredFields = []; if (data && ((_a = Object.keys(data)) === null || _a === void 0 ? void 0 : _a[0])) { filteredFields = Object.keys(data); } if (fields) { filteredFields = [...filteredFields, ...fields]; filteredFields = [...new Set(filteredFields)]; } filteredFields = filteredFields .filter((fld) => !excludeData || !Object.keys(excludeData).includes(fld)) .filter((fld) => !excludeFields || !excludeFields.find((exlFld) => exlFld.fieldName == fld)); filteredFields.forEach((fld) => { const value = data ? data[fld] : null; if (typeof value == "string") { const newField = { fieldName: fld, dataType: value.length > 255 ? "TEXT" : "VARCHAR(255)", }; if (Boolean(value.match(/<[^>]+>/g))) { newField.richText = true; } finalFields.push(newField); } else if (typeof value == "number") { finalFields.push({ fieldName: fld, dataType: "INT", }); } else { finalFields.push({ fieldName: fld, dataType: "VARCHAR(255)", }); } }); return finalFields; } catch ( /** @type {any} */error) { console.log(`grabSchemaFieldsFromData.ts ERROR: ${error.message}`); (0, serverError_1.default)({ component: "grabSchemaFieldsFromData.ts", message: error.message, }); return []; } }