67 lines
2.4 KiB
JavaScript
67 lines
2.4 KiB
JavaScript
"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 [];
|
|
}
|
|
}
|