@dbml/core 3.0.0 → 3.1.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.
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
- var _lodash = _interopRequireDefault(require("lodash"));
8
+ var _lodash = _interopRequireWildcard(require("lodash"));
9
9
  var _schema = _interopRequireDefault(require("./schema"));
10
10
  var _ref2 = _interopRequireDefault(require("./ref"));
11
11
  var _enum2 = _interopRequireDefault(require("./enum"));
@@ -15,6 +15,8 @@ var _element = _interopRequireDefault(require("./element"));
15
15
  var _config = require("./config");
16
16
  var _dbState = _interopRequireDefault(require("./dbState"));
17
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
21
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
20
22
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -55,8 +57,8 @@ var Database = /*#__PURE__*/function (_Element) {
55
57
  _this.generateId();
56
58
  _this.hasDefaultSchema = false;
57
59
  _this.schemas = [];
58
- _this.note = project.note ? project.note.value : null;
59
- _this.noteToken = project.note ? project.note.token : null;
60
+ _this.note = project.note ? (0, _lodash.get)(project, 'note.value', project.note) : null;
61
+ _this.noteToken = project.note ? (0, _lodash.get)(project, 'note.token', project.noteToken) : null;
60
62
  _this.databaseType = project.database_type;
61
63
  _this.name = project.name;
62
64
  _this.aliases = aliases;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _lodash = require("lodash");
8
9
  var _element = _interopRequireDefault(require("./element"));
9
10
  var _enumValue = _interopRequireDefault(require("./enumValue"));
10
11
  var _utils = require("./utils");
@@ -34,15 +35,17 @@ var Enum = /*#__PURE__*/function (_Element) {
34
35
  token = _ref.token,
35
36
  values = _ref.values,
36
37
  note = _ref.note,
37
- schema = _ref.schema;
38
+ schema = _ref.schema,
39
+ _ref$noteToken = _ref.noteToken,
40
+ noteToken = _ref$noteToken === void 0 ? null : _ref$noteToken;
38
41
  _classCallCheck(this, Enum);
39
42
  _this = _super.call(this, token);
40
43
  if (!name) {
41
44
  _this.error('Enum must have a name');
42
45
  }
43
46
  _this.name = name;
44
- _this.note = note ? note.value : null;
45
- _this.noteToken = note ? note.token : null;
47
+ _this.note = note ? (0, _lodash.get)(note, 'value', note) : null;
48
+ _this.noteToken = note ? (0, _lodash.get)(note, 'token', noteToken) : null;
46
49
  _this.values = [];
47
50
  _this.fields = [];
48
51
  _this.schema = schema;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _lodash = require("lodash");
8
9
  var _element = _interopRequireDefault(require("./element"));
9
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
11
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -31,15 +32,17 @@ var EnumValue = /*#__PURE__*/function (_Element) {
31
32
  name = _ref.name,
32
33
  token = _ref.token,
33
34
  note = _ref.note,
34
- _enum = _ref._enum;
35
+ _enum = _ref._enum,
36
+ _ref$noteToken = _ref.noteToken,
37
+ noteToken = _ref$noteToken === void 0 ? null : _ref$noteToken;
35
38
  _classCallCheck(this, EnumValue);
36
39
  _this = _super.call(this, token);
37
40
  if (!name) {
38
41
  _this.error('Enum value must have a name');
39
42
  }
40
43
  _this.name = name;
41
- _this.note = note ? note.value : null;
42
- _this.noteToken = note ? note.token : null;
44
+ _this.note = note ? (0, _lodash.get)(note, 'value', note) : null;
45
+ _this.noteToken = note ? (0, _lodash.get)(note, 'token', noteToken) : null;
43
46
  _this._enum = _enum;
44
47
  _this.dbState = _this._enum.dbState;
45
48
  _this.generateId();
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _lodash = require("lodash");
8
9
  var _element = _interopRequireDefault(require("./element"));
9
10
  var _config = require("./config");
10
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -39,7 +40,9 @@ var Field = /*#__PURE__*/function (_Element) {
39
40
  dbdefault = _ref.dbdefault,
40
41
  increment = _ref.increment,
41
42
  _ref$table = _ref.table,
42
- table = _ref$table === void 0 ? {} : _ref$table;
43
+ table = _ref$table === void 0 ? {} : _ref$table,
44
+ _ref$noteToken = _ref.noteToken,
45
+ noteToken = _ref$noteToken === void 0 ? null : _ref$noteToken;
43
46
  _classCallCheck(this, Field);
44
47
  _this = _super.call(this, token);
45
48
  if (!name) {
@@ -54,8 +57,8 @@ var Field = /*#__PURE__*/function (_Element) {
54
57
  _this.unique = unique;
55
58
  _this.pk = pk;
56
59
  _this.not_null = notNull;
57
- _this.note = note ? note.value : null;
58
- _this.noteToken = note ? note.token : null;
60
+ _this.note = note ? (0, _lodash.get)(note, 'value', note) : null;
61
+ _this.noteToken = note ? (0, _lodash.get)(note, 'token', noteToken) : null;
59
62
  _this.dbdefault = dbdefault;
60
63
  _this.increment = increment;
61
64
  _this.endpoints = [];
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _lodash = require("lodash");
8
9
  var _table = _interopRequireDefault(require("./table"));
9
10
  var _element = _interopRequireDefault(require("./element"));
10
11
  var _enum2 = _interopRequireDefault(require("./enum"));
@@ -46,7 +47,9 @@ var Schema = /*#__PURE__*/function (_Element) {
46
47
  tableGroups = _ref$tableGroups === void 0 ? [] : _ref$tableGroups,
47
48
  token = _ref.token,
48
49
  _ref$database = _ref.database,
49
- database = _ref$database === void 0 ? {} : _ref$database;
50
+ database = _ref$database === void 0 ? {} : _ref$database,
51
+ _ref$noteToken = _ref.noteToken,
52
+ noteToken = _ref$noteToken === void 0 ? null : _ref$noteToken;
50
53
  _classCallCheck(this, Schema);
51
54
  _this = _super.call(this, token);
52
55
  _this.tables = [];
@@ -54,8 +57,8 @@ var Schema = /*#__PURE__*/function (_Element) {
54
57
  _this.tableGroups = [];
55
58
  _this.refs = [];
56
59
  _this.name = name;
57
- _this.note = note ? note.value : null;
58
- _this.noteToken = note ? note.token : null;
60
+ _this.note = note ? (0, _lodash.get)(note, 'value', note) : null;
61
+ _this.noteToken = note ? (0, _lodash.get)(note, 'token', noteToken) : null;
59
62
  _this.alias = alias;
60
63
  _this.database = database;
61
64
  _this.dbState = _this.database.dbState;
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports["default"] = void 0;
8
+ var _lodash = require("lodash");
8
9
  var _element = _interopRequireDefault(require("./element"));
9
10
  var _field = _interopRequireDefault(require("./field"));
10
11
  var _indexes = _interopRequireDefault(require("./indexes"));
@@ -42,13 +43,15 @@ var Table = /*#__PURE__*/function (_Element) {
42
43
  _ref$schema = _ref.schema,
43
44
  schema = _ref$schema === void 0 ? {} : _ref$schema,
44
45
  token = _ref.token,
45
- headerColor = _ref.headerColor;
46
+ headerColor = _ref.headerColor,
47
+ _ref$noteToken = _ref.noteToken,
48
+ noteToken = _ref$noteToken === void 0 ? null : _ref$noteToken;
46
49
  _classCallCheck(this, Table);
47
50
  _this = _super.call(this, token);
48
51
  _this.name = name;
49
52
  _this.alias = alias;
50
- _this.note = note ? note.value : null;
51
- _this.noteToken = note ? note.token : null;
53
+ _this.note = note ? (0, _lodash.get)(note, 'value', note) : null;
54
+ _this.noteToken = note ? (0, _lodash.get)(note, 'token', noteToken) : null;
52
55
  _this.headerColor = headerColor;
53
56
  _this.fields = [];
54
57
  _this.indexes = [];
@@ -12,6 +12,15 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
12
12
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
13
  /* eslint-disable max-classes-per-file */
14
14
  var Index = /*#__PURE__*/function () {
15
+ /**
16
+ * @param {{
17
+ * name: string,
18
+ * unique: boolean,
19
+ * pk: boolean,
20
+ * type: string,
21
+ * columns: {value: string, type: 'column' | 'string' | 'expression'}[],
22
+ * }} param0
23
+ */
15
24
  function Index(_ref) {
16
25
  var name = _ref.name,
17
26
  unique = _ref.unique,
@@ -31,7 +40,7 @@ var Index = /*#__PURE__*/function () {
31
40
  /** @type {boolean} */
32
41
  this.pk = pk;
33
42
 
34
- /** @type {{value: string, type: string}[]} */
43
+ /** @type {{value: string, type: 'column' | 'string' | 'expression'}[]} */
35
44
  this.columns = columns;
36
45
  }
37
46
  _createClass(Index, [{
@@ -53,6 +62,18 @@ var Field = /*#__PURE__*/function () {
53
62
  /** @type {boolean} */
54
63
  // fk;
55
64
 
65
+ /**
66
+ * @param {{
67
+ * name: string,
68
+ * type: {type_name: string, schemaName: string},
69
+ * not_null: boolean,
70
+ * increment: boolean,
71
+ * dbdefault: {value: string, type: 'string' | 'number' | 'boolean' | 'expression'},
72
+ * unique: boolean,
73
+ * pk: boolean,
74
+ * note: {value: string}
75
+ * }} param0
76
+ */
56
77
  function Field(_ref2) {
57
78
  var name = _ref2.name,
58
79
  type = _ref2.type,
@@ -75,7 +96,7 @@ var Field = /*#__PURE__*/function () {
75
96
  /** @type {boolean} */
76
97
  this.increment = increment;
77
98
 
78
- /** @type {{value: string, type: 'string'}} */
99
+ /** @type {{value: string, type: 'string' | 'number' | 'boolean' | 'expression'}} */
79
100
  this.dbdefault = dbdefault;
80
101
 
81
102
  /** @type {boolean} */
@@ -84,7 +105,7 @@ var Field = /*#__PURE__*/function () {
84
105
  /** @type {boolean} */
85
106
  this.pk = pk;
86
107
 
87
- /** @type {string} */
108
+ /** @type {{value: string}} */
88
109
  this.note = note;
89
110
  }
90
111
  _createClass(Field, [{
@@ -106,6 +127,15 @@ var Field = /*#__PURE__*/function () {
106
127
  }();
107
128
  exports.Field = Field;
108
129
  var Table = /*#__PURE__*/function () {
130
+ /**
131
+ * @param {{
132
+ * name: string,
133
+ * schemaName: string,
134
+ * fields: Field[],
135
+ * indexes: Index[],
136
+ * note: {value: string}
137
+ * }} param0
138
+ */
109
139
  function Table(_ref3) {
110
140
  var name = _ref3.name,
111
141
  schemaName = _ref3.schemaName,
@@ -119,13 +149,13 @@ var Table = /*#__PURE__*/function () {
119
149
  /** @type {string} */
120
150
  this.schemaName = schemaName;
121
151
 
122
- /** @type {Array<Field>} */
152
+ /** @type {Field[]} */
123
153
  this.fields = fields || [];
124
154
 
125
- /** @type {Array<Index>} */
155
+ /** @type {Index[]} */
126
156
  this.indexes = indexes || [];
127
157
 
128
- /** @type {string} */
158
+ /** @type {{value: string}} */
129
159
  this.note = note;
130
160
  }
131
161
  _createClass(Table, [{
@@ -149,6 +179,14 @@ var Table = /*#__PURE__*/function () {
149
179
  }();
150
180
  exports.Table = Table;
151
181
  var Endpoint = /*#__PURE__*/function () {
182
+ /**
183
+ * @param {{
184
+ * tableName: string,
185
+ * schemaName: string,
186
+ * fieldNames: string[],
187
+ * relation: '*' | '1'
188
+ * }} param0
189
+ */
152
190
  function Endpoint(_ref4) {
153
191
  var tableName = _ref4.tableName,
154
192
  schemaName = _ref4.schemaName,
@@ -164,7 +202,7 @@ var Endpoint = /*#__PURE__*/function () {
164
202
  /** @type {string[]} */
165
203
  this.fieldNames = fieldNames;
166
204
 
167
- /** @type {string} */
205
+ /** @type {'*' | '1'} */
168
206
  this.relation = relation;
169
207
  }
170
208
  _createClass(Endpoint, [{
@@ -182,6 +220,14 @@ var Endpoint = /*#__PURE__*/function () {
182
220
  }();
183
221
  exports.Endpoint = Endpoint;
184
222
  var Ref = /*#__PURE__*/function () {
223
+ /**
224
+ * @param {{
225
+ * name: string,
226
+ * endpoints: Endpoint[],
227
+ * onDelete: string,
228
+ * onUpdate: string
229
+ * }} param0
230
+ */
185
231
  function Ref(_ref5) {
186
232
  var name = _ref5.name,
187
233
  endpoints = _ref5.endpoints,
@@ -191,7 +237,7 @@ var Ref = /*#__PURE__*/function () {
191
237
  /** @type {string} */
192
238
  this.name = name;
193
239
 
194
- /** @type {Array<Endpoint>} */
240
+ /** @type {Endpoint[]} */
195
241
  this.endpoints = endpoints || [];
196
242
 
197
243
  /** @type {string} */
@@ -23,16 +23,21 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
23
23
  var ParserErrorListener = /*#__PURE__*/function (_antlr4$error$ErrorLi) {
24
24
  _inherits(ParserErrorListener, _antlr4$error$ErrorLi);
25
25
  var _super = _createSuper(ParserErrorListener);
26
- function ParserErrorListener() {
26
+ function ParserErrorListener(args) {
27
+ var _this;
27
28
  _classCallCheck(this, ParserErrorListener);
28
- return _super.apply(this, arguments);
29
+ _this = _super.call(this, args);
30
+
31
+ /** @type {SyntaxError[]} */
32
+ _this.errors = [];
33
+ return _this;
29
34
  }
35
+
36
+ // eslint-disable-next-line no-unused-vars
30
37
  _createClass(ParserErrorListener, [{
31
38
  key: "syntaxError",
32
- value:
33
- // eslint-disable-next-line class-methods-use-this, no-unused-vars
34
- function syntaxError(recognizer, offendingSymbol, line, column, msg, err) {
35
- throw new _SyntaxError["default"](line, column, msg);
39
+ value: function syntaxError(recognizer, offendingSymbol, line, column, msg, err) {
40
+ this.errors.push(new _SyntaxError["default"](line, column, msg));
36
41
  }
37
42
  }]);
38
43
  return ParserErrorListener;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TABLE_CONSTRAINT_KIND = exports.DATA_TYPE = exports.CONSTRAINT_TYPE = exports.COLUMN_CONSTRAINT_KIND = void 0;
7
+ var TABLE_CONSTRAINT_KIND = {
8
+ FIELD: 'field',
9
+ INDEX: 'index',
10
+ FK: 'fk',
11
+ UNIQUE: 'unique',
12
+ PK: 'pk'
13
+ };
14
+ exports.TABLE_CONSTRAINT_KIND = TABLE_CONSTRAINT_KIND;
15
+ var COLUMN_CONSTRAINT_KIND = {
16
+ NOT_NULL: 'not_null',
17
+ UNIQUE: 'unique',
18
+ PK: 'pk',
19
+ DEFAULT: 'dbdefault',
20
+ INCREMENT: 'increment',
21
+ INLINE_REF: 'inline_ref',
22
+ NOTE: 'note'
23
+ };
24
+ exports.COLUMN_CONSTRAINT_KIND = COLUMN_CONSTRAINT_KIND;
25
+ var DATA_TYPE = {
26
+ STRING: 'string',
27
+ NUMBER: 'number',
28
+ BOOLEAN: 'boolean',
29
+ EXPRESSION: 'expression'
30
+ };
31
+
32
+ // legacy - for compatibility with model_structure
33
+ exports.DATA_TYPE = DATA_TYPE;
34
+ var CONSTRAINT_TYPE = {
35
+ COLUMN: 'column',
36
+ STRING: 'string',
37
+ EXPRESSION: 'expression'
38
+ };
39
+ exports.CONSTRAINT_TYPE = CONSTRAINT_TYPE;
@@ -8,6 +8,9 @@ var _antlr = _interopRequireDefault(require("antlr4"));
8
8
  var _PostgreSQLLexer = _interopRequireDefault(require("../parsers/postgresql/PostgreSQLLexer"));
9
9
  var _PostgreSQLParser = _interopRequireDefault(require("../parsers/postgresql/PostgreSQLParser"));
10
10
  var _PostgresASTGen = _interopRequireDefault(require("./postgres/PostgresASTGen"));
11
+ var _MySqlLexer = _interopRequireDefault(require("../parsers/mysql/MySqlLexer"));
12
+ var _MySqlParser = _interopRequireDefault(require("../parsers/mysql/MySqlParser"));
13
+ var _MySQLASTGen = _interopRequireDefault(require("./mysql/MySQLASTGen"));
11
14
  var _ParserErrorListener = _interopRequireDefault(require("./ParserErrorListener"));
12
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
16
  /* eslint-disable import/no-named-as-default-member */
@@ -16,17 +19,36 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
16
19
  function parse(input, format) {
17
20
  var chars = new _antlr["default"].InputStream(input);
18
21
  var database = null;
19
- if (format === 'postgres') {
20
- var lexer = new _PostgreSQLLexer["default"](chars);
21
- var tokens = new _antlr["default"].CommonTokenStream(lexer);
22
- var parser = new _PostgreSQLParser["default"](tokens);
23
- parser.buildParseTrees = true;
24
- parser.removeErrorListeners();
25
- parser.addErrorListener(new _ParserErrorListener["default"]());
26
- var parseTree = parser.root();
27
- database = parseTree.accept(new _PostgresASTGen["default"]());
28
- } else {
29
- throw new Error("Format not supported: ".concat(format));
22
+ var errorListener = new _ParserErrorListener["default"]();
23
+ switch (format) {
24
+ case 'postgres':
25
+ {
26
+ var lexer = new _PostgreSQLLexer["default"](chars);
27
+ var tokens = new _antlr["default"].CommonTokenStream(lexer);
28
+ var parser = new _PostgreSQLParser["default"](tokens);
29
+ parser.buildParseTrees = true;
30
+ parser.removeErrorListeners();
31
+ parser.addErrorListener(errorListener);
32
+ var parseTree = parser.root();
33
+ database = parseTree.accept(new _PostgresASTGen["default"]());
34
+ if (errorListener.errors.length) throw errorListener.errors;
35
+ break;
36
+ }
37
+ case 'mysql':
38
+ {
39
+ var _lexer = new _MySqlLexer["default"](chars);
40
+ var _tokens = new _antlr["default"].CommonTokenStream(_lexer);
41
+ var _parser = new _MySqlParser["default"](_tokens);
42
+ _parser.buildParseTrees = true;
43
+ _parser.removeErrorListeners();
44
+ _parser.addErrorListener(errorListener);
45
+ var _parseTree = _parser.root();
46
+ database = _parseTree.accept(new _MySQLASTGen["default"]());
47
+ if (errorListener.errors.length) throw errorListener.errors;
48
+ break;
49
+ }
50
+ default:
51
+ throw new Error("Format not supported: ".concat(format));
30
52
  }
31
53
  return database;
32
54
  }