drizzle-kit 0.16.9-43ec28a → 0.16.9-5ee905c

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.
Files changed (2) hide show
  1. package/index.js +127 -15
  2. package/package.json +2 -1
package/index.js CHANGED
@@ -12802,7 +12802,7 @@ __export(pgSerializer_exports, {
12802
12802
  generatePgSnapshot: () => generatePgSnapshot,
12803
12803
  indexName: () => indexName
12804
12804
  });
12805
- var import_pg_core2, import_utils6, import_sql2, import_table2, dialect4, indexName, generatePgSnapshot, fromDatabase;
12805
+ var import_pg_core2, import_utils6, import_sql2, import_table2, dialect4, indexName, generatePgSnapshot, fromDatabase, defaultForColumn;
12806
12806
  var init_pgSerializer = __esm({
12807
12807
  "src/serializer/pgSerializer.ts"() {
12808
12808
  import_pg_core2 = require("drizzle-orm/pg-core");
@@ -12924,7 +12924,7 @@ var init_pgSerializer = __esm({
12924
12924
  return map;
12925
12925
  }, {});
12926
12926
  const schemasObject = Object.fromEntries(
12927
- schemas.map((it) => [it.schemaName, it.schemaName])
12927
+ schemas.filter((it) => it.schemaName !== "public").map((it) => [it.schemaName, it.schemaName])
12928
12928
  );
12929
12929
  return {
12930
12930
  version: "5",
@@ -12944,7 +12944,10 @@ var init_pgSerializer = __esm({
12944
12944
  const allTables = await db.query(
12945
12945
  `SELECT table_schema, table_name FROM information_schema.tables WHERE table_schema = 'public';`
12946
12946
  );
12947
- const schemas = new Set(allTables.rows.map((it) => it.table_schema));
12947
+ const schemas = new Set(
12948
+ allTables.rows.map((it) => it.table_schema)
12949
+ );
12950
+ schemas.delete("public");
12948
12951
  progressCallback("tables", allTables.rows.length, "done");
12949
12952
  let columnsCount = 0;
12950
12953
  let indexesCount = 0;
@@ -13055,7 +13058,7 @@ var init_pgSerializer = __esm({
13055
13058
  const uniqueKey = tableConstraints.rows.filter(
13056
13059
  (mapRow) => columnName === mapRow.column_name && mapRow.constraint_type === "UNIQUE"
13057
13060
  );
13058
- const defaultValue = columnResponse.column_default === null ? void 0 : columnResponse.column_default;
13061
+ const defaultValue = defaultForColumn(columnResponse);
13059
13062
  const isSerial = columnType === "serial";
13060
13063
  columnToReturn[columnName] = {
13061
13064
  name: columnName,
@@ -13108,7 +13111,7 @@ var init_pgSerializer = __esm({
13108
13111
  progressCallback("indexes", indexesCount, "fetching");
13109
13112
  result[tableName] = {
13110
13113
  name: tableName,
13111
- schema: tableSchema,
13114
+ schema: tableSchema !== "public" ? tableSchema : "",
13112
13115
  columns: columnToReturn,
13113
13116
  indexes: indexToReturn,
13114
13117
  foreignKeys: foreignKeysToReturn
@@ -13161,6 +13164,13 @@ var init_pgSerializer = __esm({
13161
13164
  }
13162
13165
  };
13163
13166
  };
13167
+ defaultForColumn = (column5) => {
13168
+ if (column5.data_type === "serial" || column5.data_type === "smallserial" || column5.data_type === "bigserial") {
13169
+ return void 0;
13170
+ }
13171
+ const defaultValue = column5.column_default === null ? void 0 : column5.column_default;
13172
+ return defaultValue;
13173
+ };
13164
13174
  }
13165
13175
  });
13166
13176
 
@@ -13453,7 +13463,8 @@ var init_sqlgenerator = __esm({
13453
13463
  isPgNativeType = (it) => {
13454
13464
  if (pgNativeTypes.has(it))
13455
13465
  return true;
13456
- return it.startsWith("varchar(") || it.startsWith("numeric(");
13466
+ const toCheck = it.replace(/ /g, "");
13467
+ return toCheck.startsWith("varchar(") || toCheck.startsWith("numeric(") || toCheck.startsWith("timestamp(");
13457
13468
  };
13458
13469
  Convertor = class {
13459
13470
  };
@@ -21986,7 +21997,6 @@ var init_words = __esm({
21986
21997
  "hiroim",
21987
21998
  "hitman",
21988
21999
  "hobgoblin",
21989
- "holocaust",
21990
22000
  "hulk",
21991
22001
  "human_cannonball",
21992
22002
  "human_fly",
@@ -22959,9 +22969,97 @@ var init_migrate = __esm({
22959
22969
  }
22960
22970
  });
22961
22971
 
22972
+ // node_modules/.pnpm/camelcase@7.0.1/node_modules/camelcase/index.js
22973
+ function camelCase(input, options) {
22974
+ if (!(typeof input === "string" || Array.isArray(input))) {
22975
+ throw new TypeError("Expected the input to be `string | string[]`");
22976
+ }
22977
+ options = {
22978
+ pascalCase: false,
22979
+ preserveConsecutiveUppercase: false,
22980
+ ...options
22981
+ };
22982
+ if (Array.isArray(input)) {
22983
+ input = input.map((x) => x.trim()).filter((x) => x.length).join("-");
22984
+ } else {
22985
+ input = input.trim();
22986
+ }
22987
+ if (input.length === 0) {
22988
+ return "";
22989
+ }
22990
+ const toLowerCase = options.locale === false ? (string) => string.toLowerCase() : (string) => string.toLocaleLowerCase(options.locale);
22991
+ const toUpperCase = options.locale === false ? (string) => string.toUpperCase() : (string) => string.toLocaleUpperCase(options.locale);
22992
+ if (input.length === 1) {
22993
+ if (SEPARATORS.test(input)) {
22994
+ return "";
22995
+ }
22996
+ return options.pascalCase ? toUpperCase(input) : toLowerCase(input);
22997
+ }
22998
+ const hasUpperCase = input !== toLowerCase(input);
22999
+ if (hasUpperCase) {
23000
+ input = preserveCamelCase(input, toLowerCase, toUpperCase, options.preserveConsecutiveUppercase);
23001
+ }
23002
+ input = input.replace(LEADING_SEPARATORS, "");
23003
+ input = options.preserveConsecutiveUppercase ? preserveConsecutiveUppercase(input, toLowerCase) : toLowerCase(input);
23004
+ if (options.pascalCase) {
23005
+ input = toUpperCase(input.charAt(0)) + input.slice(1);
23006
+ }
23007
+ return postProcess(input, toUpperCase);
23008
+ }
23009
+ var UPPERCASE, LOWERCASE, LEADING_CAPITAL, IDENTIFIER, SEPARATORS, LEADING_SEPARATORS, SEPARATORS_AND_IDENTIFIER, NUMBERS_AND_IDENTIFIER, preserveCamelCase, preserveConsecutiveUppercase, postProcess;
23010
+ var init_camelcase = __esm({
23011
+ "node_modules/.pnpm/camelcase@7.0.1/node_modules/camelcase/index.js"() {
23012
+ UPPERCASE = /[\p{Lu}]/u;
23013
+ LOWERCASE = /[\p{Ll}]/u;
23014
+ LEADING_CAPITAL = /^[\p{Lu}](?![\p{Lu}])/gu;
23015
+ IDENTIFIER = /([\p{Alpha}\p{N}_]|$)/u;
23016
+ SEPARATORS = /[_.\- ]+/;
23017
+ LEADING_SEPARATORS = new RegExp("^" + SEPARATORS.source);
23018
+ SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, "gu");
23019
+ NUMBERS_AND_IDENTIFIER = new RegExp("\\d+" + IDENTIFIER.source, "gu");
23020
+ preserveCamelCase = (string, toLowerCase, toUpperCase, preserveConsecutiveUppercase2) => {
23021
+ let isLastCharLower = false;
23022
+ let isLastCharUpper = false;
23023
+ let isLastLastCharUpper = false;
23024
+ let isLastLastCharPreserved = false;
23025
+ for (let index4 = 0; index4 < string.length; index4++) {
23026
+ const character = string[index4];
23027
+ isLastLastCharPreserved = index4 > 2 ? string[index4 - 3] === "-" : true;
23028
+ if (isLastCharLower && UPPERCASE.test(character)) {
23029
+ string = string.slice(0, index4) + "-" + string.slice(index4);
23030
+ isLastCharLower = false;
23031
+ isLastLastCharUpper = isLastCharUpper;
23032
+ isLastCharUpper = true;
23033
+ index4++;
23034
+ } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character) && (!isLastLastCharPreserved || preserveConsecutiveUppercase2)) {
23035
+ string = string.slice(0, index4 - 1) + "-" + string.slice(index4 - 1);
23036
+ isLastLastCharUpper = isLastCharUpper;
23037
+ isLastCharUpper = false;
23038
+ isLastCharLower = true;
23039
+ } else {
23040
+ isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;
23041
+ isLastLastCharUpper = isLastCharUpper;
23042
+ isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;
23043
+ }
23044
+ }
23045
+ return string;
23046
+ };
23047
+ preserveConsecutiveUppercase = (input, toLowerCase) => {
23048
+ LEADING_CAPITAL.lastIndex = 0;
23049
+ return input.replace(LEADING_CAPITAL, (m1) => toLowerCase(m1));
23050
+ };
23051
+ postProcess = (input, toUpperCase) => {
23052
+ SEPARATORS_AND_IDENTIFIER.lastIndex = 0;
23053
+ NUMBERS_AND_IDENTIFIER.lastIndex = 0;
23054
+ return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)).replace(NUMBERS_AND_IDENTIFIER, (m) => toUpperCase(m));
23055
+ };
23056
+ }
23057
+ });
23058
+
22962
23059
  // src/@types/utils.ts
22963
23060
  var init_utils2 = __esm({
22964
23061
  "src/@types/utils.ts"() {
23062
+ init_camelcase();
22965
23063
  String.prototype.trimChar = function(char) {
22966
23064
  let start = 0;
22967
23065
  let end = this.length;
@@ -22975,9 +23073,10 @@ var init_utils2 = __esm({
22975
23073
  return this.replace(/ +/g, " ").trim();
22976
23074
  };
22977
23075
  String.prototype.camelCase = function() {
22978
- return this.toLowerCase().replace(/([-_ ][a-z0-9])/g, (group) => {
22979
- return group.toUpperCase().replace("-", "").replace("_", "").replace(" ", "");
22980
- });
23076
+ return camelCase(String(this));
23077
+ };
23078
+ String.prototype.concatIf = function(it, condition) {
23079
+ return condition ? `${this}${it}` : this;
22981
23080
  };
22982
23081
  Array.prototype.random = function() {
22983
23082
  return this[~~(Math.random() * this.length)];
@@ -27387,7 +27486,8 @@ var init_introspect = __esm({
27387
27486
  "interval",
27388
27487
  "bigint",
27389
27488
  "bigserial",
27390
- "doublePrecision"
27489
+ "doublePrecision",
27490
+ "uuid"
27391
27491
  ]);
27392
27492
  objToStatement = (json) => {
27393
27493
  json = Object.fromEntries(Object.entries(json).filter((it) => it[1]));
@@ -27464,13 +27564,13 @@ var init_introspect = __esm({
27464
27564
  return `export const ${it.name.camelCase()} = pgEnum("${it.name}", [${values}])
27465
27565
  `;
27466
27566
  }).join("").concat("\n");
27467
- const schemaStatements = Object.entries(schemas).filter((it) => it[0] !== "public").map((it) => {
27567
+ const schemaStatements = Object.entries(schemas).map((it) => {
27468
27568
  return `export const ${it[1]} = pgSchema("${it[0]}");
27469
27569
  `;
27470
27570
  }).join();
27471
27571
  const tableStatements = Object.values(schema4.tables).map((table4) => {
27472
27572
  const schema5 = schemas[table4.schema];
27473
- const func = schema5 || schema5 === "public" ? "pgTable" : schema5;
27573
+ const func = schema5 ? schema5 : "pgTable";
27474
27574
  let statement = `export const ${table4.name.camelCase()} = ${func}("${table4.name}", {
27475
27575
  `;
27476
27576
  statement += createTableColumns(
@@ -27508,6 +27608,8 @@ var init_introspect = __esm({
27508
27608
  `;
27509
27609
  result += enumStatements;
27510
27610
  result += schemaStatements;
27611
+ result += `import { sql } from "drizzle-orm/sql"
27612
+ `;
27511
27613
  result += "\n";
27512
27614
  result += tableStatements.join("\n\n");
27513
27615
  return result;
@@ -27558,6 +27660,11 @@ var init_introspect = __esm({
27558
27660
  out += defaultValue ? `.default(${defaultValue})` : "";
27559
27661
  return out;
27560
27662
  }
27663
+ if (lowered === "uuid") {
27664
+ let out = `${name.camelCase()}: uuid("${name}")`;
27665
+ out += defaultValue === "gen_random_uuid()" ? ".defaultRandom()" : defaultValue ? `.default(sql\`${defaultValue}\`)` : "";
27666
+ return out;
27667
+ }
27561
27668
  if (lowered.startsWith("numeric")) {
27562
27669
  let params;
27563
27670
  if (lowered.length > 7) {
@@ -27641,7 +27748,10 @@ var init_introspect = __esm({
27641
27748
  if (enumTypes.has(type)) {
27642
27749
  return `${name.camelCase()}: ${type.camelCase()}("${name}")`;
27643
27750
  }
27644
- console.log("uknown", type);
27751
+ let unknown = `// TODO: failed to parse database type '${type}'
27752
+ `;
27753
+ unknown += ` ${name.camelCase()}: unknown("${name}")`;
27754
+ return unknown;
27645
27755
  };
27646
27756
  createTableColumns = (columns, fks, enumTypes) => {
27647
27757
  let statement = "";
@@ -27655,8 +27765,9 @@ var init_introspect = __esm({
27655
27765
  return res;
27656
27766
  }, {});
27657
27767
  columns.forEach((it) => {
27768
+ const columnStatement = column4(it.type, it.name, enumTypes, it.default);
27658
27769
  statement += " ";
27659
- statement += column4(it.type, it.name, enumTypes, it.default);
27770
+ statement += columnStatement;
27660
27771
  statement += it.primaryKey ? ".primaryKey()" : "";
27661
27772
  statement += it.notNull ? ".notNull()" : "";
27662
27773
  const fks2 = fkByColumnName[it.name];
@@ -27915,6 +28026,7 @@ var package_default = {
27915
28026
  ]
27916
28027
  },
27917
28028
  dependencies: {
28029
+ camelcase: "^7.0.1",
27918
28030
  chalk: "^5.2.0",
27919
28031
  commander: "^9.4.1",
27920
28032
  esbuild: "^0.15.18",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-kit",
3
- "version": "0.16.9-43ec28a",
3
+ "version": "0.16.9-5ee905c",
4
4
  "repository": "https://github.com/drizzle-team/drizzle-kit-mirror",
5
5
  "author": "Alex Blokh <aleksandrblokh@gmail.com>",
6
6
  "license": "MIT",
@@ -38,6 +38,7 @@
38
38
  ]
39
39
  },
40
40
  "dependencies": {
41
+ "camelcase": "^7.0.1",
41
42
  "chalk": "^5.2.0",
42
43
  "commander": "^9.4.1",
43
44
  "esbuild": "^0.15.18",