@dbml/connector 9.0.0-optional-ref.8 → 9.1.0-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.
@@ -49,7 +49,7 @@ interface RefEndpoint {
49
49
  tableName: string;
50
50
  schemaName: string;
51
51
  fieldNames: string[];
52
- relation: string;
52
+ relation: '*' | '1';
53
53
  }
54
54
  interface Ref {
55
55
  name: string;
package/dist/index.js CHANGED
@@ -168,7 +168,7 @@ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.
168
168
  ORDER BY
169
169
  s.name,
170
170
  t.name;
171
- `,i=await e.query(r),a=(e,t)=>e.length===t.length?e.every((e,n)=>e.tableName===t[n].tableName&&e.schemaName===t[n].schemaName&&e.fieldNames.length===t[n].fieldNames.length&&e.fieldNames.every((e,r)=>e===t[n].fieldNames[r])):!1;return i.recordset.forEach(e=>{let{table_schema:t,fk_constraint_name:r,table_name:i,column_names:o,foreign_table_schema:s,foreign_table_name:c,foreign_column_names:l,on_delete:u,on_update:d}=e,f={name:r,endpoints:[{tableName:i,schemaName:t,fieldNames:o.split(`,`),relation:`0..*`},{tableName:c,schemaName:s,fieldNames:l.split(`,`),relation:`0..1`}],onDelete:u===`NO_ACTION`?null:u,onUpdate:d===`NO_ACTION`?null:d};n.some(e=>a(e.endpoints,f.endpoints))||n.push(f)}),n},he=async(e,t)=>{let n=`
171
+ `,i=await e.query(r),a=(e,t)=>e.length===t.length?e.every((e,n)=>e.tableName===t[n].tableName&&e.schemaName===t[n].schemaName&&e.fieldNames.length===t[n].fieldNames.length&&e.fieldNames.every((e,r)=>e===t[n].fieldNames[r])):!1;return i.recordset.forEach(e=>{let{table_schema:t,fk_constraint_name:r,table_name:i,column_names:o,foreign_table_schema:s,foreign_table_name:c,foreign_column_names:l,on_delete:u,on_update:d}=e,f={name:r,endpoints:[{tableName:i,schemaName:t,fieldNames:o.split(`,`),relation:`*`},{tableName:c,schemaName:s,fieldNames:l.split(`,`),relation:`1`}],onDelete:u===`NO_ACTION`?null:u,onUpdate:d===`NO_ACTION`?null:d};n.some(e=>a(e.endpoints,f.endpoints))||n.push(f)}),n},he=async(e,t)=>{let n=`
172
172
  WITH user_tables AS (
173
173
  SELECT
174
174
  TABLE_SCHEMA,
@@ -3357,7 +3357,7 @@ sSi6
3357
3357
  rc.delete_rule
3358
3358
  order by
3359
3359
  rc.table_name;
3360
- `,[t]))[0].map(e=>{let{constraintName:t,onDelete:n,onUpdate:r,foreignTableName:i,foreignColumnNames:a,refTableName:o,refColumnNames:s}=e;return{name:t,endpoints:[{tableName:i,fieldNames:a.split(`,`),relation:`0..*`},{tableName:o,fieldNames:s.split(`,`),relation:`0..1`}],onDelete:n===`NO ACTION`?null:n,onUpdate:r===`NO ACTION`?null:r}})}function Nr(e,t){let n=Object.assign(e,{});return Object.keys(t).forEach(e=>{let r=t[e];if(!n[e]){n[e]=r;return}n[e].push(...r)}),n}async function Pr(e){let t=await yr(e),{database:n}=t.config;if(!n)throw Error(`Cannot get schema name from the connection`);try{let[{tableList:e,fieldMap:r},i,a,{primaryAndUniqueConstraintMap:o,compositeConstraintMap:s},c,{checks:l,tableConstraints:u}]=await Promise.all([Er(t,n),Dr(t,n),Or(t,n),kr(t,n),Mr(t,n),jr(t,n)]),d=Nr(a,s),f={...o};return Object.keys(u).forEach(e=>{f[e]||(f[e]={}),Object.keys(u[e]).forEach(t=>{f[e][t]||(f[e][t]={checks:[]}),f[e][t].checks.push(...u[e][t].checks)})}),{tables:e,fields:r,refs:c,enums:i,indexes:d,tableConstraints:f,checks:l}}finally{await t.end()}}var $=`@@@@@@@@`,Fr={outFormat:h.default.OUT_FORMAT_OBJECT};function Ir(e){let{username:t,password:n,dbidentifier:r}=e.match(/^(?<username>[^/@:]+)\/(?<password>[^/@:]+)@(\/\/)?(?<dbidentifier>.+)$/)?.groups||{};if(!t||!n||!r)throw Error(`Invalid Easy Connect string. Expect a string of format 'username/password@[//]host[:port][/database]'`);return{username:t,password:n,dbidentifier:r}}async function Lr(e){let t=`
3360
+ `,[t]))[0].map(e=>{let{constraintName:t,onDelete:n,onUpdate:r,foreignTableName:i,foreignColumnNames:a,refTableName:o,refColumnNames:s}=e;return{name:t,endpoints:[{tableName:i,fieldNames:a.split(`,`),relation:`*`},{tableName:o,fieldNames:s.split(`,`),relation:`1`}],onDelete:n===`NO ACTION`?null:n,onUpdate:r===`NO ACTION`?null:r}})}function Nr(e,t){let n=Object.assign(e,{});return Object.keys(t).forEach(e=>{let r=t[e];if(!n[e]){n[e]=r;return}n[e].push(...r)}),n}async function Pr(e){let t=await yr(e),{database:n}=t.config;if(!n)throw Error(`Cannot get schema name from the connection`);try{let[{tableList:e,fieldMap:r},i,a,{primaryAndUniqueConstraintMap:o,compositeConstraintMap:s},c,{checks:l,tableConstraints:u}]=await Promise.all([Er(t,n),Dr(t,n),Or(t,n),kr(t,n),Mr(t,n),jr(t,n)]),d=Nr(a,s),f={...o};return Object.keys(u).forEach(e=>{f[e]||(f[e]={}),Object.keys(u[e]).forEach(t=>{f[e][t]||(f[e][t]={checks:[]}),f[e][t].checks.push(...u[e][t].checks)})}),{tables:e,fields:r,refs:c,enums:i,indexes:d,tableConstraints:f,checks:l}}finally{await t.end()}}var $=`@@@@@@@@`,Fr={outFormat:h.default.OUT_FORMAT_OBJECT};function Ir(e){let{username:t,password:n,dbidentifier:r}=e.match(/^(?<username>[^/@:]+)\/(?<password>[^/@:]+)@(\/\/)?(?<dbidentifier>.+)$/)?.groups||{};if(!t||!n||!r)throw Error(`Invalid Easy Connect string. Expect a string of format 'username/password@[//]host[:port][/database]'`);return{username:t,password:n,dbidentifier:r}}async function Lr(e){let t=`
3361
3361
  WITH all_constraints AS (
3362
3362
  SELECT
3363
3363
  c.CONSTRAINT_NAME,
@@ -3456,7 +3456,7 @@ sSi6
3456
3456
  obj_child.CREATED,
3457
3457
  obj_child.OBJECT_ID,
3458
3458
  c.CONSTRAINT_NAME
3459
- `;return(await e.execute(n,[],Fr)).rows?.forEach(e=>{let{fk_name:n,child_table:r,child_columns:i,parent_table:a,parent_columns:o,delete_rule:s}=e,c={tableName:r,schemaName:``,fieldNames:i.split($),relation:`0..*`},l={tableName:a,schemaName:``,fieldNames:o.split($),relation:`0..1`};t.push({name:n,endpoints:[c,l],onDelete:s===`NO ACTION`?null:s,onUpdate:null})}),t}async function Br(e){let t={},n=(await e.execute(`
3459
+ `;return(await e.execute(n,[],Fr)).rows?.forEach(e=>{let{fk_name:n,child_table:r,child_columns:i,parent_table:a,parent_columns:o,delete_rule:s}=e,c={tableName:r,schemaName:``,fieldNames:i.split($),relation:`*`},l={tableName:a,schemaName:``,fieldNames:o.split($),relation:`1`};t.push({name:n,endpoints:[c,l],onDelete:s===`NO ACTION`?null:s,onUpdate:null})}),t}async function Br(e){let t={},n=(await e.execute(`
3460
3460
  SELECT
3461
3461
  cols.TABLE_NAME AS "table_name",
3462
3462
  cols.COLUMN_NAME AS "column_name",
@@ -3591,7 +3591,7 @@ sSi6
3591
3591
  ORDER BY
3592
3592
  tc.table_schema,
3593
3593
  tc.table_name;
3594
- `;return(await e.query(r)).rows.forEach(e=>{let{table_schema:t,fk_constraint_name:r,table_name:i,column_names:a,foreign_table_schema:o,foreign_table_name:s,foreign_column_names:c,on_delete:l,on_update:u}=e,d={tableName:i,schemaName:t,fieldNames:a.split(`,`),relation:`0..*`},f={tableName:s,schemaName:o,fieldNames:c.split(`,`),relation:`0..1`};n.push({name:r,endpoints:[d,f],onDelete:l===`NO ACTION`?null:l,onUpdate:u===`NO ACTION`?null:u})}),n},li=async(e,t)=>{let n=`
3594
+ `;return(await e.query(r)).rows.forEach(e=>{let{table_schema:t,fk_constraint_name:r,table_name:i,column_names:a,foreign_table_schema:o,foreign_table_name:s,foreign_column_names:c,on_delete:l,on_update:u}=e,d={tableName:i,schemaName:t,fieldNames:a.split(`,`),relation:`*`},f={tableName:s,schemaName:o,fieldNames:c.split(`,`),relation:`1`};n.push({name:r,endpoints:[d,f],onDelete:l===`NO ACTION`?null:l,onUpdate:u===`NO ACTION`?null:u})}),n},li=async(e,t)=>{let n=`
3595
3595
  WITH user_tables AS (
3596
3596
  SELECT
3597
3597
  schemaname AS tableschema,
package/dist/index.mjs CHANGED
@@ -455,12 +455,12 @@ var ie = "schemas=", A = (e) => e.toLowerCase().includes(ie), ae = (e) => e ? e.
455
455
  tableName: i,
456
456
  schemaName: t,
457
457
  fieldNames: o.split(","),
458
- relation: "0..*"
458
+ relation: "*"
459
459
  }, {
460
460
  tableName: c,
461
461
  schemaName: s,
462
462
  fieldNames: l.split(","),
463
- relation: "0..1"
463
+ relation: "1"
464
464
  }],
465
465
  onDelete: u === "NO_ACTION" ? null : u,
466
466
  onUpdate: d === "NO_ACTION" ? null : d
@@ -9445,11 +9445,11 @@ async function jr(e, t) {
9445
9445
  endpoints: [{
9446
9446
  tableName: i,
9447
9447
  fieldNames: a.split(","),
9448
- relation: "0..*"
9448
+ relation: "*"
9449
9449
  }, {
9450
9450
  tableName: o,
9451
9451
  fieldNames: s.split(","),
9452
- relation: "0..1"
9452
+ relation: "1"
9453
9453
  }],
9454
9454
  onDelete: n === "NO ACTION" ? null : n,
9455
9455
  onUpdate: r === "NO ACTION" ? null : r
@@ -9677,12 +9677,12 @@ async function Rr(e) {
9677
9677
  tableName: r,
9678
9678
  schemaName: "",
9679
9679
  fieldNames: i.split($),
9680
- relation: "0..*"
9680
+ relation: "*"
9681
9681
  }, l = {
9682
9682
  tableName: a,
9683
9683
  schemaName: "",
9684
9684
  fieldNames: o.split($),
9685
- relation: "0..1"
9685
+ relation: "1"
9686
9686
  };
9687
9687
  t.push({
9688
9688
  name: n,
@@ -9984,12 +9984,12 @@ var ti = async (e) => {
9984
9984
  tableName: i,
9985
9985
  schemaName: t,
9986
9986
  fieldNames: a.split(","),
9987
- relation: "0..*"
9987
+ relation: "*"
9988
9988
  }, f = {
9989
9989
  tableName: s,
9990
9990
  schemaName: o,
9991
9991
  fieldNames: c.split(","),
9992
- relation: "0..1"
9992
+ relation: "1"
9993
9993
  };
9994
9994
  n.push({
9995
9995
  name: r,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package",
3
3
  "name": "@dbml/connector",
4
- "version": "9.0.0-optional-ref.8",
4
+ "version": "9.1.0-alpha.0",
5
5
  "description": "This package was created to fetch the schema JSON from many kind of databases.",
6
6
  "author": "huy.phung.sw@gmail.com",
7
7
  "license": "MIT",
@@ -23,7 +23,8 @@
23
23
  "test:watch": "vitest watch",
24
24
  "test": "vitest run",
25
25
  "coverage": "vitest --coverage",
26
- "lint": "eslint .",
26
+ "lint": "eslint $(git diff --relative --name-only --diff-filter=ACMRTUXB master -- . | grep -E '\\.ts$')",
27
+ "lint:all": "eslint .",
27
28
  "lint:fix": "eslint --fix ."
28
29
  },
29
30
  "dependencies": {
@@ -38,5 +39,5 @@
38
39
  "engines": {
39
40
  "node": ">=18"
40
41
  },
41
- "gitHead": "f70d4bfbf56addaab11a3877928897be44c157a7"
42
+ "gitHead": "ded9225eb7ea81cc83ed07f44c9c795f978c1836"
42
43
  }