@dbml/core 3.13.0-alpha.3 → 3.13.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.
@@ -74,6 +74,9 @@ var Database = /*#__PURE__*/function (_Element) {
74
74
  _this.aliases = aliases;
75
75
  _this.records = [];
76
76
  _this.tablePartials = [];
77
+
78
+ // The global array containing references with 1 endpoint being a field injected from a partial to a table
79
+ // These refs are add to this array when resolving partials in tables (`Table.processPartials()`)
77
80
  _this.injectedRawRefs = [];
78
81
 
79
82
  // The process order is important. Do not change !
@@ -104,13 +104,11 @@ var Endpoint = /*#__PURE__*/function (_Element) {
104
104
  }, {
105
105
  key: "shallowExport",
106
106
  value: function shallowExport() {
107
- var _this$injectedPartial;
108
107
  return {
109
108
  schemaName: this.schemaName,
110
109
  tableName: this.tableName,
111
110
  fieldNames: this.fieldNames,
112
- relation: this.relation,
113
- injectedPartialId: (_this$injectedPartial = this.injectedPartial) === null || _this$injectedPartial === void 0 ? void 0 : _this$injectedPartial.id
111
+ relation: this.relation
114
112
  };
115
113
  }
116
114
  }, {
@@ -119,12 +119,14 @@ var Index = /*#__PURE__*/function (_Element) {
119
119
  }, {
120
120
  key: "shallowExport",
121
121
  value: function shallowExport() {
122
+ var _this$injectedPartial;
122
123
  return {
123
124
  name: this.name,
124
125
  type: this.type,
125
126
  unique: this.unique,
126
127
  pk: this.pk,
127
- note: this.note
128
+ note: this.note,
129
+ injectedPartialId: (_this$injectedPartial = this.injectedPartial) === null || _this$injectedPartial === void 0 ? void 0 : _this$injectedPartial.id
128
130
  };
129
131
  }
130
132
  }, {
@@ -214,6 +214,7 @@ var Table = /*#__PURE__*/function (_Element) {
214
214
  }],
215
215
  injectedPartial: tablePartial
216
216
  };
217
+ // The global array containing references with 1 endpoint being a field injected from a partial to a table
217
218
  _this5.schema.database.injectedRawRefs.push(ref);
218
219
  });
219
220
  }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.HandleLessLessGreaterGreater = HandleLessLessGreaterGreater;
8
+ exports.charIsLetter = charIsLetter;
8
9
  exports.checkLA = checkLA;
9
10
  exports["default"] = void 0;
10
11
  exports.isTag = isTag;
@@ -40,4 +41,5 @@ exports["default"] = PostgreSQLLexerBase;
40
41
  function checkLA() {}
41
42
  function HandleLessLessGreaterGreater() {}
42
43
  function pushTag() {}
43
- function isTag() {}
44
+ function isTag() {}
45
+ function charIsLetter() {}
@@ -34,7 +34,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
34
34
  function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
35
35
  function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
36
36
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
37
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } /* eslint-disable class-methods-use-this */
37
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } /* eslint-disable no-param-reassign */ /* eslint-disable consistent-return */ /* eslint-disable class-methods-use-this */
38
38
  var COMMAND_KIND = {
39
39
  REF: 'ref'
40
40
  };
@@ -106,7 +106,10 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
106
106
  value: function visitStmt(ctx) {
107
107
  if (ctx.createstmt()) {
108
108
  var table = ctx.createstmt().accept(this);
109
- return this.data.tables.push(table);
109
+
110
+ // filter out null table that can cause error in model_structure stage
111
+ if (table) this.data.tables.push(table);
112
+ return;
110
113
  }
111
114
  if (ctx.indexstmt()) {
112
115
  /** @type {Index} */
@@ -115,8 +118,8 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
115
118
  tableName = _indexStmt$pathName.tableName,
116
119
  schemaName = _indexStmt$pathName.schemaName;
117
120
  var _table = findTable(this.data.tables, schemaName, tableName);
118
- if (!_table) return;
119
- return _table.indexes.push(indexStmt.index);
121
+ if (_table) _table.indexes.push(indexStmt.index);
122
+ return;
120
123
  }
121
124
  if (ctx.altertablestmt()) {
122
125
  ctx.altertablestmt().accept(this);
@@ -132,7 +135,6 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
132
135
  }
133
136
  if (ctx.insertstmt()) {
134
137
  ctx.insertstmt().accept(this);
135
- return;
136
138
  }
137
139
  }
