@ez4/pgmigration 0.26.0 → 0.27.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.
- package/dist/library.cjs +87 -92
- package/dist/library.d.ts +7 -7
- package/dist/library.mjs +85 -87
- package/dist/main.cjs +128 -123
- package/dist/main.d.ts +1 -1
- package/dist/main.mjs +123 -118
- package/dist/queries/columns.d.ts +20 -0
- package/dist/queries/constraints.d.ts +27 -0
- package/dist/queries/database.d.ts +9 -0
- package/dist/queries/indexes.d.ts +11 -0
- package/dist/queries/relations.d.ts +18 -0
- package/dist/queries/tables.d.ts +14 -0
- package/dist/service/queries.d.ts +1 -1
- package/package.json +11 -13
- package/dist/common/columns.d.ts +0 -18
- package/dist/common/constraints.d.ts +0 -25
- package/dist/common/database.d.ts +0 -7
- package/dist/common/indexes.d.ts +0 -9
- package/dist/common/relations.d.ts +0 -16
- package/dist/common/tables.d.ts +0 -12
package/dist/library.cjs
CHANGED
|
@@ -1,95 +1,90 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof t=="object"||typeof t=="function")for(let
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
r)||!(0,d.isAnyObject)(n)?!1:(0,A.isRepositoryTable)(r)&&(0,A.isRepositoryTable)(
|
|
10
|
-
n)?Y(r.schema,n.schema):(0,T.isAnySchema)(r)&&(0,T.isAnySchema)(n)?Z(r,n):!1,"on\
|
|
11
|
-
Rename")}),"getTableRepositoryChanges"),Y=i((e,t)=>(0,d.deepEqual)(Object.keys(e.
|
|
12
|
-
properties),Object.keys(t.properties)),"canRenameTable"),Z=i((e,t)=>(0,d.deepEqual)(
|
|
1
|
+
"use strict";var T=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var r=(e,t)=>T(e,"name",{value:t,configurable:!0});var re=(e,t)=>{for(var u in t)T(e,u,{get:t[u],enumerable:!0})},ne=(e,t,u,d)=>{if(t&&
|
|
2
|
+
typeof t=="object"||typeof t=="function")for(let y of ee(t))!te.call(e,y)&&y!==u&&
|
|
3
|
+
T(e,y,{get:()=>t[y],enumerable:!(d=Q(t,y))||d.enumerable});return e};var oe=e=>ne(T({},"__esModule",{value:!0}),e);var pe={};re(pe,{ColumnQuery:()=>X,DatabaseQueries:()=>K,IndexQueries:()=>G,RelationQuery:()=>W,
|
|
4
|
+
TableQuery:()=>V,getTableRepositoryChanges:()=>ie});module.exports=oe(pe);var q=require("@ez4/utils"),z=require("@ez4/pgclient/library"),E=require("@ez4/schema");var ie=r((e,t)=>(0,q.deepCompareObject)(e,t,{onRename:r((u,d)=>!(0,q.isAnyObject)(
|
|
5
|
+
u)||!(0,q.isAnyObject)(d)?!1:(0,z.isTableMetadata)(u)&&(0,z.isTableMetadata)(d)?
|
|
6
|
+
se(u.schema,d.schema):(0,E.isAnySchema)(u)&&(0,E.isAnySchema)(d)?ae(u,d):!1,"onR\
|
|
7
|
+
ename")}),"getTableRepositoryChanges"),se=r((e,t)=>(0,q.deepEqual)(Object.keys(e.
|
|
8
|
+
properties),Object.keys(t.properties)),"canRenameTable"),ae=r((e,t)=>(0,q.deepEqual)(
|
|
13
9
|
e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
14
|
-
Column");var
|
|
15
|
-
rawString(t)}).build();return
|
|
16
|
-
rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return
|
|
17
|
-
"getCheckConstraintQuery"),
|
|
18
|
-
information_schema.columns").where({column_name:e.rawString(
|
|
19
|
-
t)}).build();return
|
|
20
|
-
"`}},"
|
|
21
|
-
|
|
22
|
-
e)||(0,
|
|
23
|
-
definitions:
|
|
24
|
-
default}`;case"string":return`'${
|
|
25
|
-
|
|
26
|
-
'${
|
|
27
|
-
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
28
|
-
null"},"getColumnDefault"),
|
|
29
|
-
Object:case
|
|
30
|
-
return"jsonb";case
|
|
31
|
-
text";case
|
|
32
|
-
e)}},"getColumnType"),
|
|
33
|
-
ecimal","getColumNumberType"),
|
|
10
|
+
Column");var M=require("@ez4/pgsql");var U=r((e,t)=>{let[u]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
11
|
+
rawString(t)}).build();return u},"getCheckDatabaseQuery"),b=r((e,t)=>{let[u]=e.select().
|
|
12
|
+
rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return u},
|
|
13
|
+
"getCheckConstraintQuery"),_=r((e,t,u)=>{let[d]=e.select().rawColumn("1").from("\
|
|
14
|
+
information_schema.columns").where({column_name:e.rawString(u),table_name:e.rawString(
|
|
15
|
+
t)}).build();return d},"getCheckColumnQuery");var K;(u=>(u.prepareCreate=r(d=>{let y=new M.SqlBuilder;return{check:U(y,d),query:`\
|
|
16
|
+
CREATE DATABASE "${d}"`}},"prepareCreate"),u.prepareDelete=r(d=>({query:`DROP DA\
|
|
17
|
+
TABASE IF EXISTS "${d}" WITH (FORCE)`}),"prepareDelete")))(K||={});var L=require("@ez4/database");var f=require("@ez4/schema"),F=require("@ez4/utils");var N=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=r((e,t)=>{if((0,f.isScalarSchema)(
|
|
18
|
+
e)||(0,f.isObjectSchema)(e)||(0,f.isArraySchema)(e)||(0,f.isTupleSchema)(e)){let{
|
|
19
|
+
definitions:u}=e;switch(typeof u?.default){case"boolean":case"number":return`${u.
|
|
20
|
+
default}`;case"string":return`'${u.default}'`;case"object":return`'${JSON.stringify(
|
|
21
|
+
u.default)}'`}}if((0,f.isEnumSchema)(e)){let{definitions:u}=e;if(u?.default)return`\
|
|
22
|
+
'${u.default}'`}if((0,f.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
|
|
23
|
+
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(N(e))return"\
|
|
24
|
+
null"},"getColumnDefault"),k=r((e,t)=>{switch(e.type){case f.SchemaType.Array:case f.SchemaType.
|
|
25
|
+
Object:case f.SchemaType.Reference:case f.SchemaType.Union:case f.SchemaType.Tuple:
|
|
26
|
+
return"jsonb";case f.SchemaType.Boolean:return"boolean";case f.SchemaType.Enum:return"\
|
|
27
|
+
text";case f.SchemaType.Number:return ce(e,t);case f.SchemaType.String:return me(
|
|
28
|
+
e)}},"getColumnType"),ce=r((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
|
|
29
|
+
ecimal","getColumNumberType"),me=r(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
34
30
|
date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
|
|
35
|
-
maxLength;return(0,
|
|
36
|
-
let
|
|
37
|
-
column(
|
|
38
|
-
query:
|
|
39
|
-
query:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
m,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
if(
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
prepareUpdateColumns,prepareUpdateRelations});
|
|
31
|
+
maxLength;return(0,F.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var V;(d=>(d.prepareCreate=r((y,m,a,c)=>{let o=y.table(m).create().missing();for(let n in a.
|
|
32
|
+
properties){let i=a.properties[n],p=c[n]?.type===L.Index.Primary,l=!N(i),g=k(i,p),
|
|
33
|
+
x=P(i,p);o.column(n,g,l,x).missing()}return{query:o.build()}},"prepareCreate"),d.
|
|
34
|
+
prepareRename=r((y,m,a)=>({query:y.table(m).rename(a).existing().build()}),"prep\
|
|
35
|
+
areRename"),d.prepareDelete=r((y,m)=>({query:y.table(m).drop().existing().cascade().
|
|
36
|
+
build()}),"prepareDelete")))(V||={});var A=require("@ez4/schema"),h=require("@ez4/database");var v=require("@ez4/utils");var I=r((e,t)=>`${j(e,t)}_pk`,"getPrimaryKeyName"),O=r((e,t)=>`${j(e,t)}_uk`,"ge\
|
|
37
|
+
tUniqueKeyName"),B=r((e,t)=>`${j(e,t)}_sk`,"getSecondaryKeyName"),C=r((e,t)=>`${j(
|
|
38
|
+
e,t)}_fk`,"getRelationName");var j=r((e,t)=>`${e}_${(0,v.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var G;(y=>{y.prepareCreate=r((m,a,c,o,n)=>{let i={constraints:[],indexes:[]};for(let s in o){
|
|
39
|
+
let{columns:p,type:l}=o[s];switch(l){default:throw new Error("Unsupported index \
|
|
40
|
+
type.");case h.Index.Primary:{let g=I(a,s),x=m.table(a).alter().existing().constraint(
|
|
41
|
+
g).primary(p);i.constraints.push({check:b(m,g),query:x.build()});break}case h.Index.
|
|
42
|
+
Unique:{let g=O(a,s),x=m.table(a).alter().existing().constraint(g).unique(p);i.constraints.
|
|
43
|
+
push({check:b(m,g),query:x.build()});break}case h.Index.Secondary:{let g=B(a,s),
|
|
44
|
+
x=d(p,c),S=m.index(g).create(a,p).type(x).missing();n&&S.concurrent(),i.indexes.
|
|
45
|
+
push({query:S.build()});break}}}return i},"prepareCreate"),y.prepareRename=r((m,a,c,o)=>{
|
|
46
|
+
let n={constraints:[],indexes:[]};for(let i in o){let{type:s}=o[i];switch(s){default:
|
|
47
|
+
throw new Error("Unsupported index type.");case h.Index.Primary:{let p=I(a,i),l=I(
|
|
48
|
+
c,i),g=m.table(c).alter().existing().constraint(p).rename(l);n.constraints.push(
|
|
49
|
+
{check:b(m,l),query:g.build()});break}case h.Index.Unique:{let p=O(a,i),l=O(c,i),
|
|
50
|
+
g=m.table(c).alter().existing().constraint(p).rename(l);n.constraints.push({check:b(
|
|
51
|
+
m,l),query:g.build()});break}case h.Index.Secondary:{let p=B(a,i),l=B(c,i),g=m.index(
|
|
52
|
+
p).rename(l).existing();n.indexes.push({query:g.build()});break}}}return n},"pre\
|
|
53
|
+
pareRename"),y.prepareDelete=r((m,a,c)=>{let o={constraints:[],indexes:[]};for(let n in c){
|
|
54
|
+
let{type:i}=c[n];switch(i){default:throw new Error("Unsupported index type.");case h.Index.
|
|
55
|
+
Primary:{let s=I(a,n),p=m.table(a).alter().existing().constraint(s).drop().existing();
|
|
56
|
+
o.constraints.push({query:p.build()});break}case h.Index.Unique:{let s=O(a,n),p=m.
|
|
57
|
+
table(a).alter().existing().constraint(s).drop().existing();o.constraints.push({
|
|
58
|
+
query:p.build()});break}case h.Index.Secondary:{let s=B(a,n),p=m.index(s).drop().
|
|
59
|
+
existing().concurrent();o.indexes.push({query:p.build()});break}}}return o},"pre\
|
|
60
|
+
pareDelete");let d=r((m,a)=>{if(m.length===1){let[c]=m;switch(a.properties[c]?.type){case A.SchemaType.
|
|
61
|
+
Object:case A.SchemaType.Union:case A.SchemaType.Array:case A.SchemaType.Tuple:return"\
|
|
62
|
+
GIN"}}return"BTREE"},"getIndexType")})(G||={});var H=require("@ez4/pgclient/library"),J=require("@ez4/schema"),w=require("@ez4/database");var W;(a=>{a.prepareCreate=r((c,o,n,i)=>{let s=[];for(let p in i){let l=i[p];if(l.
|
|
63
|
+
targetIndex===w.Index.Primary)continue;let{[l.targetColumn]:g}=n.properties,x=C(
|
|
64
|
+
o,p),S=!!(0,J.IsNullishSchema)(g);s.push({check:b(c,x),query:m(c,o,x,l,S).build()})}
|
|
65
|
+
return s},"prepareCreate"),a.prepareUpdate=r((c,o,n,i)=>{let s=[];for(let p in n){
|
|
66
|
+
let l=n[p];if(l.targetIndex===w.Index.Primary)continue;let g=i[l.targetColumn]?.
|
|
67
|
+
update,x=g?.optional??g?.nullable;if(x===void 0)continue;let S=C(o,p);s.push({query:y(
|
|
68
|
+
c,o,S).build()},{query:m(c,o,S,l,x).build()})}return s},"prepareUpdate"),a.prepareRename=
|
|
69
|
+
r((c,o,n,i)=>{let s=[];for(let p in i){if(i[p].targetIndex===w.Index.Primary)continue;
|
|
70
|
+
let g=C(o,p),x=C(n,p),S=c.table(n).alter().existing().constraint(g).rename(x);s.
|
|
71
|
+
push({check:b(c,x),query:S.build()})}return s},"prepareRename"),a.prepareDelete=
|
|
72
|
+
r((c,o,n)=>{let i=[];for(let s in n){if(n[s].targetIndex===w.Index.Primary)continue;
|
|
73
|
+
let l=C(o,s);i.push({query:y(c,o,l).build()})}return i},"prepareDelete");let y=r(
|
|
74
|
+
(c,o,n)=>c.table(o).alter().existing().constraint(n).drop().existing(),"getDelet\
|
|
75
|
+
eQuery"),m=r((c,o,n,i,s)=>{let{sourceTable:p,sourceColumn:l,targetColumn:g}=i,x=(0,H.getTableName)(
|
|
76
|
+
p),S=c.table(o).alter().existing().constraint(n).foreign(g,x,[l]);return s?S.delete().
|
|
77
|
+
null():S.delete().cascade(),S.update().cascade(),S},"getCreateQuery")})(W||={});var $=require("@ez4/database");var X;(y=>(y.prepareCreate=r((m,a,c,o)=>{let n=m.table(a).alter().existing();for(let i in o){
|
|
78
|
+
let s=o[i],l=c[i]?.type===$.Index.Primary,g=!N(s),x=k(s,l),S=P(s,l);n.add(i,x,g,
|
|
79
|
+
S).missing()}return{query:n.build()}},"prepareCreate"),y.prepareUpdate=r((m,a,c,o,n)=>{
|
|
80
|
+
let i=[];for(let s in n){let{update:p,nested:l}=n[s],g=c.properties[s],S=o[s]?.type===
|
|
81
|
+
$.Index.Primary,Y=l?.definitions?.update?.default,D=p?.optional??p?.nullable,Z=p?.
|
|
82
|
+
type,R=m.table(a).alter().existing().column(s);Z!==void 0&&R.type(k(g,S)),D!==void 0&&
|
|
83
|
+
R.optional(D),Y!==void 0&&R.default(P(g,S)),!R.empty&&i.push({check:_(m,a,s),query:R.
|
|
84
|
+
build()})}return i},"prepareUpdate"),y.prepareRename=r((m,a,c)=>{let o=[];for(let n in c){
|
|
85
|
+
let i=c[n],s=m.table(a).alter().existing().rename(n,i);o.push({check:_(m,a,n),query:s.
|
|
86
|
+
build()})}return o},"prepareRename"),y.prepareDelete=r((m,a,c)=>{let o=m.table(a).
|
|
87
|
+
alter().existing();for(let n in c)o.drop(n).existing();return{query:o.build()}},
|
|
88
|
+
"prepareDelete")))(X||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
|
|
89
|
+
getTableRepositoryChanges});
|
|
95
90
|
//# sourceMappingURL=library.cjs.map
|
package/dist/library.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './utils/repository
|
|
2
|
-
export * from './types/query
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
1
|
+
export * from './utils/repository';
|
|
2
|
+
export * from './types/query';
|
|
3
|
+
export * from './queries/database';
|
|
4
|
+
export * from './queries/tables';
|
|
5
|
+
export * from './queries/indexes';
|
|
6
|
+
export * from './queries/relations';
|
|
7
|
+
export * from './queries/columns';
|
package/dist/library.mjs
CHANGED
|
@@ -1,88 +1,86 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
schema):
|
|
4
|
-
Object.keys(e.properties),Object.keys(
|
|
5
|
-
e,
|
|
6
|
-
Column");import{SqlBuilder as
|
|
7
|
-
rawString(
|
|
8
|
-
rawColumn("1").from("pg_constraint").where({conname:e.rawString(
|
|
9
|
-
"getCheckConstraintQuery"),
|
|
10
|
-
information_schema.columns").where({column_name:e.rawString(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
isStringSchema as
|
|
15
|
-
isAnyNumber as
|
|
16
|
-
e)||
|
|
17
|
-
number":return`${
|
|
18
|
-
'${JSON.stringify(
|
|
19
|
-
'${
|
|
20
|
-
return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
21
|
-
umnDefault"),
|
|
22
|
-
Union:case
|
|
23
|
-
text";case
|
|
24
|
-
(e,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
query:
|
|
31
|
-
query:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
m
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
indexes:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
i).drop().existing()
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
import{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
update
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
_e as prepareRenameIndexes,Je as prepareRenameRelations,Pe as prepareRenameTable,
|
|
87
|
-
nt as prepareUpdateColumns,He as prepareUpdateRelations};
|
|
1
|
+
var F=Object.defineProperty;var t=(e,c)=>F(e,"name",{value:c,configurable:!0});import{deepEqual as $,deepCompareObject as L,isAnyObject as z}from"@ez4/utils";import{
|
|
2
|
+
isTableMetadata as E}from"@ez4/pgclient/library";import{isAnySchema as _}from"@ez4/schema";var de=t((e,c)=>L(e,c,{onRename:t((g,d)=>!z(g)||!z(d)?!1:E(g)&&E(d)?V(g.schema,d.
|
|
3
|
+
schema):_(g)&&_(d)?v(g,d):!1,"onRename")}),"getTableRepositoryChanges"),V=t((e,c)=>$(
|
|
4
|
+
Object.keys(e.properties),Object.keys(c.properties)),"canRenameTable"),v=t((e,c)=>$(
|
|
5
|
+
e,c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
6
|
+
Column");import{SqlBuilder as G}from"@ez4/pgsql";var D=t((e,c)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
7
|
+
rawString(c)}).build();return g},"getCheckDatabaseQuery"),q=t((e,c)=>{let[g]=e.select().
|
|
8
|
+
rawColumn("1").from("pg_constraint").where({conname:e.rawString(c)}).build();return g},
|
|
9
|
+
"getCheckConstraintQuery"),T=t((e,c,g)=>{let[d]=e.select().rawColumn("1").from("\
|
|
10
|
+
information_schema.columns").where({column_name:e.rawString(g),table_name:e.rawString(
|
|
11
|
+
c)}).build();return d},"getCheckColumnQuery");var H;(g=>(g.prepareCreate=t(d=>{let f=new G;return{check:D(f,d),query:`CREATE D\
|
|
12
|
+
ATABASE "${d}"`}},"prepareCreate"),g.prepareDelete=t(d=>({query:`DROP DATABASE I\
|
|
13
|
+
F EXISTS "${d}" WITH (FORCE)`}),"prepareDelete")))(H||={});import{Index as ne}from"@ez4/database";import{isArraySchema as J,isEnumSchema as W,isObjectSchema as X,isScalarSchema as Y,
|
|
14
|
+
isStringSchema as Z,isTupleSchema as Q,SchemaType as S}from"@ez4/schema";import{
|
|
15
|
+
isAnyNumber as ee}from"@ez4/utils";var R=t(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=t((e,c)=>{if(Y(e)||X(
|
|
16
|
+
e)||J(e)||Q(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
|
|
17
|
+
number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
|
|
18
|
+
'${JSON.stringify(g.default)}'`}}if(W(e)){let{definitions:g}=e;if(g?.default)return`\
|
|
19
|
+
'${g.default}'`}if(Z(e)&&c)switch(e.format){case"date-time":case"date":case"time":
|
|
20
|
+
return"now()";case"uuid":return"gen_random_uuid()"}if(R(e))return"null"},"getCol\
|
|
21
|
+
umnDefault"),P=t((e,c)=>{switch(e.type){case S.Array:case S.Object:case S.Reference:case S.
|
|
22
|
+
Union:case S.Tuple:return"jsonb";case S.Boolean:return"boolean";case S.Enum:return"\
|
|
23
|
+
text";case S.Number:return te(e,c);case S.String:return re(e)}},"getColumnType"),
|
|
24
|
+
te=t((e,c)=>e.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
25
|
+
rType"),re=t(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
|
|
26
|
+
date-time":return"timestamptz";default:let c=e.definitions?.maxLength;return ee(
|
|
27
|
+
c)?`varchar(${c})`:"text"}},"getColumnTextType");var oe;(d=>(d.prepareCreate=t((f,m,s,a)=>{let n=f.table(m).create().missing();for(let r in s.
|
|
28
|
+
properties){let o=s.properties[r],p=a[r]?.type===ne.Primary,u=!R(o),l=P(o,p),y=N(
|
|
29
|
+
o,p);n.column(r,l,u,y).missing()}return{query:n.build()}},"prepareCreate"),d.prepareRename=
|
|
30
|
+
t((f,m,s)=>({query:f.table(m).rename(s).existing().build()}),"prepareRename"),d.
|
|
31
|
+
prepareDelete=t((f,m)=>({query:f.table(m).drop().existing().cascade().build()}),
|
|
32
|
+
"prepareDelete")))(oe||={});import{SchemaType as A}from"@ez4/schema";import{Index as h}from"@ez4/database";import{toSnakeCase as ie}from"@ez4/utils";var k=t((e,c)=>`${B(e,c)}_pk`,"getPrimaryKeyName"),I=t((e,c)=>`${B(e,c)}_uk`,"ge\
|
|
33
|
+
tUniqueKeyName"),O=t((e,c)=>`${B(e,c)}_sk`,"getSecondaryKeyName"),b=t((e,c)=>`${B(
|
|
34
|
+
e,c)}_fk`,"getRelationName");var B=t((e,c)=>`${e}_${ie(c.replaceAll(":","_"))}`,"getName");var se;(f=>{f.prepareCreate=t((m,s,a,n,r)=>{let o={constraints:[],indexes:[]};for(let i in n){
|
|
35
|
+
let{columns:p,type:u}=n[i];switch(u){default:throw new Error("Unsupported index \
|
|
36
|
+
type.");case h.Primary:{let l=k(s,i),y=m.table(s).alter().existing().constraint(
|
|
37
|
+
l).primary(p);o.constraints.push({check:q(m,l),query:y.build()});break}case h.Unique:{
|
|
38
|
+
let l=I(s,i),y=m.table(s).alter().existing().constraint(l).unique(p);o.constraints.
|
|
39
|
+
push({check:q(m,l),query:y.build()});break}case h.Secondary:{let l=O(s,i),y=d(p,
|
|
40
|
+
a),x=m.index(l).create(s,p).type(y).missing();r&&x.concurrent(),o.indexes.push({
|
|
41
|
+
query:x.build()});break}}}return o},"prepareCreate"),f.prepareRename=t((m,s,a,n)=>{
|
|
42
|
+
let r={constraints:[],indexes:[]};for(let o in n){let{type:i}=n[o];switch(i){default:
|
|
43
|
+
throw new Error("Unsupported index type.");case h.Primary:{let p=k(s,o),u=k(a,o),
|
|
44
|
+
l=m.table(a).alter().existing().constraint(p).rename(u);r.constraints.push({check:q(
|
|
45
|
+
m,u),query:l.build()});break}case h.Unique:{let p=I(s,o),u=I(a,o),l=m.table(a).alter().
|
|
46
|
+
existing().constraint(p).rename(u);r.constraints.push({check:q(m,u),query:l.build()});
|
|
47
|
+
break}case h.Secondary:{let p=O(s,o),u=O(a,o),l=m.index(p).rename(u).existing();
|
|
48
|
+
r.indexes.push({query:l.build()});break}}}return r},"prepareRename"),f.prepareDelete=
|
|
49
|
+
t((m,s,a)=>{let n={constraints:[],indexes:[]};for(let r in a){let{type:o}=a[r];switch(o){default:
|
|
50
|
+
throw new Error("Unsupported index type.");case h.Primary:{let i=k(s,r),p=m.table(
|
|
51
|
+
s).alter().existing().constraint(i).drop().existing();n.constraints.push({query:p.
|
|
52
|
+
build()});break}case h.Unique:{let i=I(s,r),p=m.table(s).alter().existing().constraint(
|
|
53
|
+
i).drop().existing();n.constraints.push({query:p.build()});break}case h.Secondary:{
|
|
54
|
+
let i=O(s,r),p=m.index(i).drop().existing().concurrent();n.indexes.push({query:p.
|
|
55
|
+
build()});break}}}return n},"prepareDelete");let d=t((m,s)=>{if(m.length===1){let[
|
|
56
|
+
a]=m;switch(s.properties[a]?.type){case A.Object:case A.Union:case A.Array:case A.
|
|
57
|
+
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(se||={});import{getTableName as ae}from"@ez4/pgclient/library";import{IsNullishSchema as ce}from"@ez4/schema";
|
|
58
|
+
import{Index as w}from"@ez4/database";var me;(s=>{s.prepareCreate=t((a,n,r,o)=>{let i=[];for(let p in o){let u=o[p];if(u.
|
|
59
|
+
targetIndex===w.Primary)continue;let{[u.targetColumn]:l}=r.properties,y=b(n,p),x=!!ce(
|
|
60
|
+
l);i.push({check:q(a,y),query:m(a,n,y,u,x).build()})}return i},"prepareCreate"),
|
|
61
|
+
s.prepareUpdate=t((a,n,r,o)=>{let i=[];for(let p in r){let u=r[p];if(u.targetIndex===
|
|
62
|
+
w.Primary)continue;let l=o[u.targetColumn]?.update,y=l?.optional??l?.nullable;if(y===
|
|
63
|
+
void 0)continue;let x=b(n,p);i.push({query:f(a,n,x).build()},{query:m(a,n,x,u,y).
|
|
64
|
+
build()})}return i},"prepareUpdate"),s.prepareRename=t((a,n,r,o)=>{let i=[];for(let p in o){
|
|
65
|
+
if(o[p].targetIndex===w.Primary)continue;let l=b(n,p),y=b(r,p),x=a.table(r).alter().
|
|
66
|
+
existing().constraint(l).rename(y);i.push({check:q(a,y),query:x.build()})}return i},
|
|
67
|
+
"prepareRename"),s.prepareDelete=t((a,n,r)=>{let o=[];for(let i in r){if(r[i].targetIndex===
|
|
68
|
+
w.Primary)continue;let u=b(n,i);o.push({query:f(a,n,u).build()})}return o},"prep\
|
|
69
|
+
areDelete");let f=t((a,n,r)=>a.table(n).alter().existing().constraint(r).drop().
|
|
70
|
+
existing(),"getDeleteQuery"),m=t((a,n,r,o,i)=>{let{sourceTable:p,sourceColumn:u,
|
|
71
|
+
targetColumn:l}=o,y=ae(p),x=a.table(n).alter().existing().constraint(r).foreign(
|
|
72
|
+
l,y,[u]);return i?x.delete().null():x.delete().cascade(),x.update().cascade(),x},
|
|
73
|
+
"getCreateQuery")})(me||={});import{Index as U}from"@ez4/database";var pe;(f=>(f.prepareCreate=t((m,s,a,n)=>{let r=m.table(s).alter().existing();for(let o in n){
|
|
74
|
+
let i=n[o],u=a[o]?.type===U.Primary,l=!R(i),y=P(i,u),x=N(i,u);r.add(o,y,l,x).missing()}
|
|
75
|
+
return{query:r.build()}},"prepareCreate"),f.prepareUpdate=t((m,s,a,n,r)=>{let o=[];
|
|
76
|
+
for(let i in r){let{update:p,nested:u}=r[i],l=a.properties[i],x=n[i]?.type===U.Primary,
|
|
77
|
+
M=u?.definitions?.update?.default,j=p?.optional??p?.nullable,K=p?.type,C=m.table(
|
|
78
|
+
s).alter().existing().column(i);K!==void 0&&C.type(P(l,x)),j!==void 0&&C.optional(
|
|
79
|
+
j),M!==void 0&&C.default(N(l,x)),!C.empty&&o.push({check:T(m,s,i),query:C.build()})}
|
|
80
|
+
return o},"prepareUpdate"),f.prepareRename=t((m,s,a)=>{let n=[];for(let r in a){
|
|
81
|
+
let o=a[r],i=m.table(s).alter().existing().rename(r,o);n.push({check:T(m,s,r),query:i.
|
|
82
|
+
build()})}return n},"prepareRename"),f.prepareDelete=t((m,s,a)=>{let n=m.table(s).
|
|
83
|
+
alter().existing();for(let r in a)n.drop(r).existing();return{query:n.build()}},
|
|
84
|
+
"prepareDelete")))(pe||={});export{pe as ColumnQuery,H as DatabaseQueries,se as IndexQueries,me as RelationQuery,
|
|
85
|
+
oe as TableQuery,de as getTableRepositoryChanges};
|
|
88
86
|
//# sourceMappingURL=library.mjs.map
|