UNPKG

cross-schema

Version:

Cross-database schema inspector for Node.js. Retrieve unified metadata for tables, columns, indexes, enums, and more across MySQL, PostgreSQL, SQLite, and SQL Server.

174 lines (172 loc) 3.57 kB
// src/platforms/types.js var MYSQL_MAP = { tinyint: "TINYINT", bool: "TINYINT", boolean: "TINYINT", bit: "INTEGER", smallint: "SMALLINT", mediumint: "INTEGER", int: "INTEGER", integer: "INTEGER", bigint: "BIGINT", float: "FLOAT", double: "DOUBLE", "double precision": "DOUBLE", real: "FLOAT", decimal: "DECIMAL", numeric: "DECIMAL", dec: "DECIMAL", fixed: "DECIMAL", tinytext: "TEXT", mediumtext: "TEXT", longtext: "TEXT", longblob: "BINARY", blob: "BINARY", text: "TEXT", varchar: "STRING", string: "STRING", char: "CHAR", datetime: "DATETIME", year: "DATE", date: "DATE", time: "TIME", timestamp: "TIMESTAMP", enum: "STRING", set: "STRING", binary: "BINARY", varbinary: "BINARY", json: "JSON" }; var SQLITE_MAP = { text: "TEXT", varchar: "TEXT", char: "TEXT", int: "INTEGER", integer: "INTEGER", real: "REAL", blob: "BLOB", numeric: "NUMERIC" }; var POSTGRES_MAP = { bit: "INTEGER", "bit varying": "INTEGER", varbit: "INTEGER", bool: "BOOLEAN", boolean: "BOOLEAN", box: "STRING", circle: "STRING", point: "STRING", line: "STRING", lseg: "STRING", polygon: "STRING", path: "STRING", character: "CHAR", char: "CHAR", bpchar: "CHAR", "character varying": "STRING", varchar: "STRING", text: "TEXT", bytea: "BINARY", cidr: "STRING", inet: "STRING", macaddr: "STRING", real: "FLOAT", float4: "FLOAT", "double precision": "DOUBLE", float8: "DOUBLE", decimal: "DECIMAL", numeric: "DECIMAL", money: "MONEY", smallint: "SMALLINT", int2: "SMALLINT", int4: "INTEGER", int: "INTEGER", integer: "INTEGER", bigint: "BIGINT", int8: "BIGINT", oid: "BIGINT", smallserial: "SMALLINT", serial2: "SMALLINT", serial4: "INTEGER", serial: "INTEGER", bigserial: "BIGINT", serial8: "BIGINT", pg_lsn: "BIGINT", date: "DATE", interval: "STRING", "time without time zone": "TIME", time: "TIME", "time with time zone": "TIME", timetz: "TIME", "timestamp without time zone": "TIMESTAMP", timestamp: "TIMESTAMP", "timestamp with time zone": "TIMESTAMP", timestamptz: "TIMESTAMP", abstime: "TIMESTAMP", tsquery: "STRING", tsvector: "STRING", txid_snapshot: "STRING", unknown: "STRING", uuid: "STRING", json: "JSON", jsonb: "JSON", xml: "STRING" }; var SQLSRV_TYPES = { // exact numbers BIGINT: "BIGINT", numeric: "DECIMAL", bit: "SMALLINT", smallint: "SMALLINT", decimal: "DECIMAL", smallmoney: "MONEY", int: "INTEGER", tinyint: "TINYINT", money: "MONEY", // approximate numbers float: "FLOAT", double: "DOUBLE", real: "FLOAT", // date and time date: "DATE", datetimeoffset: "DATETIME", datetime2: "DATETIME", smalldatetime: "DATETIME", datetime: "DATETIME", time: "TIME", // character strings char: "CHAR", varchar: "STRING", text: "TEXT", // unicode character strings nchar: "CHAR", nvarchar: "STRING", ntext: "TEXT", // binary strings binary: "BINARY", varbinary: "BINARY", image: "BINARY", // other data types // 'cursor' type cannot be used with tables timestamp: "TIMESTAMP", hierarchyid: "STRING", uniqueidentifier: "STRING", sql_variant: "STRING", xml: "STRING", table: "STRING" }; var GENERAL_TYPES = { integer: ["TINYINT", "SMALLINT", "INTEGER", "BIGINT"], boolean: ["BOOLEAN"], double: ["FLOAT", "DOUBLE", "DECIMAL"], string: ["STRING", "TEXT", "CHAR"], resource: ["BINARY"], array: ["JSON"] }; export { MYSQL_MAP, SQLITE_MAP, POSTGRES_MAP, SQLSRV_TYPES, GENERAL_TYPES };