138
140
 
@@ -465,10 +467,12 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
465
467
  key: "visitC_expr_expr",
466
468
  value: function visitC_expr_expr(ctx) {
467
469
  if (ctx.aexprconst()) return ctx.aexprconst().accept(this);
468
- if (ctx.a_expr()) return {
469
- value: ctx.a_expr().getText(),
470
- type: _constants.DATA_TYPE.EXPRESSION
471
- };
470
+ if (ctx.a_expr()) {
471
+ return {
472
+ value: ctx.a_expr().getText(),
473
+ type: _constants.DATA_TYPE.EXPRESSION
474
+ };
475
+ }
472
476
  return {
473
477
  value: ctx.getText(),
474
478
  type: _constants.DATA_TYPE.EXPRESSION
@@ -589,11 +593,9 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
589
593
  }, {
590
594
  key: "visitUnreserved_keyword",
591
595
  value: function visitUnreserved_keyword(ctx) {
592
- return ctx.getChild(0).getText();
596
+ return ctx.getText();
593
597
  }
594
- }, {
595
- key: "visitIdentifier",
596
- value:
598
+
597
599
  /*
598
600
  Identifier opt_uescape
599
601
  | QuotedIdentifier
@@ -602,7 +604,9 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
602
604
  | plsqlidentifier
603
605
  | plsql_unreserved_keyword
604
606
  */
605
- function visitIdentifier(ctx) {
607
+ }, {
608
+ key: "visitIdentifier",
609
+ value: function visitIdentifier(ctx) {
606
610
  if (ctx.Identifier()) {
607
611
  return ctx.Identifier().getText();
608
612
  }
@@ -705,18 +709,24 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
705
709
  key: "visitSimpletypename",
706
710
  value: function visitSimpletypename(ctx) {
707
711
  if (ctx.generictype()) return ctx.generictype().accept(this);
708
- if (ctx.character()) return {
709
- type: ctx.character().accept(this),
710
- schemaName: null
711
- };
712
- if (ctx.numeric()) return {
713
- type: ctx.numeric().accept(this),
714
- schemaName: null
715
- };
716
- if (ctx.constdatetime()) return {
717
- type: ctx.constdatetime().accept(this),
718
- schemaName: null
719
- };
712
+ if (ctx.character()) {
713
+ return {
714
+ type: ctx.character().accept(this),
715
+ schemaName: null
716
+ };
717
+ }
718
+ if (ctx.numeric()) {
719
+ return {
720
+ type: ctx.numeric().accept(this),
721
+ schemaName: null
722
+ };
723
+ }
724
+ if (ctx.constdatetime()) {
725
+ return {
726
+ type: ctx.constdatetime().accept(this),
727
+ schemaName: null
728
+ };
729
+ }
720
730
  return {
721
731
  type: ctx.getText(),
722
732
  schemaName: null
@@ -1023,7 +1033,6 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
1023
1033
  }, {
1024
1034
  key: "visitCommentstmt",
1025
1035
  value: function visitCommentstmt(ctx) {
1026
- var note = ctx.comment_text().accept(this);
1027
1036
  if (ctx.object_type_any_name()) {
1028
1037
  var objectType = ctx.object_type_any_name().accept(this);
1029
1038
  if (!objectType) return;
@@ -1033,9 +1042,9 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
1033
1042
  var schemaName = names.length > 1 ? names[names.length - 2] : undefined;
1034
1043
  var table = findTable(this.data.tables, schemaName, tableName);
1035
1044
  if (!table) return;
1036
- var _note = ctx.comment_text().accept(this);
1045
+ var note = ctx.comment_text().accept(this);
1037
1046
  table.note = {
1038
- value: escapeStr(_note)
1047
+ value: escapeStr(note)
1039
1048
  };
1040
1049
  }
1041
1050
  }
@@ -1049,9 +1058,9 @@ var PostgresASTGen = /*#__PURE__*/function (_PostgreSQLParserVisi) {
1049
1058
  return field.name === fieldName;
1050
1059
  });
1051
1060
  if (!field) return;
1052
- var _note2 = ctx.comment_text().accept(this);
1061
+ var _note = ctx.comment_text().accept(this);
1053
1062
  field.note = {
1054
- value: escapeStr(_note2)
1063
+ value: escapeStr(_note)
1055
1064
  };
1056
1065
  }
1057
1066
  }
@@ -864,7 +864,7 @@ PostgreSQLLexer.prototype.OperatorEndingWithPlusMinus_sempred = function (localc
864
864
  PostgreSQLLexer.prototype.IdentifierStartChar_sempred = function (localctx, predIndex) {
865
865
  switch (predIndex) {
866
866
  case 6:
867
- return charIsLetter();
867
+ return (0, _PostgreSQLLexerBase2.charIsLetter)();
868
868
  case 7:
869
869
  return;
870
870
  CheckIfUtf32Letter();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dbml/core",
3
- "version": "3.13.0-alpha.3",
3
+ "version": "3.13.0",
4
4
  "description": "> TODO: description",
5
5
  "author": "Holistics <dev@holistics.io>",
6
6
  "license": "Apache-2.0",
@@ -32,7 +32,7 @@
32
32
  "prepublish": "npm run build"
33
33
  },
34
34
  "dependencies": {
35
- "@dbml/parse": "^3.13.0-alpha.3",
35
+ "@dbml/parse": "^3.13.0",
36
36
  "antlr4": "^4.13.1",
37
37
  "lodash": "^4.17.15",
38
38
  "parsimmon": "^1.13.0",
@@ -59,7 +59,7 @@
59
59
  "\\.(?!json$)[^.]*$": "@glen/jest-raw-loader"
60
60
  }
61
61
  },
62
- "gitHead": "65d1cf56fcad06c42f625c9214c17c1b4c54b249",
62
+ "gitHead": "4b705ec829db097bbeb21cf06b2b989cd16173b4",
63
63
  "engines": {
64
64
  "node": ">=16"
65
65
  }
@@ -3,6 +3,7 @@ import DbState from './dbState';
3
3
  import Element, { RawNote, Token } from './element';
4
4
  import IndexColumn from './indexColumn';
5
5
  import Table from './table';
6
+ import TablePartial from './tablePartial';
6
7
  interface RawIndex {
7
8
  columns: IndexColumn;
8
9
  type: any;
@@ -23,6 +24,7 @@ declare class Index extends Element {
23
24
  noteToken: Token;
24
25
  table: Table;
25
26
  dbState: DbState;
27
+ injectedPartial: TablePartial;
26
28
  constructor({ columns, type, unique, pk, token, name, note, table }: RawIndex);
27
29
  generateId(): void;
28
30
  processIndexColumns(rawColumns: any): void;
@@ -38,6 +40,7 @@ declare class Index extends Element {
38
40
  unique: boolean;
39
41
  pk: string;
40
42
  note: string;
43
+ injectedPartialId?: number;
41
44
  };
42
45
  exportChild(): {
43
46
  columns: {
@@ -57,6 +60,7 @@ declare class Index extends Element {
57
60
  unique: boolean;
58
61
  pk: string;
59
62
  note: string;
63
+ injectedPartialId?: number;
60
64
  };
61
65
  normalize(model: NormalizedDatabase): void;
62
66
  }
@@ -1,38 +0,0 @@
1
- export default TablePartial;
2
- declare class TablePartial extends Element {
3
- constructor({ name, note, fields, indexes, token, headerColor, noteToken, dbState, }?: {
4
- name: any;
5
- note: any;
6
- fields?: any[];
7
- indexes?: any[];
8
- token: any;
9
- headerColor: any;
10
- noteToken?: any;
11
- dbState: any;
12
- });
13
- name: any;
14
- note: any;
15
- noteToken: any;
16
- headerColor: any;
17
- fields: any[];
18
- indexes: any[];
19
- dbState: any;
20
- generateId(): void;
21
- id: any;
22
- export(): {
23
- name: any;
24
- note: any;
25
- headerColor: any;
26
- fields: any[];
27
- indexes: any[];
28
- };
29
- shallowExport(): {
30
- name: any;
31
- note: any;
32
- headerColor: any;
33
- fields: any[];
34
- indexes: any[];
35
- };
36
- normalize(model: any): void;
37
- }
38
- import Element from './element';