UNPKG

mysqldump-ddl-parser

Version:

Parse DDL, output JS object.

1 lines 3.89 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MysqldumpDdlParser=t():e.MysqldumpDdlParser=t()}(this,(()=>(()=>{"use strict";var e={879:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{sql;name="";type="";notNull=!1;autoIncrement=!1;default=null;constructor(e,t){this.sql=e,"oracle"==t?this.oracle(e):this.mysql(e)}oracle(e){let t=e.match(/"([^"]+)" ([^ ]+)/);this.name=(t?.at(1)??"").toLowerCase(),this.type=t?.at(2)??"",/NOT NULL/.test(e)&&(this.notNull=!0),t=e.match(/ DEFAULT ([^ ]*),?/),t&&(this.default=t.at(1)??"")}mysql(e){let t=e.match(/`([^`]+)` ([^ ]+)/);this.name=(t?.at(1)??"").toLowerCase(),this.type=t?.at(2)??"",/NOT NULL/.test(e)&&(this.notNull=!0),/AUTO_INCREMENT/.test(e)&&(this.autoIncrement=!0),t=e.match(/ DEFAULT (.*),?/),t&&(this.default=t.at(1)??"")}}},815:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{sql;name="";foreignKey="";referenceTable="";referenceColumn="";constructor(e,t){this.sql=e,"oracle"==t?this.oracle(e):this.mysql(e)}oracle(e){const t=e.match(/CONSTRAINT "([^"]*)" +FOREIGN KEY +\("([^"]*)"\)[ \r\n]+REFERENCES ([^\(]+)\("([^"]*)"\)/);this.name=(t?.at(1)??"").toLocaleLowerCase(),this.foreignKey=(t?.at(2)??"").toLocaleLowerCase();const s=(t?.at(3)??"").split(/\./);this.referenceTable=s[s.length-1].trim().replaceAll(/"/g,"").toLocaleLowerCase(),this.referenceColumn=(t?.at(4)??"").trim().replaceAll(/"/g,"").toLocaleLowerCase()}mysql(e){const t=e.match(/CONSTRAINT `([^`]*)` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)/);this.name=(t?.at(1)??"").toLocaleLowerCase(),this.foreignKey=(t?.at(2)??"").toLocaleLowerCase(),this.referenceTable=(t?.at(3)??"").toLocaleLowerCase(),this.referenceColumn=(t?.at(4)??"").toLocaleLowerCase()}}},316:function(e,t,s){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const l=a(s(879)),o=a(s(815));t.default=class{sql;name="";columns=[];primaryKey=[];keys=[];foreignKeys=[];constructor(e,t){this.sql=e,"oracle"==t?this.oracle(e):this.mysql(e)}oracle(e){e.replace(/\r?\n[\t ]+REFERENCES/," REFERENCES").split(/\r?\n/).forEach((e=>{if(e=e.trim(),/CREATE TABLE/.test(e)){const t=e.match(/"([^]+)"/);if(t){const e=t[1].split(/\./);this.name=e[e.length-1].replaceAll(/"/g,"").toLowerCase()}}else if(/^(\([\t ]*)?"/.test(e))this.columns.push(new l.default(e,"oracle"));else if(/ FOREIGN KEY /.test(e))this.foreignKeys.push(new o.default(e,"oracle"));else if(/PRIMARY KEY/.test(e)){const t=e.match(/PRIMARY KEY.*\(([^)]*)\)/);t&&(this.primaryKey=t[1].split(/,/).map((e=>e.trim().toLowerCase().replaceAll(/"/g,""))))}}))}mysql(e){e.split(/\r?\n/).forEach((e=>{if(e=e.trim(),/CREATE TABLE/.test(e))this.name=(e.match(/`([^`]+)`/)?.at(1)??"").toLowerCase();else if(/^`/.test(e))this.columns.push(new l.default(e,"mysql"));else if(/ FOREIGN KEY /.test(e))this.foreignKeys.push(new o.default(e,"mysql"));else if(/^PRIMARY KEY/.test(e)){const t=e.match(/\((.*)\)/);t?.at(1)&&(this.primaryKey=t?.at(1)?.split(/,/).map((e=>e.replaceAll("`","")))??this.primaryKey)}else if(/^KEY/.test(e)){const t=e.match(/\((.*)\)/);if(t?.at(1)){const e=t?.at(1)?.split(/,/).map((e=>e.replaceAll("`","").toLowerCase()));e&&this.keys.push(e)}}}))}}},590:function(e,t,s){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const l=a(s(316));t.default=(e,t)=>{const s=e.split(/;/).map((e=>e.trim())),a={};return s.filter((e=>e.startsWith("CREATE TABLE"))).forEach((e=>{const s=new l.default(e,t??"mysql");a[s.name]=s})),a}}},t={},s=function s(a){var l=t[a];if(void 0!==l)return l.exports;var o=t[a]={exports:{}};return e[a].call(o.exports,o,o.exports,s),o.exports}(590);return s.default})()));