@dbml/core 5.4.1 → 5.5.1-alpha.0

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.
@@ -1157,6 +1157,40 @@ var MssqlASTGen = exports["default"] = /*#__PURE__*/function (_TSqlParserVisitor
1157
1157
  });
1158
1158
  if (!table) return; // ALTER TABLE should appear after CREATE TABLE, so skip if table is not created yet
1159
1159
 
1160
+ // Handle WITH CHECK/NOCHECK ADD CONSTRAINT FK
1161
+ if (ctx.WITH() && (ctx.CHECK() || ctx.NOCHECK()) && ctx.FOREIGN()) {
1162
+ var constraintName = ctx.constraint ? ctx.constraint.accept(this) : undefined;
1163
+ var localColumns = ctx.fk.accept(this);
1164
+
1165
+ // table_name()[1] is the referenced table (table_name()[0] is the table being altered)
1166
+ var refTableNames = ctx.table_name()[1].accept(this);
1167
+ var _getSchemaAndTableNam4 = getSchemaAndTableName(refTableNames),
1168
+ refSchemaName = _getSchemaAndTableNam4.schemaName,
1169
+ refTableName = _getSchemaAndTableNam4.tableName;
1170
+
1171
+ // pk is optional - if not specified, assume same column names as fk
1172
+ var refColumns = ctx.pk ? ctx.pk.accept(this) : localColumns;
1173
+ var onDelete = ctx.on_delete().length > 0 ? ctx.on_delete()[0].accept(this) : null;
1174
+ var onUpdate = ctx.on_update().length > 0 ? ctx.on_update()[0].accept(this) : null;
1175
+ var ref = {
1176
+ name: constraintName,
1177
+ endpoints: [{
1178
+ tableName: tableName,
1179
+ schemaName: schemaName,
1180
+ fieldNames: localColumns,
1181
+ relation: '*'
1182
+ }, {
1183
+ tableName: refTableName,
1184
+ schemaName: refSchemaName,
1185
+ fieldNames: refColumns,
1186
+ relation: '1'
1187
+ }],
1188
+ onDelete: onDelete,
1189
+ onUpdate: onUpdate
1190
+ };
1191
+ this.data.refs.push(ref);
1192
+ return;
1193
+ }
1160
1194
  var columnDefTableConstraints = ctx.column_def_table_constraints() ? ctx.column_def_table_constraints().accept(this) : [];
1161
1195
  var _splitColumnDefTableC2 = splitColumnDefTableConstraints(columnDefTableConstraints),
1162
1196
  fieldsData = _splitColumnDefTableC2.fieldsData,
@@ -1201,9 +1235,9 @@ var MssqlASTGen = exports["default"] = /*#__PURE__*/function (_TSqlParserVisitor
1201
1235
  }, {
1202
1236
  key: "visitCreate_index",
1203
1237
  value: function visitCreate_index(ctx) {
1204
- var _getSchemaAndTableNam4 = getSchemaAndTableName(ctx.table_name().accept(this)),
1205
- schemaName = _getSchemaAndTableNam4.schemaName,
1206
- tableName = _getSchemaAndTableNam4.tableName;
1238
+ var _getSchemaAndTableNam5 = getSchemaAndTableName(ctx.table_name().accept(this)),
1239
+ schemaName = _getSchemaAndTableNam5.schemaName,
1240
+ tableName = _getSchemaAndTableNam5.tableName;
1207
1241
  var table = this.data.tables.find(function (t) {
1208
1242
  return t.name === tableName && t.schemaName === schemaName;
1209
1243
  });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dbml/core",
4
- "version": "5.4.1",
4
+ "version": "5.5.1-alpha.0",
5
5
  "description": "> TODO: description",
6
6
  "author": "Holistics <dev@holistics.io>",
7
7
  "license": "Apache-2.0",
@@ -36,7 +36,7 @@
36
36
  "lint:fix": "eslint --fix ."
37
37
  },
38
38
  "dependencies": {
39
- "@dbml/parse": "^5.4.1",
39
+ "@dbml/parse": "^5.5.1-alpha.0",
40
40
  "antlr4": "^4.13.1",
41
41
  "lodash": "^4.17.15",
42
42
  "parsimmon": "^1.13.0",
@@ -63,7 +63,7 @@
63
63
  "typescript": "^5.9.3",
64
64
  "typescript-eslint": "^8.46.3"
65
65
  },
66
- "gitHead": "f5c8bf0c9d95948e3874cfb6cc777f65c4180891",
66
+ "gitHead": "355cbecd2d809b9750aea2854fbc85bf469db257",
67
67
  "engines": {
68
68
  "node": ">=16"
69
69
  }