From 0b9137ad4b2bef5e7c52d1aad8a289defb8c7cdc Mon Sep 17 00:00:00 2001 From: Happy4Game Date: Tue, 13 May 2025 00:21:34 +0200 Subject: [PATCH] Color added to main datatypes --- src/components/EditorCanvas/Table.jsx | 7 ++- src/data/datatypes.js | 71 +++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/components/EditorCanvas/Table.jsx b/src/components/EditorCanvas/Table.jsx index f082bd5..19944f8 100644 --- a/src/components/EditorCanvas/Table.jsx +++ b/src/components/EditorCanvas/Table.jsx @@ -373,8 +373,11 @@ export default function Table(props) { ) : settings.showDataTypes ? (
{fieldData.primary && } - {!fieldData.notNull && ?} - + {!fieldData.notNull && NULL} + {fieldData.type + ((dbToTypes[database][fieldData.type].isSized || dbToTypes[database][fieldData.type].hasPrecision) && diff --git a/src/data/datatypes.js b/src/data/datatypes.js index afab3ff..e25e344 100644 --- a/src/data/datatypes.js +++ b/src/data/datatypes.js @@ -9,6 +9,7 @@ const binaryRegex = /^[01]+$/; const defaultTypesBase = { INT: { type: "INT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -19,6 +20,7 @@ const defaultTypesBase = { }, SMALLINT: { type: "SMALLINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -29,6 +31,7 @@ const defaultTypesBase = { }, BIGINT: { type: "BIGINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -39,6 +42,7 @@ const defaultTypesBase = { }, DECIMAL: { type: "DECIMAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -48,6 +52,7 @@ const defaultTypesBase = { }, NUMERIC: { type: "NUMERIC", + color: '#bcb300', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -67,6 +72,7 @@ const defaultTypesBase = { }, FLOAT: { type: "FLOAT", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -85,6 +91,7 @@ const defaultTypesBase = { }, REAL: { type: "REAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -108,6 +115,7 @@ const defaultTypesBase = { }, VARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -145,6 +153,7 @@ const defaultTypesBase = { }, TIME: { type: "TIME", + color: '#00c990', checkDefault: (field) => { return /^(?:[01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d$/.test(field.default); }, @@ -175,6 +184,7 @@ const defaultTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { return /^\d{4}-\d{2}-\d{2}$/.test(field.default); }, @@ -185,6 +195,7 @@ const defaultTypesBase = { }, DATETIME: { type: "DATETIME", + color: '#00c990', checkDefault: (field) => { if (field.default.toUpperCase() === "CURRENT_TIMESTAMP") { return true; @@ -203,6 +214,7 @@ const defaultTypesBase = { }, BOOLEAN: { type: "BOOLEAN", + color: '#c90032', checkDefault: (field) => { return ( field.default.toLowerCase() === "false" || @@ -314,6 +326,7 @@ export const defaultTypes = new Proxy(defaultTypesBase, { const mysqlTypesBase = { TINYINT: { type: "TINYINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -325,6 +338,7 @@ const mysqlTypesBase = { }, SMALLINT: { type: "SMALLINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -336,6 +350,7 @@ const mysqlTypesBase = { }, MEDIUMINT: { type: "MEDIUMINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -347,6 +362,7 @@ const mysqlTypesBase = { }, INTEGER: { type: "INTEGER", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -358,6 +374,7 @@ const mysqlTypesBase = { }, BIGINT: { type: "BIGINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -369,6 +386,7 @@ const mysqlTypesBase = { }, DECIMAL: { type: "DECIMAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -378,6 +396,7 @@ const mysqlTypesBase = { }, NUMERIC: { type: "NUMERIC", + color: '#bcb300', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -387,6 +406,7 @@ const mysqlTypesBase = { }, FLOAT: { type: "FLOAT", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -405,6 +425,7 @@ const mysqlTypesBase = { }, BIT: { type: "BIT", + color: '#c90032', checkDefault: (field) => { return field.default === "1" || field.default === "0"; }, @@ -414,6 +435,7 @@ const mysqlTypesBase = { }, BOOLEAN: { type: "BOOLEAN", + color: '#c90032', checkDefault: (field) => { return ( field.default.toLowerCase() === "false" || @@ -428,6 +450,7 @@ const mysqlTypesBase = { }, TIME: { type: "TIME", + color: '#00c990', checkDefault: (field) => { return /^(?:[01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d$/.test(field.default); }, @@ -458,6 +481,7 @@ const mysqlTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { return /^\d{4}-\d{2}-\d{2}$/.test(field.default); }, @@ -468,6 +492,7 @@ const mysqlTypesBase = { }, DATETIME: { type: "DATETIME", + color: '#00c990', checkDefault: (field) => { if (field.default.toUpperCase() === "CURRENT_TIMESTAMP") { return true; @@ -495,6 +520,7 @@ const mysqlTypesBase = { }, CHAR: { type: "CHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -509,6 +535,7 @@ const mysqlTypesBase = { }, VARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -740,6 +767,7 @@ export const mysqlTypes = new Proxy(mysqlTypesBase, { const postgresTypesBase = { SMALLINT: { type: "SMALLINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -751,6 +779,7 @@ const postgresTypesBase = { }, INTEGER: { type: "INTEGER", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -768,6 +797,7 @@ const postgresTypesBase = { }, BIGINT: { type: "BIGINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -785,6 +815,7 @@ const postgresTypesBase = { }, DECIMAL: { type: "DECIMAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -794,6 +825,7 @@ const postgresTypesBase = { }, NUMERIC: { type: "NUMERIC", + color: '#bcb300', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -803,6 +835,7 @@ const postgresTypesBase = { }, REAL: { type: "REAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -866,6 +899,7 @@ const postgresTypesBase = { }, CHAR: { type: "CHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -880,6 +914,7 @@ const postgresTypesBase = { }, VARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -918,6 +953,7 @@ const postgresTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { const specialValues = [ "epoch", @@ -940,6 +976,7 @@ const postgresTypesBase = { }, TIME: { type: "TIME", + color: '#00c990', checkDefault: (field) => { const specialValues = ["now", "allballs"]; return ( @@ -1028,6 +1065,7 @@ const postgresTypesBase = { }, BOOLEAN: { type: "BOOLEAN", + color: '#c90032', checkDefault: (field) => /^(true|false)$/i.test(field.default), hasCheck: false, isSized: false, @@ -1138,6 +1176,7 @@ const postgresTypesBase = { }, BIT: { type: "BIT", + color: '#c90032', checkDefault: (field) => /^[01]{1,}$/.test(field.default), hasCheck: true, isSized: true, @@ -1147,6 +1186,7 @@ const postgresTypesBase = { }, VARBIT: { type: "VARBIT", + color: '#c90032', checkDefault: (field) => /^[01]*$/.test(field.default), hasCheck: true, isSized: true, @@ -1282,6 +1322,7 @@ export const postgresTypes = new Proxy(postgresTypesBase, { const sqliteTypesBase = { INTEGER: { type: "INTEGER", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1292,6 +1333,7 @@ const sqliteTypesBase = { }, REAL: { type: "REAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1301,6 +1343,7 @@ const sqliteTypesBase = { }, NUMERIC: { type: "NUMERIC", + color: '#bcb300', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1310,6 +1353,7 @@ const sqliteTypesBase = { }, BOOLEAN: { type: "BOOLEAN", + color: '#c90032', checkDefault: (field) => { return ( field.default.toLowerCase() === "false" || @@ -1324,6 +1368,7 @@ const sqliteTypesBase = { }, VARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1355,6 +1400,7 @@ const sqliteTypesBase = { }, TIME: { type: "TIME", + color: '#00c990', checkDefault: (field) => { return /^(?:[01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d$/.test(field.default); }, @@ -1385,6 +1431,7 @@ const sqliteTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { return /^\d{4}-\d{2}-\d{2}$/.test(field.default); }, @@ -1395,6 +1442,7 @@ const sqliteTypesBase = { }, DATETIME: { type: "DATETIME", + color: '#00c990', checkDefault: (field) => { if (field.default.toUpperCase() === "CURRENT_TIMESTAMP") { return true; @@ -1420,6 +1468,7 @@ export const sqliteTypes = new Proxy(sqliteTypesBase, { const mssqlTypesBase = { TINYINT: { type: "TINYINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1430,6 +1479,7 @@ const mssqlTypesBase = { }, SMALLINT: { type: "SMALLINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1440,6 +1490,7 @@ const mssqlTypesBase = { }, INTEGER: { type: "INTEGER", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1450,6 +1501,7 @@ const mssqlTypesBase = { }, BIGINT: { type: "BIGINT", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1460,6 +1512,7 @@ const mssqlTypesBase = { }, BIT: { type: "BIT", + color: '#c90032', checkDefault: (field) => { return field.default === "1" || field.default === "0"; }, @@ -1469,6 +1522,7 @@ const mssqlTypesBase = { }, DECIMAL: { type: "DECIMAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1478,6 +1532,7 @@ const mssqlTypesBase = { }, NUMERIC: { type: "NUMERIC", + color: '#bcb300', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1487,6 +1542,7 @@ const mssqlTypesBase = { }, FLOAT: { type: "FLOAT", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1505,6 +1561,7 @@ const mssqlTypesBase = { }, REAL: { type: "REAL", + color: '#64c900', checkDefault: (field) => { return doubleRegex.test(field.default); }, @@ -1532,6 +1589,7 @@ const mssqlTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { return /^\d{4}-\d{2}-\d{2}$/.test(field.default); }, @@ -1542,6 +1600,7 @@ const mssqlTypesBase = { }, DATETIME: { type: "DATETIME", + color: '#00c990', checkDefault: (field) => { if (field.default.toUpperCase() === "CURRENT_TIMESTAMP") { return true; @@ -1600,6 +1659,7 @@ const mssqlTypesBase = { }, SMALLDATETIME: { type: "SMALLDATETIME", + color: '#00c990', checkDefault: (field) => { if (field.default.toUpperCase() === "CURRENT_TIMESTAMP") { return true; @@ -1618,6 +1678,7 @@ const mssqlTypesBase = { }, TIME: { type: "TIME", + color: '#00c990', checkDefault: (field) => { return /^(?:[01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d$/.test(field.default); }, @@ -1648,6 +1709,7 @@ const mssqlTypesBase = { }, CHAR: { type: "CHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1662,6 +1724,7 @@ const mssqlTypesBase = { }, VARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1685,6 +1748,7 @@ const mssqlTypesBase = { }, NCHAR: { type: "CHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1699,6 +1763,7 @@ const mssqlTypesBase = { }, NVARCHAR: { type: "VARCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1808,6 +1873,7 @@ export const mssqlTypes = new Proxy(mssqlTypesBase, { const oraclesqlTypesBase = { INTEGER: { type: "INTEGER", + color: '#bcb300', checkDefault: (field) => { return intRegex.test(field.default); }, @@ -1828,6 +1894,7 @@ const oraclesqlTypesBase = { }, FLOAT: { type: "FLOAT", + color: '#64c900', checkDefault: (field) => { return /^-?\d+(\.\d+)?$/.test(field.default); }, @@ -1875,6 +1942,7 @@ const oraclesqlTypesBase = { }, CHAR: { type: "CHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1889,6 +1957,7 @@ const oraclesqlTypesBase = { }, NCHAR: { type: "NCHAR", + color: '#c99000', checkDefault: (field) => { if (strHasQuotes(field.default)) { return field.default.length - 2 <= field.size; @@ -1951,6 +2020,7 @@ const oraclesqlTypesBase = { }, DATE: { type: "DATE", + color: '#00c990', checkDefault: (field) => { return /^\d{4}-\d{2}-\d{2}$/.test(field.default); }, @@ -1988,6 +2058,7 @@ const oraclesqlTypesBase = { }, BOOLEAN: { type: "BOOLEAN", + color: '#c90032', checkDefault: (field) => { return ( field.default === "0" ||