@lark-apaas/db-schema-sync 0.1.10 → 0.1.11-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +1 -1
- package/dist/{chunk-5IYLZYAX.js → chunk-MY6YRWYZ.js} +32 -20
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -1382,12 +1382,15 @@ function escapeDoubleQuote(s) {
|
|
|
1382
1382
|
|
|
1383
1383
|
// src/generator/mappers/primitives.ts
|
|
1384
1384
|
var PG_CORE = "drizzle-orm/pg-core";
|
|
1385
|
+
function withArray(base, f) {
|
|
1386
|
+
return f.isArray ? `${base}.array()` : base;
|
|
1387
|
+
}
|
|
1385
1388
|
var primitiveMappers = [
|
|
1386
1389
|
// uuid
|
|
1387
1390
|
{
|
|
1388
1391
|
name: "uuid",
|
|
1389
1392
|
match: (f) => f.type === "uuid",
|
|
1390
|
-
generate: (f) => `uuid("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1393
|
+
generate: (f) => withArray(`uuid("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1391
1394
|
imports: () => [{ name: "uuid", from: PG_CORE }]
|
|
1392
1395
|
},
|
|
1393
1396
|
// varchar (honors extraInfo.max_length from listTableView API)
|
|
@@ -1397,9 +1400,9 @@ var primitiveMappers = [
|
|
|
1397
1400
|
generate: (f) => {
|
|
1398
1401
|
const maxLength = f.extraInfo?.max_length;
|
|
1399
1402
|
if (typeof maxLength === "number" && Number.isInteger(maxLength) && maxLength > 0) {
|
|
1400
|
-
return `varchar("${escapeDoubleQuote(f.fieldName)}", { length: ${maxLength} })
|
|
1403
|
+
return withArray(`varchar("${escapeDoubleQuote(f.fieldName)}", { length: ${maxLength} })`, f);
|
|
1401
1404
|
}
|
|
1402
|
-
return `varchar("${escapeDoubleQuote(f.fieldName)}")
|
|
1405
|
+
return withArray(`varchar("${escapeDoubleQuote(f.fieldName)}")`, f);
|
|
1403
1406
|
},
|
|
1404
1407
|
imports: () => [{ name: "varchar", from: PG_CORE }]
|
|
1405
1408
|
},
|
|
@@ -1407,105 +1410,105 @@ var primitiveMappers = [
|
|
|
1407
1410
|
{
|
|
1408
1411
|
name: "text",
|
|
1409
1412
|
match: (f) => f.type === "text",
|
|
1410
|
-
generate: (f) => `text("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1413
|
+
generate: (f) => withArray(`text("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1411
1414
|
imports: () => [{ name: "text", from: PG_CORE }]
|
|
1412
1415
|
},
|
|
1413
1416
|
// smallint (int2)
|
|
1414
1417
|
{
|
|
1415
1418
|
name: "smallint",
|
|
1416
1419
|
match: (f) => f.type === "int2",
|
|
1417
|
-
generate: (f) => `smallint("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1420
|
+
generate: (f) => withArray(`smallint("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1418
1421
|
imports: () => [{ name: "smallint", from: PG_CORE }]
|
|
1419
1422
|
},
|
|
1420
1423
|
// integer (int4, integer)
|
|
1421
1424
|
{
|
|
1422
1425
|
name: "integer",
|
|
1423
1426
|
match: (f) => ["int4", "integer"].includes(f.type),
|
|
1424
|
-
generate: (f) => `integer("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1427
|
+
generate: (f) => withArray(`integer("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1425
1428
|
imports: () => [{ name: "integer", from: PG_CORE }]
|
|
1426
1429
|
},
|
|
1427
1430
|
// bigint (int8, bigint)
|
|
1428
1431
|
{
|
|
1429
1432
|
name: "bigint",
|
|
1430
1433
|
match: (f) => ["int8", "bigint"].includes(f.type),
|
|
1431
|
-
generate: (f) => `bigint("${escapeDoubleQuote(f.fieldName)}", { mode: 'number' })`,
|
|
1434
|
+
generate: (f) => withArray(`bigint("${escapeDoubleQuote(f.fieldName)}", { mode: 'number' })`, f),
|
|
1432
1435
|
imports: () => [{ name: "bigint", from: PG_CORE }]
|
|
1433
1436
|
},
|
|
1434
1437
|
// real (float4, real)
|
|
1435
1438
|
{
|
|
1436
1439
|
name: "real",
|
|
1437
1440
|
match: (f) => ["float4", "real"].includes(f.type),
|
|
1438
|
-
generate: (f) => `real("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1441
|
+
generate: (f) => withArray(`real("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1439
1442
|
imports: () => [{ name: "real", from: PG_CORE }]
|
|
1440
1443
|
},
|
|
1441
1444
|
// doublePrecision (float8, double precision)
|
|
1442
1445
|
{
|
|
1443
1446
|
name: "doublePrecision",
|
|
1444
1447
|
match: (f) => ["float8", "double precision"].includes(f.type),
|
|
1445
|
-
generate: (f) => `doublePrecision("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1448
|
+
generate: (f) => withArray(`doublePrecision("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1446
1449
|
imports: () => [{ name: "doublePrecision", from: PG_CORE }]
|
|
1447
1450
|
},
|
|
1448
1451
|
// numeric (numeric, decimal)
|
|
1449
1452
|
{
|
|
1450
1453
|
name: "numeric",
|
|
1451
1454
|
match: (f) => ["numeric", "decimal"].includes(f.type),
|
|
1452
|
-
generate: (f) => `numeric("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1455
|
+
generate: (f) => withArray(`numeric("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1453
1456
|
imports: () => [{ name: "numeric", from: PG_CORE }]
|
|
1454
1457
|
},
|
|
1455
1458
|
// boolean (bool, boolean)
|
|
1456
1459
|
{
|
|
1457
1460
|
name: "boolean",
|
|
1458
1461
|
match: (f) => ["bool", "boolean"].includes(f.type),
|
|
1459
|
-
generate: (f) => `boolean("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1462
|
+
generate: (f) => withArray(`boolean("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1460
1463
|
imports: () => [{ name: "boolean", from: PG_CORE }]
|
|
1461
1464
|
},
|
|
1462
1465
|
// json
|
|
1463
1466
|
{
|
|
1464
1467
|
name: "json",
|
|
1465
1468
|
match: (f) => f.type === "json",
|
|
1466
|
-
generate: (f) => `json("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1469
|
+
generate: (f) => withArray(`json("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1467
1470
|
imports: () => [{ name: "json", from: PG_CORE }]
|
|
1468
1471
|
},
|
|
1469
1472
|
// jsonb
|
|
1470
1473
|
{
|
|
1471
1474
|
name: "jsonb",
|
|
1472
1475
|
match: (f) => f.type === "jsonb",
|
|
1473
|
-
generate: (f) => `jsonb("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1476
|
+
generate: (f) => withArray(`jsonb("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1474
1477
|
imports: () => [{ name: "jsonb", from: PG_CORE }]
|
|
1475
1478
|
},
|
|
1476
1479
|
// timestamp (without timezone) — uses drizzle-orm timestamp, not customTimestamptz
|
|
1477
1480
|
{
|
|
1478
1481
|
name: "timestamp",
|
|
1479
1482
|
match: (f) => f.type === "timestamp",
|
|
1480
|
-
generate: (f) => `timestamp("${escapeDoubleQuote(f.fieldName)}", { mode: 'string' })`,
|
|
1483
|
+
generate: (f) => withArray(`timestamp("${escapeDoubleQuote(f.fieldName)}", { mode: 'string' })`, f),
|
|
1481
1484
|
imports: () => [{ name: "timestamp", from: PG_CORE }]
|
|
1482
1485
|
},
|
|
1483
1486
|
// date
|
|
1484
1487
|
{
|
|
1485
1488
|
name: "date",
|
|
1486
1489
|
match: (f) => f.type === "date",
|
|
1487
|
-
generate: (f) => `date("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1490
|
+
generate: (f) => withArray(`date("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1488
1491
|
imports: () => [{ name: "date", from: PG_CORE }]
|
|
1489
1492
|
},
|
|
1490
1493
|
// timetz (time with time zone)
|
|
1491
1494
|
{
|
|
1492
1495
|
name: "timetz",
|
|
1493
1496
|
match: (f) => f.type === "timetz",
|
|
1494
|
-
generate: (f) => `time("${escapeDoubleQuote(f.fieldName)}", { withTimezone: true })`,
|
|
1497
|
+
generate: (f) => withArray(`time("${escapeDoubleQuote(f.fieldName)}", { withTimezone: true })`, f),
|
|
1495
1498
|
imports: () => [{ name: "time", from: PG_CORE }]
|
|
1496
1499
|
},
|
|
1497
1500
|
// time
|
|
1498
1501
|
{
|
|
1499
1502
|
name: "time",
|
|
1500
1503
|
match: (f) => f.type === "time",
|
|
1501
|
-
generate: (f) => `time("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1504
|
+
generate: (f) => withArray(`time("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1502
1505
|
imports: () => [{ name: "time", from: PG_CORE }]
|
|
1503
1506
|
},
|
|
1504
1507
|
// serial
|
|
1505
1508
|
{
|
|
1506
1509
|
name: "serial",
|
|
1507
1510
|
match: (f) => f.type === "serial",
|
|
1508
|
-
generate: (f) => `serial("${escapeDoubleQuote(f.fieldName)}")`,
|
|
1511
|
+
generate: (f) => withArray(`serial("${escapeDoubleQuote(f.fieldName)}")`, f),
|
|
1509
1512
|
imports: () => [{ name: "serial", from: PG_CORE }]
|
|
1510
1513
|
}
|
|
1511
1514
|
];
|
|
@@ -1580,7 +1583,10 @@ function createEnumMapper(enumNameToIdentifier) {
|
|
|
1580
1583
|
var fallbackMapper = {
|
|
1581
1584
|
name: "fallback-text",
|
|
1582
1585
|
match: () => true,
|
|
1583
|
-
generate: (field) =>
|
|
1586
|
+
generate: (field) => {
|
|
1587
|
+
const base = `text("${escapeDoubleQuote(field.fieldName)}")`;
|
|
1588
|
+
return field.isArray ? `${base}.array()` : base;
|
|
1589
|
+
},
|
|
1584
1590
|
imports: () => [{ name: "text", from: "drizzle-orm/pg-core" }]
|
|
1585
1591
|
};
|
|
1586
1592
|
|
|
@@ -1622,6 +1628,7 @@ var ImportCollector = class {
|
|
|
1622
1628
|
|
|
1623
1629
|
// src/generator/default-value.ts
|
|
1624
1630
|
var CUSTOM_CAST_TYPES = /* @__PURE__ */ new Set(["user_profile", "file_attachment"]);
|
|
1631
|
+
var STRING_NUMERIC_TYPES = /* @__PURE__ */ new Set(["numeric", "decimal"]);
|
|
1625
1632
|
var CURRENT_USER_SENTINEL = "current_user";
|
|
1626
1633
|
function formatDefaultValue(value, field) {
|
|
1627
1634
|
if (value == null || value === "") return "";
|
|
@@ -1631,7 +1638,12 @@ function formatDefaultValue(value, field) {
|
|
|
1631
1638
|
if (/^CURRENT_TIMESTAMP$/i.test(trimmed)) return ".default(sql`CURRENT_TIMESTAMP`)";
|
|
1632
1639
|
if (trimmed === "true") return ".default(true)";
|
|
1633
1640
|
if (trimmed === "false") return ".default(false)";
|
|
1634
|
-
if (/^-?\d+(\.\d+)?$/.test(trimmed))
|
|
1641
|
+
if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
|
|
1642
|
+
if (field && STRING_NUMERIC_TYPES.has(field.type)) {
|
|
1643
|
+
return `.default('${trimmed}')`;
|
|
1644
|
+
}
|
|
1645
|
+
return `.default(${trimmed})`;
|
|
1646
|
+
}
|
|
1635
1647
|
if (field && CUSTOM_CAST_TYPES.has(field.type) && !trimmed.includes("::") && trimmed.toLowerCase() !== CURRENT_USER_SENTINEL) {
|
|
1636
1648
|
const pgLiteral = trimmed.replace(/'/g, "''");
|
|
1637
1649
|
const escaped = pgLiteral.replace(/`/g, "\\`").replace(/\$\{/g, "\\${");
|
package/dist/index.js
CHANGED