@dbml/core
Advanced tools
Comparing version 2.6.1 to 3.0.0
@@ -11,3 +11,3 @@ "use strict"; | ||
function _export(str, format) { | ||
var database = _Parser["default"].parse(str, 'dbml'); | ||
var database = new _Parser["default"]().parse(str, 'dbmlv2'); | ||
return _ModelExporter["default"]["export"](database.normalize(), format); | ||
@@ -14,0 +14,0 @@ } |
@@ -59,3 +59,3 @@ "use strict"; | ||
} else if (field.dbdefault.type === 'string') { | ||
line += " DEFAULT \"".concat(field.dbdefault.value, "\""); | ||
line += " DEFAULT '".concat(field.dbdefault.value, "'"); | ||
} else { | ||
@@ -66,3 +66,3 @@ line += " DEFAULT ".concat(field.dbdefault.value); | ||
if (field.note) { | ||
line += " COMMENT '".concat(field.note.replace(/'/g, "\\'"), "'"); | ||
line += " COMMENT '".concat(field.note.replace(/'/g, "''"), "'"); | ||
} | ||
@@ -251,3 +251,3 @@ return line; | ||
var schema = model.schemas[table.schemaId]; | ||
line += "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "`".concat(schema.name, "`.") : '', "`").concat(table.name, "` COMMENT = '").concat(table.note.replace(/'/g, "\\'"), "'"); | ||
line += "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "`".concat(schema.name, "`.") : '', "`").concat(table.name, "` COMMENT = '").concat(table.note.replace(/'/g, "''"), "'"); | ||
} | ||
@@ -254,0 +254,0 @@ line += ';\n'; |
@@ -272,3 +272,3 @@ "use strict"; | ||
{ | ||
line += " TABLE ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "\"".concat(schema.name, "\".") : '', "\"").concat(table.name, "\" IS '").concat(table.note.replace(/'/g, "\""), "'"); | ||
line += " TABLE ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "\"".concat(schema.name, "\".") : '', "\"").concat(table.name, "\" IS '").concat(table.note.replace(/'/g, "''"), "'"); | ||
break; | ||
@@ -279,3 +279,3 @@ } | ||
var field = model.fields[comment.fieldId]; | ||
line += " COLUMN ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "\"".concat(schema.name, "\".") : '', "\"").concat(table.name, "\".\"").concat(field.name, "\" IS '").concat(field.note.replace(/'/g, "\""), "'"); | ||
line += " COLUMN ".concat((0, _utils.shouldPrintSchema)(schema, model) ? "\"".concat(schema.name, "\".") : '', "\"").concat(table.name, "\".\"").concat(field.name, "\" IS '").concat(field.note.replace(/'/g, "''"), "'"); | ||
break; | ||
@@ -282,0 +282,0 @@ } |
@@ -249,3 +249,3 @@ "use strict"; | ||
line += "@name = N'Table_Description',\n"; | ||
line += "@value = '".concat(table.note.replace(/'/g, "\""), "',\n"); | ||
line += "@value = '".concat(table.note.replace(/'/g, "''"), "',\n"); | ||
line += "@level0type = N'Schema', @level0name = '".concat((0, _utils.shouldPrintSchema)(schema, model) ? "".concat(schema.name) : 'dbo', "',\n"); | ||
@@ -259,3 +259,3 @@ line += "@level1type = N'Table', @level1name = '".concat(table.name, "';\n"); | ||
line += "@name = N'Column_Description',\n"; | ||
line += "@value = '".concat(field.note.replace(/'/g, "\""), "',\n"); | ||
line += "@value = '".concat(field.note.replace(/'/g, "''"), "',\n"); | ||
line += "@level0type = N'Schema', @level0name = '".concat((0, _utils.shouldPrintSchema)(schema, model) ? "".concat(schema.name) : 'dbo', "',\n"); | ||
@@ -262,0 +262,0 @@ line += "@level1type = N'Table', @level1name = '".concat(table.name, "',\n"); |
@@ -11,3 +11,3 @@ "use strict"; | ||
function _import(str, format) { | ||
var database = _Parser["default"].parse(str, format); | ||
var database = new _Parser["default"]().parse(str, format); | ||
var dbml = _ModelExporter["default"]["export"](database.normalize(), 'dbml'); | ||
@@ -14,0 +14,0 @@ return dbml; |
@@ -7,2 +7,3 @@ "use strict"; | ||
exports["default"] = void 0; | ||
var _parse = require("@dbml/parse"); | ||
var _database = _interopRequireDefault(require("../model_structure/database")); | ||
@@ -23,6 +24,68 @@ var _mysqlParser = _interopRequireDefault(require("./mysqlParser")); | ||
var Parser = /*#__PURE__*/function () { | ||
function Parser() { | ||
function Parser(DBMLCompiler) { | ||
_classCallCheck(this, Parser); | ||
this.DBMLCompiler = DBMLCompiler || new _parse.Compiler(); | ||
} | ||
_createClass(Parser, null, [{ | ||
_createClass(Parser, [{ | ||
key: "parse", | ||
value: function parse(str, format) { | ||
var rawDatabase = {}; | ||
switch (format) { | ||
case 'mysql': | ||
rawDatabase = Parser.parseMySQLToJSON(str); | ||
break; | ||
case 'postgres': | ||
rawDatabase = Parser.parsePostgresToJSONv2(str); | ||
break; | ||
case 'postgresLegacy': | ||
rawDatabase = Parser.parsePostgresToJSON(str); | ||
break; | ||
case 'dbml': | ||
rawDatabase = Parser.parseDBMLToJSON(str); | ||
break; | ||
case 'dbmlv2': | ||
{ | ||
this.DBMLCompiler.setSource(str); | ||
var errors = this.DBMLCompiler.parse.errors(); | ||
if (errors.length > 0) { | ||
throw errors.map(function (error) { | ||
return { | ||
message: error.diagnostic, | ||
location: { | ||
start: { | ||
line: error.nodeOrToken.startPos.line + 1, | ||
column: error.nodeOrToken.startPos.column + 1 | ||
}, | ||
end: { | ||
line: error.nodeOrToken.endPos.line + 1, | ||
column: error.nodeOrToken.endPos.column + 1 | ||
} | ||
}, | ||
code: error.code | ||
}; | ||
}); | ||
} | ||
rawDatabase = this.DBMLCompiler.parse.rawDb(); | ||
break; | ||
} | ||
case 'schemarb': | ||
rawDatabase = Parser.parseSchemaRbToJSON(str); | ||
break; | ||
case 'mssql': | ||
rawDatabase = Parser.parseMSSQLToJSON(str); | ||
break; | ||
case 'json': | ||
if (_typeof(str) === 'object') { | ||
rawDatabase = str; | ||
} else { | ||
rawDatabase = JSON.parse(str); | ||
} | ||
break; | ||
default: | ||
break; | ||
} | ||
var schema = Parser.parseJSONToDatabase(rawDatabase); | ||
return schema; | ||
} | ||
}], [{ | ||
key: "parseJSONToDatabase", | ||
@@ -63,38 +126,2 @@ value: function parseJSONToDatabase(rawDatabase) { | ||
} | ||
}, { | ||
key: "parse", | ||
value: function parse(str, format) { | ||
var rawDatabase = {}; | ||
switch (format) { | ||
case 'mysql': | ||
rawDatabase = Parser.parseMySQLToJSON(str); | ||
break; | ||
case 'postgres': | ||
rawDatabase = Parser.parsePostgresToJSONv2(str); | ||
break; | ||
case 'postgresLegacy': | ||
rawDatabase = Parser.parsePostgresToJSON(str); | ||
break; | ||
case 'dbml': | ||
rawDatabase = Parser.parseDBMLToJSON(str); | ||
break; | ||
case 'schemarb': | ||
rawDatabase = Parser.parseSchemaRbToJSON(str); | ||
break; | ||
case 'mssql': | ||
rawDatabase = Parser.parseMSSQLToJSON(str); | ||
break; | ||
case 'json': | ||
if (_typeof(str) === 'object') { | ||
rawDatabase = str; | ||
} else { | ||
rawDatabase = JSON.parse(str); | ||
} | ||
break; | ||
default: | ||
break; | ||
} | ||
var schema = Parser.parseJSONToDatabase(rawDatabase); | ||
return schema; | ||
} | ||
}]); | ||
@@ -101,0 +128,0 @@ return Parser; |
{ | ||
"name": "@dbml/core", | ||
"version": "2.6.1", | ||
"version": "3.0.0", | ||
"description": "> TODO: description", | ||
@@ -35,2 +35,3 @@ "author": "Holistics <dev@holistics.io>", | ||
"dependencies": { | ||
"@dbml/parse": "^3.0.0", | ||
"antlr4": "^4.13.1", | ||
@@ -62,3 +63,3 @@ "lodash": "^4.17.15", | ||
}, | ||
"gitHead": "54ed18bb2232c6143992aa3d81f4a2b48c36a249" | ||
"gitHead": "d475bdf2122e26b3b2c3bb00c67124b5e669ba10" | ||
} |
@@ -0,3 +1,5 @@ | ||
import { Compiler } from '@dbml/parse'; | ||
import Database, { RawDatabase } from '../model_structure/database'; | ||
declare class Parser { | ||
constructor(DBMLCompiler: Compiler?); | ||
static parseJSONToDatabase(rawDatabase: RawDatabase): Database; | ||
@@ -10,4 +12,4 @@ static parseMySQLToJSON(str: string): RawDatabase; | ||
static parseMSSQLToJSON(str: string): RawDatabase; | ||
static parse(str: string, format: 'mysql' | 'postgres' | 'dbml' | 'schemarb' | 'mssql' | 'json'): Database; | ||
parse(str: string, format: 'mysql' | 'postgres' | 'dbml' | 'dbmlv2' | 'schemarb' | 'mssql' | 'json'): Database; | ||
} | ||
export default Parser; |
5317412
33507
5
+ Added@dbml/parse@^3.0.0
+ Added@dbml/parse@3.9.5(transitive)