@devbro/neko-sql 0.1.2 → 0.1.3

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.
Files changed (49) hide show
  1. package/dist/Blueprint.d.mts +2 -0
  2. package/dist/Blueprint.d.ts +2 -0
  3. package/dist/Blueprint.js +4 -0
  4. package/dist/Blueprint.js.map +1 -1
  5. package/dist/Blueprint.mjs +4 -0
  6. package/dist/Blueprint.mjs.map +1 -1
  7. package/dist/{Connection-DhP5VxCW.d.mts → Connection-D4SY9JPV.d.mts} +3 -0
  8. package/dist/{Connection-CM5zdBeX.d.ts → Connection-DklX9Kzq.d.ts} +3 -0
  9. package/dist/Connection.d.mts +2 -2
  10. package/dist/Connection.d.ts +2 -2
  11. package/dist/Connection.js.map +1 -1
  12. package/dist/Connection.mjs.map +1 -1
  13. package/dist/Migration.d.mts +1 -1
  14. package/dist/Migration.d.ts +1 -1
  15. package/dist/Query.d.mts +1 -1
  16. package/dist/Query.d.ts +1 -1
  17. package/dist/QueryGrammar.d.mts +1 -1
  18. package/dist/QueryGrammar.d.ts +1 -1
  19. package/dist/Schema.d.mts +1 -1
  20. package/dist/Schema.d.ts +1 -1
  21. package/dist/Schema.js +8 -0
  22. package/dist/Schema.js.map +1 -1
  23. package/dist/Schema.mjs +8 -0
  24. package/dist/Schema.mjs.map +1 -1
  25. package/dist/SchemaGrammar.d.mts +3 -1
  26. package/dist/SchemaGrammar.d.ts +3 -1
  27. package/dist/SchemaGrammar.js +20 -1
  28. package/dist/SchemaGrammar.js.map +1 -1
  29. package/dist/SchemaGrammar.mjs +20 -1
  30. package/dist/SchemaGrammar.mjs.map +1 -1
  31. package/dist/databases/index.d.mts +1 -1
  32. package/dist/databases/index.d.ts +1 -1
  33. package/dist/databases/postgresql/PostgresqlConnection.d.mts +5 -1
  34. package/dist/databases/postgresql/PostgresqlConnection.d.ts +5 -1
  35. package/dist/databases/postgresql/PostgresqlConnection.js +6 -0
  36. package/dist/databases/postgresql/PostgresqlConnection.js.map +1 -1
  37. package/dist/databases/postgresql/PostgresqlConnection.mjs +6 -0
  38. package/dist/databases/postgresql/PostgresqlConnection.mjs.map +1 -1
  39. package/dist/databases/postgresql/PostgresqlQueryGrammar.d.mts +1 -1
  40. package/dist/databases/postgresql/PostgresqlQueryGrammar.d.ts +1 -1
  41. package/dist/databases/postgresql/index.d.mts +1 -1
  42. package/dist/databases/postgresql/index.d.ts +1 -1
  43. package/dist/index.d.mts +2 -2
  44. package/dist/index.d.ts +2 -2
  45. package/dist/index.js +2 -0
  46. package/dist/index.js.map +1 -1
  47. package/dist/index.mjs +1 -0
  48. package/dist/index.mjs.map +1 -1
  49. package/package.json +5 -4
@@ -33,6 +33,7 @@ declare class ForeignKeyConstraint {
33
33
  declare class Blueprint {
34
34
  tableName: string;
35
35
  columns: Column[];
36
+ drop_coumns: string[];
36
37
  foreignKeys: ForeignKeyConstraint[];
37
38
  existingTable: boolean;
38
39
  primaryKeys: string[];
@@ -50,6 +51,7 @@ declare class Blueprint {
50
51
  date(columnName: string): Column;
51
52
  primary(keys: string[]): void;
52
53
  foreign(columnName: string): ForeignKeyConstraint;
54
+ dropColumn(columnName: string): void;
53
55
  }
54
56
 
55
57
  export { Blueprint, Column, type ColumnPropertiesType, ForeignKeyConstraint };
@@ -33,6 +33,7 @@ declare class ForeignKeyConstraint {
33
33
  declare class Blueprint {
34
34
  tableName: string;
35
35
  columns: Column[];
36
+ drop_coumns: string[];
36
37
  foreignKeys: ForeignKeyConstraint[];
37
38
  existingTable: boolean;
38
39
  primaryKeys: string[];
@@ -50,6 +51,7 @@ declare class Blueprint {
50
51
  date(columnName: string): Column;
51
52
  primary(keys: string[]): void;
52
53
  foreign(columnName: string): ForeignKeyConstraint;
54
+ dropColumn(columnName: string): void;
53
55
  }
54
56
 
55
57
  export { Blueprint, Column, type ColumnPropertiesType, ForeignKeyConstraint };
package/dist/Blueprint.js CHANGED
@@ -83,6 +83,7 @@ class ForeignKeyConstraint {
83
83
  class Blueprint {
84
84
  tableName = "";
85
85
  columns = [];
86
+ drop_coumns = [];
86
87
  foreignKeys = [];
87
88
  existingTable = false;
88
89
  primaryKeys = [];
@@ -155,6 +156,9 @@ class Blueprint {
155
156
  this.foreignKeys.push(rc);
156
157
  return rc;
157
158
  }
159
+ dropColumn(columnName) {
160
+ this.drop_coumns.push(columnName);
161
+ }
158
162
  }
159
163
  // Annotate the CommonJS export names for ESM import in node:
160
164
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Blueprint.ts"],"sourcesContent":["import { Expression } from './Expression';\nimport { Parameter } from './types';\n\nexport type ColumnPropertiesType = {\n type:\n | 'string'\n | 'integer'\n | 'float'\n | 'double'\n | 'boolean'\n | 'char'\n | 'text'\n | 'date'\n | 'timestamp'\n | 'serial';\n length: number;\n nullable: boolean;\n unique: boolean;\n default: Parameter;\n};\nexport class Column {\n columnName: string = '';\n properties: ColumnPropertiesType = {\n type: 'string',\n length: 255,\n nullable: false,\n unique: false,\n default: null,\n };\n\n constructor(columnName: string, type: ColumnPropertiesType['type']) {\n this.columnName = columnName;\n this.properties.type = type;\n }\n\n length(length: number) {\n this.properties.length = length;\n return this;\n }\n\n nullable(nullable: boolean = true) {\n this.properties.nullable = nullable;\n return this;\n }\n\n unique(unique: boolean = true) {\n this.properties.unique = unique;\n return this;\n }\n\n default(value: ColumnPropertiesType['default']) {\n this.properties.default = value;\n return this;\n }\n}\n\n// references('id').on('roles').onDelete('cascade').onUpdate('cascade');\nexport class ForeignKeyConstraint {\n column: string;\n reference_table: { table: string; column: string };\n onUpdateAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n onDeleteAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n\n constructor(column: string) {\n this.column = column;\n this.reference_table = { table: '', column: '' };\n }\n\n on(table: string) {\n this.reference_table.table = table;\n return this;\n }\n\n references(column: string) {\n this.reference_table.column = column;\n return this;\n }\n\n onDelete(action: typeof this.onDeleteAction) {\n this.onDeleteAction = action;\n return this;\n }\n\n onUpdate(action: typeof this.onUpdateAction) {\n this.onUpdateAction = action;\n return this;\n }\n}\n\nexport class Blueprint {\n tableName: string = '';\n columns: Column[] = [];\n foreignKeys: ForeignKeyConstraint[] = [];\n existingTable: boolean = false;\n primaryKeys: string[] = [];\n constructor() {}\n setTableName(tableName: string, existingTable: boolean = false) {\n this.tableName = tableName;\n this.existingTable = existingTable;\n }\n\n Boolean(columnName: string) {\n const rc = new Column(columnName, 'boolean');\n this.columns.push(rc);\n return rc;\n }\n\n char(columnName: string) {\n const rc = new Column(columnName, 'char');\n this.columns.push(rc);\n return rc;\n }\n\n string(columnName: string, length: number = 255) {\n const rc = new Column(columnName, 'string');\n rc.length(length);\n this.columns.push(rc);\n return rc;\n }\n\n text(columnName: string) {\n const rc = new Column(columnName, 'text');\n this.columns.push(rc);\n return rc;\n }\n\n integer(columnName: string) {\n const rc = new Column(columnName, 'integer');\n this.columns.push(rc);\n return rc;\n }\n\n float(columnName: string) {\n const rc = new Column(columnName, 'float');\n this.columns.push(rc);\n return rc;\n }\n\n double(columnName: string) {\n const rc = new Column(columnName, 'double');\n this.columns.push(rc);\n return rc;\n }\n\n id() {\n const rc = new Column('id', 'serial');\n this.columns.push(rc);\n this.primaryKeys.push('id');\n return rc;\n }\n\n timestamps() {\n this.columns.push(\n new Column('created_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n this.columns.push(\n new Column('updated_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n }\n\n date(columnName: string) {\n const rc = new Column(columnName, 'date');\n this.columns.push(rc);\n return rc;\n }\n\n primary(keys: string[]) {\n this.primaryKeys = keys;\n }\n\n foreign(columnName: string) {\n const rc = new ForeignKeyConstraint(columnName);\n this.foreignKeys.push(rc);\n return rc;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/Blueprint.ts"],"sourcesContent":["import { Expression } from './Expression';\nimport { Parameter } from './types';\n\nexport type ColumnPropertiesType = {\n type:\n | 'string'\n | 'integer'\n | 'float'\n | 'double'\n | 'boolean'\n | 'char'\n | 'text'\n | 'date'\n | 'timestamp'\n | 'serial';\n length: number;\n nullable: boolean;\n unique: boolean;\n default: Parameter;\n};\nexport class Column {\n columnName: string = '';\n properties: ColumnPropertiesType = {\n type: 'string',\n length: 255,\n nullable: false,\n unique: false,\n default: null,\n };\n\n constructor(columnName: string, type: ColumnPropertiesType['type']) {\n this.columnName = columnName;\n this.properties.type = type;\n }\n\n length(length: number) {\n this.properties.length = length;\n return this;\n }\n\n nullable(nullable: boolean = true) {\n this.properties.nullable = nullable;\n return this;\n }\n\n unique(unique: boolean = true) {\n this.properties.unique = unique;\n return this;\n }\n\n default(value: ColumnPropertiesType['default']) {\n this.properties.default = value;\n return this;\n }\n}\n\n// references('id').on('roles').onDelete('cascade').onUpdate('cascade');\nexport class ForeignKeyConstraint {\n column: string;\n reference_table: { table: string; column: string };\n onUpdateAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n onDeleteAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n\n constructor(column: string) {\n this.column = column;\n this.reference_table = { table: '', column: '' };\n }\n\n on(table: string) {\n this.reference_table.table = table;\n return this;\n }\n\n references(column: string) {\n this.reference_table.column = column;\n return this;\n }\n\n onDelete(action: typeof this.onDeleteAction) {\n this.onDeleteAction = action;\n return this;\n }\n\n onUpdate(action: typeof this.onUpdateAction) {\n this.onUpdateAction = action;\n return this;\n }\n}\n\nexport class Blueprint {\n tableName: string = '';\n columns: Column[] = [];\n drop_coumns: string[] = [];\n foreignKeys: ForeignKeyConstraint[] = [];\n existingTable: boolean = false;\n primaryKeys: string[] = [];\n constructor() {}\n setTableName(tableName: string, existingTable: boolean = false) {\n this.tableName = tableName;\n this.existingTable = existingTable;\n }\n\n Boolean(columnName: string) {\n const rc = new Column(columnName, 'boolean');\n this.columns.push(rc);\n return rc;\n }\n\n char(columnName: string) {\n const rc = new Column(columnName, 'char');\n this.columns.push(rc);\n return rc;\n }\n\n string(columnName: string, length: number = 255) {\n const rc = new Column(columnName, 'string');\n rc.length(length);\n this.columns.push(rc);\n return rc;\n }\n\n text(columnName: string) {\n const rc = new Column(columnName, 'text');\n this.columns.push(rc);\n return rc;\n }\n\n integer(columnName: string) {\n const rc = new Column(columnName, 'integer');\n this.columns.push(rc);\n return rc;\n }\n\n float(columnName: string) {\n const rc = new Column(columnName, 'float');\n this.columns.push(rc);\n return rc;\n }\n\n double(columnName: string) {\n const rc = new Column(columnName, 'double');\n this.columns.push(rc);\n return rc;\n }\n\n id() {\n const rc = new Column('id', 'serial');\n this.columns.push(rc);\n this.primaryKeys.push('id');\n return rc;\n }\n\n timestamps() {\n this.columns.push(\n new Column('created_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n this.columns.push(\n new Column('updated_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n }\n\n date(columnName: string) {\n const rc = new Column(columnName, 'date');\n this.columns.push(rc);\n return rc;\n }\n\n primary(keys: string[]) {\n this.primaryKeys = keys;\n }\n\n foreign(columnName: string) {\n const rc = new ForeignKeyConstraint(columnName);\n this.foreignKeys.push(rc);\n return rc;\n }\n\n dropColumn(columnName: string) {\n this.drop_coumns.push(columnName);\n }\n}\n"],"mappings":"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","names":[]}
@@ -58,6 +58,7 @@ class ForeignKeyConstraint {
58
58
  class Blueprint {
59
59
  tableName = "";
60
60
  columns = [];
61
+ drop_coumns = [];
61
62
  foreignKeys = [];
62
63
  existingTable = false;
63
64
  primaryKeys = [];
@@ -130,6 +131,9 @@ class Blueprint {
130
131
  this.foreignKeys.push(rc);
131
132
  return rc;
132
133
  }
134
+ dropColumn(columnName) {
135
+ this.drop_coumns.push(columnName);
136
+ }
133
137
  }
134
138
  export {
135
139
  Blueprint,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Blueprint.ts"],"sourcesContent":["import { Expression } from './Expression';\nimport { Parameter } from './types';\n\nexport type ColumnPropertiesType = {\n type:\n | 'string'\n | 'integer'\n | 'float'\n | 'double'\n | 'boolean'\n | 'char'\n | 'text'\n | 'date'\n | 'timestamp'\n | 'serial';\n length: number;\n nullable: boolean;\n unique: boolean;\n default: Parameter;\n};\nexport class Column {\n columnName: string = '';\n properties: ColumnPropertiesType = {\n type: 'string',\n length: 255,\n nullable: false,\n unique: false,\n default: null,\n };\n\n constructor(columnName: string, type: ColumnPropertiesType['type']) {\n this.columnName = columnName;\n this.properties.type = type;\n }\n\n length(length: number) {\n this.properties.length = length;\n return this;\n }\n\n nullable(nullable: boolean = true) {\n this.properties.nullable = nullable;\n return this;\n }\n\n unique(unique: boolean = true) {\n this.properties.unique = unique;\n return this;\n }\n\n default(value: ColumnPropertiesType['default']) {\n this.properties.default = value;\n return this;\n }\n}\n\n// references('id').on('roles').onDelete('cascade').onUpdate('cascade');\nexport class ForeignKeyConstraint {\n column: string;\n reference_table: { table: string; column: string };\n onUpdateAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n onDeleteAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n\n constructor(column: string) {\n this.column = column;\n this.reference_table = { table: '', column: '' };\n }\n\n on(table: string) {\n this.reference_table.table = table;\n return this;\n }\n\n references(column: string) {\n this.reference_table.column = column;\n return this;\n }\n\n onDelete(action: typeof this.onDeleteAction) {\n this.onDeleteAction = action;\n return this;\n }\n\n onUpdate(action: typeof this.onUpdateAction) {\n this.onUpdateAction = action;\n return this;\n }\n}\n\nexport class Blueprint {\n tableName: string = '';\n columns: Column[] = [];\n foreignKeys: ForeignKeyConstraint[] = [];\n existingTable: boolean = false;\n primaryKeys: string[] = [];\n constructor() {}\n setTableName(tableName: string, existingTable: boolean = false) {\n this.tableName = tableName;\n this.existingTable = existingTable;\n }\n\n Boolean(columnName: string) {\n const rc = new Column(columnName, 'boolean');\n this.columns.push(rc);\n return rc;\n }\n\n char(columnName: string) {\n const rc = new Column(columnName, 'char');\n this.columns.push(rc);\n return rc;\n }\n\n string(columnName: string, length: number = 255) {\n const rc = new Column(columnName, 'string');\n rc.length(length);\n this.columns.push(rc);\n return rc;\n }\n\n text(columnName: string) {\n const rc = new Column(columnName, 'text');\n this.columns.push(rc);\n return rc;\n }\n\n integer(columnName: string) {\n const rc = new Column(columnName, 'integer');\n this.columns.push(rc);\n return rc;\n }\n\n float(columnName: string) {\n const rc = new Column(columnName, 'float');\n this.columns.push(rc);\n return rc;\n }\n\n double(columnName: string) {\n const rc = new Column(columnName, 'double');\n this.columns.push(rc);\n return rc;\n }\n\n id() {\n const rc = new Column('id', 'serial');\n this.columns.push(rc);\n this.primaryKeys.push('id');\n return rc;\n }\n\n timestamps() {\n this.columns.push(\n new Column('created_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n this.columns.push(\n new Column('updated_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n }\n\n date(columnName: string) {\n const rc = new Column(columnName, 'date');\n this.columns.push(rc);\n return rc;\n }\n\n primary(keys: string[]) {\n this.primaryKeys = keys;\n }\n\n foreign(columnName: string) {\n const rc = new ForeignKeyConstraint(columnName);\n this.foreignKeys.push(rc);\n return rc;\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/Blueprint.ts"],"sourcesContent":["import { Expression } from './Expression';\nimport { Parameter } from './types';\n\nexport type ColumnPropertiesType = {\n type:\n | 'string'\n | 'integer'\n | 'float'\n | 'double'\n | 'boolean'\n | 'char'\n | 'text'\n | 'date'\n | 'timestamp'\n | 'serial';\n length: number;\n nullable: boolean;\n unique: boolean;\n default: Parameter;\n};\nexport class Column {\n columnName: string = '';\n properties: ColumnPropertiesType = {\n type: 'string',\n length: 255,\n nullable: false,\n unique: false,\n default: null,\n };\n\n constructor(columnName: string, type: ColumnPropertiesType['type']) {\n this.columnName = columnName;\n this.properties.type = type;\n }\n\n length(length: number) {\n this.properties.length = length;\n return this;\n }\n\n nullable(nullable: boolean = true) {\n this.properties.nullable = nullable;\n return this;\n }\n\n unique(unique: boolean = true) {\n this.properties.unique = unique;\n return this;\n }\n\n default(value: ColumnPropertiesType['default']) {\n this.properties.default = value;\n return this;\n }\n}\n\n// references('id').on('roles').onDelete('cascade').onUpdate('cascade');\nexport class ForeignKeyConstraint {\n column: string;\n reference_table: { table: string; column: string };\n onUpdateAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n onDeleteAction: 'cascade' | 'set null' | 'restrict' | 'no action' = 'restrict';\n\n constructor(column: string) {\n this.column = column;\n this.reference_table = { table: '', column: '' };\n }\n\n on(table: string) {\n this.reference_table.table = table;\n return this;\n }\n\n references(column: string) {\n this.reference_table.column = column;\n return this;\n }\n\n onDelete(action: typeof this.onDeleteAction) {\n this.onDeleteAction = action;\n return this;\n }\n\n onUpdate(action: typeof this.onUpdateAction) {\n this.onUpdateAction = action;\n return this;\n }\n}\n\nexport class Blueprint {\n tableName: string = '';\n columns: Column[] = [];\n drop_coumns: string[] = [];\n foreignKeys: ForeignKeyConstraint[] = [];\n existingTable: boolean = false;\n primaryKeys: string[] = [];\n constructor() {}\n setTableName(tableName: string, existingTable: boolean = false) {\n this.tableName = tableName;\n this.existingTable = existingTable;\n }\n\n Boolean(columnName: string) {\n const rc = new Column(columnName, 'boolean');\n this.columns.push(rc);\n return rc;\n }\n\n char(columnName: string) {\n const rc = new Column(columnName, 'char');\n this.columns.push(rc);\n return rc;\n }\n\n string(columnName: string, length: number = 255) {\n const rc = new Column(columnName, 'string');\n rc.length(length);\n this.columns.push(rc);\n return rc;\n }\n\n text(columnName: string) {\n const rc = new Column(columnName, 'text');\n this.columns.push(rc);\n return rc;\n }\n\n integer(columnName: string) {\n const rc = new Column(columnName, 'integer');\n this.columns.push(rc);\n return rc;\n }\n\n float(columnName: string) {\n const rc = new Column(columnName, 'float');\n this.columns.push(rc);\n return rc;\n }\n\n double(columnName: string) {\n const rc = new Column(columnName, 'double');\n this.columns.push(rc);\n return rc;\n }\n\n id() {\n const rc = new Column('id', 'serial');\n this.columns.push(rc);\n this.primaryKeys.push('id');\n return rc;\n }\n\n timestamps() {\n this.columns.push(\n new Column('created_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n this.columns.push(\n new Column('updated_at', 'timestamp').default(new Expression('CURRENT_TIMESTAMP'))\n );\n }\n\n date(columnName: string) {\n const rc = new Column(columnName, 'date');\n this.columns.push(rc);\n return rc;\n }\n\n primary(keys: string[]) {\n this.primaryKeys = keys;\n }\n\n foreign(columnName: string) {\n const rc = new ForeignKeyConstraint(columnName);\n this.foreignKeys.push(rc);\n return rc;\n }\n\n dropColumn(columnName: string) {\n this.drop_coumns.push(columnName);\n }\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAoBpB,MAAM,OAAO;AAAA,EAClB,aAAqB;AAAA,EACrB,aAAmC;AAAA,IACjC,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EAEA,YAAY,YAAoB,MAAoC;AAClE,SAAK,aAAa;AAClB,SAAK,WAAW,OAAO;AAAA,EACzB;AAAA,EAEA,OAAO,QAAgB;AACrB,SAAK,WAAW,SAAS;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,WAAoB,MAAM;AACjC,SAAK,WAAW,WAAW;AAC3B,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,SAAkB,MAAM;AAC7B,SAAK,WAAW,SAAS;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,OAAwC;AAC9C,SAAK,WAAW,UAAU;AAC1B,WAAO;AAAA,EACT;AACF;AAGO,MAAM,qBAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA,iBAAoE;AAAA,EACpE,iBAAoE;AAAA,EAEpE,YAAY,QAAgB;AAC1B,SAAK,SAAS;AACd,SAAK,kBAAkB,EAAE,OAAO,IAAI,QAAQ,GAAG;AAAA,EACjD;AAAA,EAEA,GAAG,OAAe;AAChB,SAAK,gBAAgB,QAAQ;AAC7B,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,QAAgB;AACzB,SAAK,gBAAgB,SAAS;AAC9B,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,QAAoC;AAC3C,SAAK,iBAAiB;AACtB,WAAO;AAAA,EACT;AAAA,EAEA,SAAS,QAAoC;AAC3C,SAAK,iBAAiB;AACtB,WAAO;AAAA,EACT;AACF;AAEO,MAAM,UAAU;AAAA,EACrB,YAAoB;AAAA,EACpB,UAAoB,CAAC;AAAA,EACrB,cAAwB,CAAC;AAAA,EACzB,cAAsC,CAAC;AAAA,EACvC,gBAAyB;AAAA,EACzB,cAAwB,CAAC;AAAA,EACzB,cAAc;AAAA,EAAC;AAAA,EACf,aAAa,WAAmB,gBAAyB,OAAO;AAC9D,SAAK,YAAY;AACjB,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAEA,QAAQ,YAAoB;AAC1B,UAAM,KAAK,IAAI,OAAO,YAAY,SAAS;AAC3C,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,YAAoB;AACvB,UAAM,KAAK,IAAI,OAAO,YAAY,MAAM;AACxC,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,YAAoB,SAAiB,KAAK;AAC/C,UAAM,KAAK,IAAI,OAAO,YAAY,QAAQ;AAC1C,OAAG,OAAO,MAAM;AAChB,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,YAAoB;AACvB,UAAM,KAAK,IAAI,OAAO,YAAY,MAAM;AACxC,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,YAAoB;AAC1B,UAAM,KAAK,IAAI,OAAO,YAAY,SAAS;AAC3C,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAoB;AACxB,UAAM,KAAK,IAAI,OAAO,YAAY,OAAO;AACzC,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,YAAoB;AACzB,UAAM,KAAK,IAAI,OAAO,YAAY,QAAQ;AAC1C,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK;AACH,UAAM,KAAK,IAAI,OAAO,MAAM,QAAQ;AACpC,SAAK,QAAQ,KAAK,EAAE;AACpB,SAAK,YAAY,KAAK,IAAI;AAC1B,WAAO;AAAA,EACT;AAAA,EAEA,aAAa;AACX,SAAK,QAAQ;AAAA,MACX,IAAI,OAAO,cAAc,WAAW,EAAE,QAAQ,IAAI,WAAW,mBAAmB,CAAC;AAAA,IACnF;AACA,SAAK,QAAQ;AAAA,MACX,IAAI,OAAO,cAAc,WAAW,EAAE,QAAQ,IAAI,WAAW,mBAAmB,CAAC;AAAA,IACnF;AAAA,EACF;AAAA,EAEA,KAAK,YAAoB;AACvB,UAAM,KAAK,IAAI,OAAO,YAAY,MAAM;AACxC,SAAK,QAAQ,KAAK,EAAE;AACpB,WAAO;AAAA,EACT;AAAA,EAEA,QAAQ,MAAgB;AACtB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,QAAQ,YAAoB;AAC1B,UAAM,KAAK,IAAI,qBAAqB,UAAU;AAC9C,SAAK,YAAY,KAAK,EAAE;AACxB,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAAoB;AAC7B,SAAK,YAAY,KAAK,UAAU;AAAA,EAClC;AACF;","names":[]}
@@ -7,6 +7,7 @@ declare class Schema {
7
7
  private readonly grammar;
8
8
  constructor(connection: Connection | null, grammar: SchemaGrammar);
9
9
  createTable(tableName: string, structMethod: (blueprint: Blueprint) => void): Promise<void>;
10
+ alterTable(tableName: string, structMethod: (blueprint: Blueprint) => void): Promise<void>;
10
11
  dropTable(tableName: string): Promise<void>;
11
12
  tables(): Promise<any>;
12
13
  tableExists(table_name: string): Promise<boolean>;
@@ -98,6 +99,8 @@ declare abstract class Connection {
98
99
  abstract beginTransaction(): Promise<void>;
99
100
  abstract commit(): Promise<void>;
100
101
  abstract rollback(): Promise<void>;
102
+ abstract getQueryGrammar(): QueryGrammar;
103
+ abstract getSchemaGrammar(): SchemaGrammar;
101
104
  }
102
105
 
103
106
  export { Connection as C, type QueryParts as Q, Schema as S, Query as a, QueryGrammar as b };
@@ -7,6 +7,7 @@ declare class Schema {
7
7
  private readonly grammar;
8
8
  constructor(connection: Connection | null, grammar: SchemaGrammar);
9
9
  createTable(tableName: string, structMethod: (blueprint: Blueprint) => void): Promise<void>;
10
+ alterTable(tableName: string, structMethod: (blueprint: Blueprint) => void): Promise<void>;
10
11
  dropTable(tableName: string): Promise<void>;
11
12
  tables(): Promise<any>;
12
13
  tableExists(table_name: string): Promise<boolean>;
@@ -98,6 +99,8 @@ declare abstract class Connection {
98
99
  abstract beginTransaction(): Promise<void>;
99
100
  abstract commit(): Promise<void>;
100
101
  abstract rollback(): Promise<void>;
102
+ abstract getQueryGrammar(): QueryGrammar;
103
+ abstract getSchemaGrammar(): SchemaGrammar;
101
104
  }
102
105
 
103
106
  export { Connection as C, type QueryParts as Q, Schema as S, Query as a, QueryGrammar as b };
@@ -1,4 +1,4 @@
1
- export { C as Connection } from './Connection-DhP5VxCW.mjs';
1
+ export { C as Connection } from './Connection-D4SY9JPV.mjs';
2
2
  import './types-C_aDrXJN.mjs';
3
- import './Blueprint.mjs';
4
3
  import './SchemaGrammar.mjs';
4
+ import './Blueprint.mjs';
@@ -1,4 +1,4 @@
1
- export { C as Connection } from './Connection-CM5zdBeX.js';
1
+ export { C as Connection } from './Connection-DklX9Kzq.js';
2
2
  import './types-C_aDrXJN.js';
3
- import './Blueprint.js';
4
3
  import './SchemaGrammar.js';
4
+ import './Blueprint.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Connection.ts"],"sourcesContent":["import { Schema } from './Schema';\nimport { Query } from './Query';\nimport { CompiledSql } from './types';\n\nexport abstract class Connection {\n abstract connect(): Promise<boolean>;\n abstract runQuery(sql: CompiledSql): Promise<any>;\n abstract runCursor(sql: CompiledSql): Promise<any>;\n abstract disconnect(): Promise<boolean>;\n abstract getQuery(): Query;\n abstract getSchema(): Schema;\n abstract beginTransaction(): Promise<void>;\n abstract commit(): Promise<void>;\n abstract rollback(): Promise<void>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAe,WAAW;AAUjC;","names":[]}
1
+ {"version":3,"sources":["../src/Connection.ts"],"sourcesContent":["import { Schema } from './Schema';\nimport { Query } from './Query';\nimport { CompiledSql } from './types';\nimport { QueryGrammar } from './QueryGrammar';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport abstract class Connection {\n abstract connect(): Promise<boolean>;\n abstract runQuery(sql: CompiledSql): Promise<any>;\n abstract runCursor(sql: CompiledSql): Promise<any>;\n abstract disconnect(): Promise<boolean>;\n abstract getQuery(): Query;\n abstract getSchema(): Schema;\n abstract beginTransaction(): Promise<void>;\n abstract commit(): Promise<void>;\n abstract rollback(): Promise<void>;\n abstract getQueryGrammar(): QueryGrammar;\n abstract getSchemaGrammar(): SchemaGrammar;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAe,WAAW;AAYjC;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Connection.ts"],"sourcesContent":["import { Schema } from './Schema';\nimport { Query } from './Query';\nimport { CompiledSql } from './types';\n\nexport abstract class Connection {\n abstract connect(): Promise<boolean>;\n abstract runQuery(sql: CompiledSql): Promise<any>;\n abstract runCursor(sql: CompiledSql): Promise<any>;\n abstract disconnect(): Promise<boolean>;\n abstract getQuery(): Query;\n abstract getSchema(): Schema;\n abstract beginTransaction(): Promise<void>;\n abstract commit(): Promise<void>;\n abstract rollback(): Promise<void>;\n}\n"],"mappings":"AAIO,MAAe,WAAW;AAUjC;","names":[]}
1
+ {"version":3,"sources":["../src/Connection.ts"],"sourcesContent":["import { Schema } from './Schema';\nimport { Query } from './Query';\nimport { CompiledSql } from './types';\nimport { QueryGrammar } from './QueryGrammar';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport abstract class Connection {\n abstract connect(): Promise<boolean>;\n abstract runQuery(sql: CompiledSql): Promise<any>;\n abstract runCursor(sql: CompiledSql): Promise<any>;\n abstract disconnect(): Promise<boolean>;\n abstract getQuery(): Query;\n abstract getSchema(): Schema;\n abstract beginTransaction(): Promise<void>;\n abstract commit(): Promise<void>;\n abstract rollback(): Promise<void>;\n abstract getQueryGrammar(): QueryGrammar;\n abstract getSchemaGrammar(): SchemaGrammar;\n}\n"],"mappings":"AAMO,MAAe,WAAW;AAYjC;","names":[]}
@@ -1,4 +1,4 @@
1
- import { S as Schema } from './Connection-DhP5VxCW.mjs';
1
+ import { S as Schema } from './Connection-D4SY9JPV.mjs';
2
2
  import './Blueprint.mjs';
3
3
  import './types-C_aDrXJN.mjs';
4
4
  import './SchemaGrammar.mjs';
@@ -1,4 +1,4 @@
1
- import { S as Schema } from './Connection-CM5zdBeX.js';
1
+ import { S as Schema } from './Connection-DklX9Kzq.js';
2
2
  import './Blueprint.js';
3
3
  import './types-C_aDrXJN.js';
4
4
  import './SchemaGrammar.js';
package/dist/Query.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- export { a as Query, Q as QueryParts } from './Connection-DhP5VxCW.mjs';
1
+ export { a as Query, Q as QueryParts } from './Connection-D4SY9JPV.mjs';
2
2
  import './types-C_aDrXJN.mjs';
3
3
  import './Blueprint.mjs';
4
4
  import './SchemaGrammar.mjs';
package/dist/Query.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { a as Query, Q as QueryParts } from './Connection-CM5zdBeX.js';
1
+ export { a as Query, Q as QueryParts } from './Connection-DklX9Kzq.js';
2
2
  import './types-C_aDrXJN.js';
3
3
  import './Blueprint.js';
4
4
  import './SchemaGrammar.js';
@@ -1,4 +1,4 @@
1
- export { b as QueryGrammar } from './Connection-DhP5VxCW.mjs';
1
+ export { b as QueryGrammar } from './Connection-D4SY9JPV.mjs';
2
2
  import './types-C_aDrXJN.mjs';
3
3
  import './Blueprint.mjs';
4
4
  import './SchemaGrammar.mjs';
@@ -1,4 +1,4 @@
1
- export { b as QueryGrammar } from './Connection-CM5zdBeX.js';
1
+ export { b as QueryGrammar } from './Connection-DklX9Kzq.js';
2
2
  import './types-C_aDrXJN.js';
3
3
  import './Blueprint.js';
4
4
  import './SchemaGrammar.js';
package/dist/Schema.d.mts CHANGED
@@ -1,4 +1,4 @@
1
1
  import './Blueprint.mjs';
2
- export { S as Schema } from './Connection-DhP5VxCW.mjs';
2
+ export { S as Schema } from './Connection-D4SY9JPV.mjs';
3
3
  import './SchemaGrammar.mjs';
4
4
  import './types-C_aDrXJN.mjs';
package/dist/Schema.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import './Blueprint.js';
2
- export { S as Schema } from './Connection-CM5zdBeX.js';
2
+ export { S as Schema } from './Connection-DklX9Kzq.js';
3
3
  import './SchemaGrammar.js';
4
4
  import './types-C_aDrXJN.js';
package/dist/Schema.js CHANGED
@@ -36,6 +36,14 @@ class Schema {
36
36
  const sql = grammar.toSql(blueprint);
37
37
  await this.connection?.runQuery({ sql, bindings: [] });
38
38
  }
39
+ async alterTable(tableName, structMethod) {
40
+ const blueprint = new import_Blueprint.Blueprint();
41
+ blueprint.setTableName(tableName, true);
42
+ structMethod(blueprint);
43
+ const grammar = new import_SchemaGrammar.SchemaGrammar();
44
+ const sql = grammar.toSql(blueprint);
45
+ await this.connection?.runQuery({ sql, bindings: [] });
46
+ }
39
47
  async dropTable(tableName) {
40
48
  const grammar = new import_SchemaGrammar.SchemaGrammar();
41
49
  await this.connection?.runQuery(grammar.compileDropTable(tableName));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Schema.ts"],"sourcesContent":["import { Blueprint } from './Blueprint';\nimport { Connection } from './Connection';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport class Schema {\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: SchemaGrammar\n ) {}\n\n async createTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, false);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async dropTable(tableName: string) {\n const grammar = new SchemaGrammar();\n await this.connection?.runQuery(grammar.compileDropTable(tableName));\n }\n\n async tables() {\n const grammar = new SchemaGrammar();\n return await this.connection?.runQuery(grammar.compileTables());\n }\n\n async tableExists(table_name: string): Promise<boolean> {\n const grammar = new SchemaGrammar();\n return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]['exists'];\n }\n\n async dropTableIfExists(tableName: string): Promise<void> {\n if (await this.tableExists(tableName)) {\n await this.dropTable(tableName);\n }\n\n return;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B;AAE1B,2BAA8B;AAEvB,MAAM,OAAO;AAAA,EAClB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,YAAY,WAAmB,cAA8C;AACjF,UAAM,YAAY,IAAI,2BAAU;AAChC,cAAU,aAAa,WAAW,KAAK;AACvC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,UAAU,WAAmB;AACjC,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,KAAK,YAAY,SAAS,QAAQ,iBAAiB,SAAS,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,UAAU,IAAI,mCAAc;AAClC,WAAO,MAAM,KAAK,YAAY,SAAS,QAAQ,cAAc,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,YAAY,YAAsC;AACtD,UAAM,UAAU,IAAI,mCAAc;AAClC,YAAQ,MAAM,KAAK,YAAY,SAAS,QAAQ,mBAAmB,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,WAAkC;AACxD,QAAI,MAAM,KAAK,YAAY,SAAS,GAAG;AACrC,YAAM,KAAK,UAAU,SAAS;AAAA,IAChC;AAEA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/Schema.ts"],"sourcesContent":["import { Blueprint } from './Blueprint';\nimport { Connection } from './Connection';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport class Schema {\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: SchemaGrammar\n ) {}\n\n async createTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, false);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async alterTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, true);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async dropTable(tableName: string) {\n const grammar = new SchemaGrammar();\n await this.connection?.runQuery(grammar.compileDropTable(tableName));\n }\n\n async tables() {\n const grammar = new SchemaGrammar();\n return await this.connection?.runQuery(grammar.compileTables());\n }\n\n async tableExists(table_name: string): Promise<boolean> {\n const grammar = new SchemaGrammar();\n return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]['exists'];\n }\n\n async dropTableIfExists(tableName: string): Promise<void> {\n if (await this.tableExists(tableName)) {\n await this.dropTable(tableName);\n }\n\n return;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA0B;AAE1B,2BAA8B;AAEvB,MAAM,OAAO;AAAA,EAClB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,YAAY,WAAmB,cAA8C;AACjF,UAAM,YAAY,IAAI,2BAAU;AAChC,cAAU,aAAa,WAAW,KAAK;AACvC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,WAAW,WAAmB,cAA8C;AAChF,UAAM,YAAY,IAAI,2BAAU;AAChC,cAAU,aAAa,WAAW,IAAI;AACtC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,UAAU,WAAmB;AACjC,UAAM,UAAU,IAAI,mCAAc;AAClC,UAAM,KAAK,YAAY,SAAS,QAAQ,iBAAiB,SAAS,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,UAAU,IAAI,mCAAc;AAClC,WAAO,MAAM,KAAK,YAAY,SAAS,QAAQ,cAAc,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,YAAY,YAAsC;AACtD,UAAM,UAAU,IAAI,mCAAc;AAClC,YAAQ,MAAM,KAAK,YAAY,SAAS,QAAQ,mBAAmB,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,WAAkC;AACxD,QAAI,MAAM,KAAK,YAAY,SAAS,GAAG;AACrC,YAAM,KAAK,UAAU,SAAS;AAAA,IAChC;AAEA;AAAA,EACF;AACF;","names":[]}
package/dist/Schema.mjs CHANGED
@@ -13,6 +13,14 @@ class Schema {
13
13
  const sql = grammar.toSql(blueprint);
14
14
  await this.connection?.runQuery({ sql, bindings: [] });
15
15
  }
16
+ async alterTable(tableName, structMethod) {
17
+ const blueprint = new Blueprint();
18
+ blueprint.setTableName(tableName, true);
19
+ structMethod(blueprint);
20
+ const grammar = new SchemaGrammar();
21
+ const sql = grammar.toSql(blueprint);
22
+ await this.connection?.runQuery({ sql, bindings: [] });
23
+ }
16
24
  async dropTable(tableName) {
17
25
  const grammar = new SchemaGrammar();
18
26
  await this.connection?.runQuery(grammar.compileDropTable(tableName));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/Schema.ts"],"sourcesContent":["import { Blueprint } from './Blueprint';\nimport { Connection } from './Connection';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport class Schema {\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: SchemaGrammar\n ) {}\n\n async createTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, false);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async dropTable(tableName: string) {\n const grammar = new SchemaGrammar();\n await this.connection?.runQuery(grammar.compileDropTable(tableName));\n }\n\n async tables() {\n const grammar = new SchemaGrammar();\n return await this.connection?.runQuery(grammar.compileTables());\n }\n\n async tableExists(table_name: string): Promise<boolean> {\n const grammar = new SchemaGrammar();\n return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]['exists'];\n }\n\n async dropTableIfExists(tableName: string): Promise<void> {\n if (await this.tableExists(tableName)) {\n await this.dropTable(tableName);\n }\n\n return;\n }\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAEvB,MAAM,OAAO;AAAA,EAClB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,YAAY,WAAmB,cAA8C;AACjF,UAAM,YAAY,IAAI,UAAU;AAChC,cAAU,aAAa,WAAW,KAAK;AACvC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,cAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,UAAU,WAAmB;AACjC,UAAM,UAAU,IAAI,cAAc;AAClC,UAAM,KAAK,YAAY,SAAS,QAAQ,iBAAiB,SAAS,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,UAAU,IAAI,cAAc;AAClC,WAAO,MAAM,KAAK,YAAY,SAAS,QAAQ,cAAc,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,YAAY,YAAsC;AACtD,UAAM,UAAU,IAAI,cAAc;AAClC,YAAQ,MAAM,KAAK,YAAY,SAAS,QAAQ,mBAAmB,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,WAAkC;AACxD,QAAI,MAAM,KAAK,YAAY,SAAS,GAAG;AACrC,YAAM,KAAK,UAAU,SAAS;AAAA,IAChC;AAEA;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/Schema.ts"],"sourcesContent":["import { Blueprint } from './Blueprint';\nimport { Connection } from './Connection';\nimport { SchemaGrammar } from './SchemaGrammar';\n\nexport class Schema {\n constructor(\n private readonly connection: Connection | null,\n private readonly grammar: SchemaGrammar\n ) {}\n\n async createTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, false);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async alterTable(tableName: string, structMethod: (blueprint: Blueprint) => void) {\n const blueprint = new Blueprint();\n blueprint.setTableName(tableName, true);\n structMethod(blueprint);\n\n const grammar = new SchemaGrammar();\n const sql = grammar.toSql(blueprint);\n await this.connection?.runQuery({ sql, bindings: [] });\n }\n\n async dropTable(tableName: string) {\n const grammar = new SchemaGrammar();\n await this.connection?.runQuery(grammar.compileDropTable(tableName));\n }\n\n async tables() {\n const grammar = new SchemaGrammar();\n return await this.connection?.runQuery(grammar.compileTables());\n }\n\n async tableExists(table_name: string): Promise<boolean> {\n const grammar = new SchemaGrammar();\n return (await this.connection?.runQuery(grammar.compileTableExists(table_name)))[0]['exists'];\n }\n\n async dropTableIfExists(tableName: string): Promise<void> {\n if (await this.tableExists(tableName)) {\n await this.dropTable(tableName);\n }\n\n return;\n }\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,qBAAqB;AAEvB,MAAM,OAAO;AAAA,EAClB,YACmB,YACA,SACjB;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,YAAY,WAAmB,cAA8C;AACjF,UAAM,YAAY,IAAI,UAAU;AAChC,cAAU,aAAa,WAAW,KAAK;AACvC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,cAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,WAAW,WAAmB,cAA8C;AAChF,UAAM,YAAY,IAAI,UAAU;AAChC,cAAU,aAAa,WAAW,IAAI;AACtC,iBAAa,SAAS;AAEtB,UAAM,UAAU,IAAI,cAAc;AAClC,UAAM,MAAM,QAAQ,MAAM,SAAS;AACnC,UAAM,KAAK,YAAY,SAAS,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,UAAU,WAAmB;AACjC,UAAM,UAAU,IAAI,cAAc;AAClC,UAAM,KAAK,YAAY,SAAS,QAAQ,iBAAiB,SAAS,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,SAAS;AACb,UAAM,UAAU,IAAI,cAAc;AAClC,WAAO,MAAM,KAAK,YAAY,SAAS,QAAQ,cAAc,CAAC;AAAA,EAChE;AAAA,EAEA,MAAM,YAAY,YAAsC;AACtD,UAAM,UAAU,IAAI,cAAc;AAClC,YAAQ,MAAM,KAAK,YAAY,SAAS,QAAQ,mBAAmB,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ;AAAA,EAC9F;AAAA,EAEA,MAAM,kBAAkB,WAAkC;AACxD,QAAI,MAAM,KAAK,YAAY,SAAS,GAAG;AACrC,YAAM,KAAK,UAAU,SAAS;AAAA,IAChC;AAEA;AAAA,EACF;AACF;","names":[]}
@@ -1,8 +1,10 @@
1
1
  import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint.mjs';
2
- import { P as Parameter, C as CompiledSql } from './types-C_aDrXJN.mjs';
2
+ import { C as CompiledSql, P as Parameter } from './types-C_aDrXJN.mjs';
3
3
 
4
4
  declare class SchemaGrammar {
5
5
  toSql(blueprint: Blueprint): string;
6
+ compileCreateTable(blueprint: Blueprint): CompiledSql;
7
+ compileAlterTable(blueprint: Blueprint): CompiledSql;
6
8
  compileColumn(column: Column): string;
7
9
  escape(value: Parameter): string;
8
10
  compilePrimaryKeys(primaryKeys: string[]): string;
@@ -1,8 +1,10 @@
1
1
  import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint.js';
2
- import { P as Parameter, C as CompiledSql } from './types-C_aDrXJN.js';
2
+ import { C as CompiledSql, P as Parameter } from './types-C_aDrXJN.js';
3
3
 
4
4
  declare class SchemaGrammar {
5
5
  toSql(blueprint: Blueprint): string;
6
+ compileCreateTable(blueprint: Blueprint): CompiledSql;
7
+ compileAlterTable(blueprint: Blueprint): CompiledSql;
6
8
  compileColumn(column: Column): string;
7
9
  escape(value: Parameter): string;
8
10
  compilePrimaryKeys(primaryKeys: string[]): string;
@@ -24,6 +24,14 @@ module.exports = __toCommonJS(SchemaGrammar_exports);
24
24
  var import_Expression = require("./Expression");
25
25
  class SchemaGrammar {
26
26
  toSql(blueprint) {
27
+ if (!blueprint.existingTable) {
28
+ return this.compileCreateTable(blueprint).sql;
29
+ } else if (blueprint.existingTable) {
30
+ return this.compileAlterTable(blueprint).sql;
31
+ }
32
+ throw new Error("bad blueprint to compile: " + blueprint.tableName);
33
+ }
34
+ compileCreateTable(blueprint) {
27
35
  let sql = "create table " + blueprint.tableName + " (";
28
36
  const columns = blueprint.columns.map((v) => {
29
37
  return this.compileColumn(v);
@@ -36,7 +44,18 @@ class SchemaGrammar {
36
44
  });
37
45
  }
38
46
  sql += [columns, primaryKeys, ...foreignKeys].join(",") + ")";
39
- return sql;
47
+ return { sql, bindings: [] };
48
+ }
49
+ compileAlterTable(blueprint) {
50
+ let sql = ["alter table " + blueprint.tableName];
51
+ const add_columns = blueprint.columns.map((v) => {
52
+ return "add column " + this.compileColumn(v);
53
+ });
54
+ const drop_columns = blueprint.drop_coumns.map((v) => {
55
+ return "drop column " + v;
56
+ });
57
+ sql = sql.concat([[...add_columns, ...drop_columns].join(", ")]);
58
+ return { sql: sql.join(" "), bindings: [] };
40
59
  }
41
60
  compileColumn(column) {
42
61
  const rc = [`${column.columnName}`];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/SchemaGrammar.ts"],"sourcesContent":["import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint';\nimport { Expression } from './Expression';\nimport { CompiledSql, Parameter } from './types';\n\nexport class SchemaGrammar {\n toSql(blueprint: Blueprint): string {\n let sql = 'create table ' + blueprint.tableName + ' (';\n const columns = blueprint.columns\n .map((v: Column) => {\n return this.compileColumn(v);\n })\n .join(', ');\n\n const primaryKeys = this.compilePrimaryKeys(blueprint.primaryKeys);\n let foreignKeys: string[] = [];\n if (blueprint.foreignKeys.length > 0) {\n foreignKeys = blueprint.foreignKeys.map((v: ForeignKeyConstraint) => {\n return this.compileForeignKey(v);\n });\n }\n sql += [columns, primaryKeys, ...foreignKeys].join(',') + ')';\n return sql;\n }\n\n compileColumn(column: Column): string {\n const rc = [`${column.columnName}`];\n\n if (column.properties.type === 'string') {\n rc.push('varchar(' + column.properties.length + ')');\n } else if (column.properties.type === 'char') {\n rc.push('char');\n } else if (column.properties.type === 'boolean') {\n rc.push('boolean');\n } else if (column.properties.type === 'integer') {\n rc.push('integer');\n } else if (column.properties.type === 'text') {\n rc.push('text');\n } else if (column.properties.type === 'timestamp') {\n rc.push('timestamp');\n } else if (column.properties.type === 'serial') {\n rc.push('serial');\n } else if (column.properties.type === 'float') {\n rc.push('float');\n } else if (column.properties.type === 'double') {\n rc.push('double precision');\n } else if (column.properties.type === 'date') {\n rc.push('date');\n } else {\n throw new Error('Unknown column type: ' + column.properties.type);\n }\n\n if (column.properties.nullable) {\n rc.push('null');\n } else {\n rc.push('not null');\n }\n\n if (column.properties.unique) {\n rc.push('unique');\n }\n\n if (column.properties.default !== null) {\n rc.push('default ' + this.escape(column.properties.default));\n }\n\n return rc.join(' ');\n }\n\n escape(value: Parameter): string {\n if (value === null || value === undefined) {\n return 'null';\n }\n\n if (typeof value === 'number') {\n return value.toString();\n }\n\n if (typeof value === 'boolean') {\n return value ? 'true' : 'false';\n }\n\n if (value instanceof Date) {\n return \"'\" + value.toISOString() + \"'\";\n }\n\n if (value instanceof Expression) {\n return value.toCompiledSql().sql;\n }\n\n return \"'\" + value.replace(\"'\", \"\\\\'\") + \"'\";\n }\n\n compilePrimaryKeys(primaryKeys: string[]): string {\n if (!primaryKeys.length) {\n return '';\n }\n\n return 'primary key (' + primaryKeys.join(', ') + ')';\n }\n\n compileTables(schema: string | string[] | undefined = undefined): CompiledSql {\n return {\n sql:\n 'select c.relname as name, n.nspname as schema, pg_total_relation_size(c.oid) as size, ' +\n \"obj_description(c.oid, 'pg_class') as comment from pg_class c, pg_namespace n \" +\n \"where c.relkind in ('r', 'p') and n.oid = c.relnamespace and \" +\n this.compileSchemaWhereClause(schema, 'n.nspname') +\n ' order by n.nspname, c.relname',\n bindings: [],\n };\n }\n\n compileTableExists(tableName: string, schema: string = ''): CompiledSql {\n return {\n sql:\n 'select exists (select 1 from pg_class c, pg_namespace n where ' +\n 'n.nspname = ' +\n (schema ? this.escape(schema) : 'current_schema()') +\n \" and c.relname = $1 and c.relkind in ('r', 'p') and n.oid = c.relnamespace)\",\n bindings: [tableName],\n };\n }\n\n compileDropTable(tableName: string): CompiledSql {\n return { sql: `drop table ${this.doubleQuoteString(tableName)}`, bindings: [] };\n }\n\n protected compileSchemaWhereClause(\n schema: string | string[] | undefined,\n column: string\n ): string {\n if (Array.isArray(schema) && schema.length > 0) {\n return `${column} in (${this.quoteString(schema)})`;\n } else if (schema && typeof schema === 'string') {\n return `${column} = ${this.quoteString(schema)}`;\n } else {\n return `${column} <> 'information_schema' and ${column} not like 'pg\\\\_%'`;\n }\n }\n\n protected quoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => `'${v.replace(/'/g, \"\\\\'\")}'`).join(', ');\n }\n return `'${value.replace(/'/g, \"\\\\'\")}'`;\n }\n\n protected doubleQuoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => this.doubleQuoteString(v)).join(', ');\n }\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n\n protected compileForeignKey(foreignKey: ForeignKeyConstraint): string {\n //FOREIGN KEY (PersonID) REFERENCES users(id)\n const rc = [`FOREIGN KEY (${foreignKey.column})`];\n rc.push(`references ${foreignKey.reference_table.table}(${foreignKey.reference_table.column})`);\n\n if (foreignKey.onDeleteAction) {\n rc.push(`on delete ${foreignKey.onDeleteAction}`);\n }\n\n if (foreignKey.onUpdateAction) {\n rc.push(`on update ${foreignKey.onUpdateAction}`);\n }\n\n return rc.join(' ');\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/SchemaGrammar.ts"],"sourcesContent":["import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint';\nimport { Expression } from './Expression';\nimport { CompiledSql, Parameter } from './types';\n\nexport class SchemaGrammar {\n toSql(blueprint: Blueprint): string {\n if (!blueprint.existingTable) {\n return this.compileCreateTable(blueprint).sql;\n } else if (blueprint.existingTable) {\n return this.compileAlterTable(blueprint).sql;\n }\n\n throw new Error('bad blueprint to compile: ' + blueprint.tableName);\n }\n\n compileCreateTable(blueprint: Blueprint): CompiledSql {\n let sql = 'create table ' + blueprint.tableName + ' (';\n const columns = blueprint.columns\n .map((v: Column) => {\n return this.compileColumn(v);\n })\n .join(', ');\n\n const primaryKeys = this.compilePrimaryKeys(blueprint.primaryKeys);\n let foreignKeys: string[] = [];\n if (blueprint.foreignKeys.length > 0) {\n foreignKeys = blueprint.foreignKeys.map((v: ForeignKeyConstraint) => {\n return this.compileForeignKey(v);\n });\n }\n sql += [columns, primaryKeys, ...foreignKeys].join(',') + ')';\n return { sql, bindings: [] };\n }\n\n compileAlterTable(blueprint: Blueprint): CompiledSql {\n let sql: string[] = ['alter table ' + blueprint.tableName];\n const add_columns = blueprint.columns.map((v: Column) => {\n return 'add column ' + this.compileColumn(v);\n });\n\n const drop_columns = blueprint.drop_coumns.map((v: string) => {\n return 'drop column ' + v;\n });\n\n sql = sql.concat([[...add_columns, ...drop_columns].join(', ')]);\n\n return { sql: sql.join(' '), bindings: [] };\n }\n\n compileColumn(column: Column): string {\n const rc = [`${column.columnName}`];\n\n if (column.properties.type === 'string') {\n rc.push('varchar(' + column.properties.length + ')');\n } else if (column.properties.type === 'char') {\n rc.push('char');\n } else if (column.properties.type === 'boolean') {\n rc.push('boolean');\n } else if (column.properties.type === 'integer') {\n rc.push('integer');\n } else if (column.properties.type === 'text') {\n rc.push('text');\n } else if (column.properties.type === 'timestamp') {\n rc.push('timestamp');\n } else if (column.properties.type === 'serial') {\n rc.push('serial');\n } else if (column.properties.type === 'float') {\n rc.push('float');\n } else if (column.properties.type === 'double') {\n rc.push('double precision');\n } else if (column.properties.type === 'date') {\n rc.push('date');\n } else {\n throw new Error('Unknown column type: ' + column.properties.type);\n }\n\n if (column.properties.nullable) {\n rc.push('null');\n } else {\n rc.push('not null');\n }\n\n if (column.properties.unique) {\n rc.push('unique');\n }\n\n if (column.properties.default !== null) {\n rc.push('default ' + this.escape(column.properties.default));\n }\n\n return rc.join(' ');\n }\n\n escape(value: Parameter): string {\n if (value === null || value === undefined) {\n return 'null';\n }\n\n if (typeof value === 'number') {\n return value.toString();\n }\n\n if (typeof value === 'boolean') {\n return value ? 'true' : 'false';\n }\n\n if (value instanceof Date) {\n return \"'\" + value.toISOString() + \"'\";\n }\n\n if (value instanceof Expression) {\n return value.toCompiledSql().sql;\n }\n\n return \"'\" + value.replace(\"'\", \"\\\\'\") + \"'\";\n }\n\n compilePrimaryKeys(primaryKeys: string[]): string {\n if (!primaryKeys.length) {\n return '';\n }\n\n return 'primary key (' + primaryKeys.join(', ') + ')';\n }\n\n compileTables(schema: string | string[] | undefined = undefined): CompiledSql {\n return {\n sql:\n 'select c.relname as name, n.nspname as schema, pg_total_relation_size(c.oid) as size, ' +\n \"obj_description(c.oid, 'pg_class') as comment from pg_class c, pg_namespace n \" +\n \"where c.relkind in ('r', 'p') and n.oid = c.relnamespace and \" +\n this.compileSchemaWhereClause(schema, 'n.nspname') +\n ' order by n.nspname, c.relname',\n bindings: [],\n };\n }\n\n compileTableExists(tableName: string, schema: string = ''): CompiledSql {\n return {\n sql:\n 'select exists (select 1 from pg_class c, pg_namespace n where ' +\n 'n.nspname = ' +\n (schema ? this.escape(schema) : 'current_schema()') +\n \" and c.relname = $1 and c.relkind in ('r', 'p') and n.oid = c.relnamespace)\",\n bindings: [tableName],\n };\n }\n\n compileDropTable(tableName: string): CompiledSql {\n return { sql: `drop table ${this.doubleQuoteString(tableName)}`, bindings: [] };\n }\n\n protected compileSchemaWhereClause(\n schema: string | string[] | undefined,\n column: string\n ): string {\n if (Array.isArray(schema) && schema.length > 0) {\n return `${column} in (${this.quoteString(schema)})`;\n } else if (schema && typeof schema === 'string') {\n return `${column} = ${this.quoteString(schema)}`;\n } else {\n return `${column} <> 'information_schema' and ${column} not like 'pg\\\\_%'`;\n }\n }\n\n protected quoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => `'${v.replace(/'/g, \"\\\\'\")}'`).join(', ');\n }\n return `'${value.replace(/'/g, \"\\\\'\")}'`;\n }\n\n protected doubleQuoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => this.doubleQuoteString(v)).join(', ');\n }\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n\n protected compileForeignKey(foreignKey: ForeignKeyConstraint): string {\n //FOREIGN KEY (PersonID) REFERENCES users(id)\n const rc = [`FOREIGN KEY (${foreignKey.column})`];\n rc.push(`references ${foreignKey.reference_table.table}(${foreignKey.reference_table.column})`);\n\n if (foreignKey.onDeleteAction) {\n rc.push(`on delete ${foreignKey.onDeleteAction}`);\n }\n\n if (foreignKey.onUpdateAction) {\n rc.push(`on update ${foreignKey.onUpdateAction}`);\n }\n\n return rc.join(' ');\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,14 @@
1
1
  import { Expression } from "./Expression";
2
2
  class SchemaGrammar {
3
3
  toSql(blueprint) {
4
+ if (!blueprint.existingTable) {
5
+ return this.compileCreateTable(blueprint).sql;
6
+ } else if (blueprint.existingTable) {
7
+ return this.compileAlterTable(blueprint).sql;
8
+ }
9
+ throw new Error("bad blueprint to compile: " + blueprint.tableName);
10
+ }
11
+ compileCreateTable(blueprint) {
4
12
  let sql = "create table " + blueprint.tableName + " (";
5
13
  const columns = blueprint.columns.map((v) => {
6
14
  return this.compileColumn(v);
@@ -13,7 +21,18 @@ class SchemaGrammar {
13
21
  });
14
22
  }
15
23
  sql += [columns, primaryKeys, ...foreignKeys].join(",") + ")";
16
- return sql;
24
+ return { sql, bindings: [] };
25
+ }
26
+ compileAlterTable(blueprint) {
27
+ let sql = ["alter table " + blueprint.tableName];
28
+ const add_columns = blueprint.columns.map((v) => {
29
+ return "add column " + this.compileColumn(v);
30
+ });
31
+ const drop_columns = blueprint.drop_coumns.map((v) => {
32
+ return "drop column " + v;
33
+ });
34
+ sql = sql.concat([[...add_columns, ...drop_columns].join(", ")]);
35
+ return { sql: sql.join(" "), bindings: [] };
17
36
  }
18
37
  compileColumn(column) {
19
38
  const rc = [`${column.columnName}`];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/SchemaGrammar.ts"],"sourcesContent":["import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint';\nimport { Expression } from './Expression';\nimport { CompiledSql, Parameter } from './types';\n\nexport class SchemaGrammar {\n toSql(blueprint: Blueprint): string {\n let sql = 'create table ' + blueprint.tableName + ' (';\n const columns = blueprint.columns\n .map((v: Column) => {\n return this.compileColumn(v);\n })\n .join(', ');\n\n const primaryKeys = this.compilePrimaryKeys(blueprint.primaryKeys);\n let foreignKeys: string[] = [];\n if (blueprint.foreignKeys.length > 0) {\n foreignKeys = blueprint.foreignKeys.map((v: ForeignKeyConstraint) => {\n return this.compileForeignKey(v);\n });\n }\n sql += [columns, primaryKeys, ...foreignKeys].join(',') + ')';\n return sql;\n }\n\n compileColumn(column: Column): string {\n const rc = [`${column.columnName}`];\n\n if (column.properties.type === 'string') {\n rc.push('varchar(' + column.properties.length + ')');\n } else if (column.properties.type === 'char') {\n rc.push('char');\n } else if (column.properties.type === 'boolean') {\n rc.push('boolean');\n } else if (column.properties.type === 'integer') {\n rc.push('integer');\n } else if (column.properties.type === 'text') {\n rc.push('text');\n } else if (column.properties.type === 'timestamp') {\n rc.push('timestamp');\n } else if (column.properties.type === 'serial') {\n rc.push('serial');\n } else if (column.properties.type === 'float') {\n rc.push('float');\n } else if (column.properties.type === 'double') {\n rc.push('double precision');\n } else if (column.properties.type === 'date') {\n rc.push('date');\n } else {\n throw new Error('Unknown column type: ' + column.properties.type);\n }\n\n if (column.properties.nullable) {\n rc.push('null');\n } else {\n rc.push('not null');\n }\n\n if (column.properties.unique) {\n rc.push('unique');\n }\n\n if (column.properties.default !== null) {\n rc.push('default ' + this.escape(column.properties.default));\n }\n\n return rc.join(' ');\n }\n\n escape(value: Parameter): string {\n if (value === null || value === undefined) {\n return 'null';\n }\n\n if (typeof value === 'number') {\n return value.toString();\n }\n\n if (typeof value === 'boolean') {\n return value ? 'true' : 'false';\n }\n\n if (value instanceof Date) {\n return \"'\" + value.toISOString() + \"'\";\n }\n\n if (value instanceof Expression) {\n return value.toCompiledSql().sql;\n }\n\n return \"'\" + value.replace(\"'\", \"\\\\'\") + \"'\";\n }\n\n compilePrimaryKeys(primaryKeys: string[]): string {\n if (!primaryKeys.length) {\n return '';\n }\n\n return 'primary key (' + primaryKeys.join(', ') + ')';\n }\n\n compileTables(schema: string | string[] | undefined = undefined): CompiledSql {\n return {\n sql:\n 'select c.relname as name, n.nspname as schema, pg_total_relation_size(c.oid) as size, ' +\n \"obj_description(c.oid, 'pg_class') as comment from pg_class c, pg_namespace n \" +\n \"where c.relkind in ('r', 'p') and n.oid = c.relnamespace and \" +\n this.compileSchemaWhereClause(schema, 'n.nspname') +\n ' order by n.nspname, c.relname',\n bindings: [],\n };\n }\n\n compileTableExists(tableName: string, schema: string = ''): CompiledSql {\n return {\n sql:\n 'select exists (select 1 from pg_class c, pg_namespace n where ' +\n 'n.nspname = ' +\n (schema ? this.escape(schema) : 'current_schema()') +\n \" and c.relname = $1 and c.relkind in ('r', 'p') and n.oid = c.relnamespace)\",\n bindings: [tableName],\n };\n }\n\n compileDropTable(tableName: string): CompiledSql {\n return { sql: `drop table ${this.doubleQuoteString(tableName)}`, bindings: [] };\n }\n\n protected compileSchemaWhereClause(\n schema: string | string[] | undefined,\n column: string\n ): string {\n if (Array.isArray(schema) && schema.length > 0) {\n return `${column} in (${this.quoteString(schema)})`;\n } else if (schema && typeof schema === 'string') {\n return `${column} = ${this.quoteString(schema)}`;\n } else {\n return `${column} <> 'information_schema' and ${column} not like 'pg\\\\_%'`;\n }\n }\n\n protected quoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => `'${v.replace(/'/g, \"\\\\'\")}'`).join(', ');\n }\n return `'${value.replace(/'/g, \"\\\\'\")}'`;\n }\n\n protected doubleQuoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => this.doubleQuoteString(v)).join(', ');\n }\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n\n protected compileForeignKey(foreignKey: ForeignKeyConstraint): string {\n //FOREIGN KEY (PersonID) REFERENCES users(id)\n const rc = [`FOREIGN KEY (${foreignKey.column})`];\n rc.push(`references ${foreignKey.reference_table.table}(${foreignKey.reference_table.column})`);\n\n if (foreignKey.onDeleteAction) {\n rc.push(`on delete ${foreignKey.onDeleteAction}`);\n }\n\n if (foreignKey.onUpdateAction) {\n rc.push(`on update ${foreignKey.onUpdateAction}`);\n }\n\n return rc.join(' ');\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/SchemaGrammar.ts"],"sourcesContent":["import { Blueprint, Column, ForeignKeyConstraint } from './Blueprint';\nimport { Expression } from './Expression';\nimport { CompiledSql, Parameter } from './types';\n\nexport class SchemaGrammar {\n toSql(blueprint: Blueprint): string {\n if (!blueprint.existingTable) {\n return this.compileCreateTable(blueprint).sql;\n } else if (blueprint.existingTable) {\n return this.compileAlterTable(blueprint).sql;\n }\n\n throw new Error('bad blueprint to compile: ' + blueprint.tableName);\n }\n\n compileCreateTable(blueprint: Blueprint): CompiledSql {\n let sql = 'create table ' + blueprint.tableName + ' (';\n const columns = blueprint.columns\n .map((v: Column) => {\n return this.compileColumn(v);\n })\n .join(', ');\n\n const primaryKeys = this.compilePrimaryKeys(blueprint.primaryKeys);\n let foreignKeys: string[] = [];\n if (blueprint.foreignKeys.length > 0) {\n foreignKeys = blueprint.foreignKeys.map((v: ForeignKeyConstraint) => {\n return this.compileForeignKey(v);\n });\n }\n sql += [columns, primaryKeys, ...foreignKeys].join(',') + ')';\n return { sql, bindings: [] };\n }\n\n compileAlterTable(blueprint: Blueprint): CompiledSql {\n let sql: string[] = ['alter table ' + blueprint.tableName];\n const add_columns = blueprint.columns.map((v: Column) => {\n return 'add column ' + this.compileColumn(v);\n });\n\n const drop_columns = blueprint.drop_coumns.map((v: string) => {\n return 'drop column ' + v;\n });\n\n sql = sql.concat([[...add_columns, ...drop_columns].join(', ')]);\n\n return { sql: sql.join(' '), bindings: [] };\n }\n\n compileColumn(column: Column): string {\n const rc = [`${column.columnName}`];\n\n if (column.properties.type === 'string') {\n rc.push('varchar(' + column.properties.length + ')');\n } else if (column.properties.type === 'char') {\n rc.push('char');\n } else if (column.properties.type === 'boolean') {\n rc.push('boolean');\n } else if (column.properties.type === 'integer') {\n rc.push('integer');\n } else if (column.properties.type === 'text') {\n rc.push('text');\n } else if (column.properties.type === 'timestamp') {\n rc.push('timestamp');\n } else if (column.properties.type === 'serial') {\n rc.push('serial');\n } else if (column.properties.type === 'float') {\n rc.push('float');\n } else if (column.properties.type === 'double') {\n rc.push('double precision');\n } else if (column.properties.type === 'date') {\n rc.push('date');\n } else {\n throw new Error('Unknown column type: ' + column.properties.type);\n }\n\n if (column.properties.nullable) {\n rc.push('null');\n } else {\n rc.push('not null');\n }\n\n if (column.properties.unique) {\n rc.push('unique');\n }\n\n if (column.properties.default !== null) {\n rc.push('default ' + this.escape(column.properties.default));\n }\n\n return rc.join(' ');\n }\n\n escape(value: Parameter): string {\n if (value === null || value === undefined) {\n return 'null';\n }\n\n if (typeof value === 'number') {\n return value.toString();\n }\n\n if (typeof value === 'boolean') {\n return value ? 'true' : 'false';\n }\n\n if (value instanceof Date) {\n return \"'\" + value.toISOString() + \"'\";\n }\n\n if (value instanceof Expression) {\n return value.toCompiledSql().sql;\n }\n\n return \"'\" + value.replace(\"'\", \"\\\\'\") + \"'\";\n }\n\n compilePrimaryKeys(primaryKeys: string[]): string {\n if (!primaryKeys.length) {\n return '';\n }\n\n return 'primary key (' + primaryKeys.join(', ') + ')';\n }\n\n compileTables(schema: string | string[] | undefined = undefined): CompiledSql {\n return {\n sql:\n 'select c.relname as name, n.nspname as schema, pg_total_relation_size(c.oid) as size, ' +\n \"obj_description(c.oid, 'pg_class') as comment from pg_class c, pg_namespace n \" +\n \"where c.relkind in ('r', 'p') and n.oid = c.relnamespace and \" +\n this.compileSchemaWhereClause(schema, 'n.nspname') +\n ' order by n.nspname, c.relname',\n bindings: [],\n };\n }\n\n compileTableExists(tableName: string, schema: string = ''): CompiledSql {\n return {\n sql:\n 'select exists (select 1 from pg_class c, pg_namespace n where ' +\n 'n.nspname = ' +\n (schema ? this.escape(schema) : 'current_schema()') +\n \" and c.relname = $1 and c.relkind in ('r', 'p') and n.oid = c.relnamespace)\",\n bindings: [tableName],\n };\n }\n\n compileDropTable(tableName: string): CompiledSql {\n return { sql: `drop table ${this.doubleQuoteString(tableName)}`, bindings: [] };\n }\n\n protected compileSchemaWhereClause(\n schema: string | string[] | undefined,\n column: string\n ): string {\n if (Array.isArray(schema) && schema.length > 0) {\n return `${column} in (${this.quoteString(schema)})`;\n } else if (schema && typeof schema === 'string') {\n return `${column} = ${this.quoteString(schema)}`;\n } else {\n return `${column} <> 'information_schema' and ${column} not like 'pg\\\\_%'`;\n }\n }\n\n protected quoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => `'${v.replace(/'/g, \"\\\\'\")}'`).join(', ');\n }\n return `'${value.replace(/'/g, \"\\\\'\")}'`;\n }\n\n protected doubleQuoteString(value: string | string[]): string {\n if (Array.isArray(value)) {\n return value.map((v) => this.doubleQuoteString(v)).join(', ');\n }\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n\n protected compileForeignKey(foreignKey: ForeignKeyConstraint): string {\n //FOREIGN KEY (PersonID) REFERENCES users(id)\n const rc = [`FOREIGN KEY (${foreignKey.column})`];\n rc.push(`references ${foreignKey.reference_table.table}(${foreignKey.reference_table.column})`);\n\n if (foreignKey.onDeleteAction) {\n rc.push(`on delete ${foreignKey.onDeleteAction}`);\n }\n\n if (foreignKey.onUpdateAction) {\n rc.push(`on update ${foreignKey.onUpdateAction}`);\n }\n\n return rc.join(' ');\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,7 @@
1
1
  export { PostgresqlConnection } from './postgresql/PostgresqlConnection.mjs';
2
2
  export { PostgresqlQueryGrammar } from './postgresql/PostgresqlQueryGrammar.mjs';
3
3
  export { PostgresqlSchemaGrammar } from './postgresql/PostgresqlSchemaGrammar.mjs';
4
- import '../Connection-DhP5VxCW.mjs';
4
+ import '../Connection-D4SY9JPV.mjs';
5
5
  import '../Blueprint.mjs';
6
6
  import '../types-C_aDrXJN.mjs';
7
7
  import '../SchemaGrammar.mjs';
@@ -1,7 +1,7 @@
1
1
  export { PostgresqlConnection } from './postgresql/PostgresqlConnection.js';
2
2
  export { PostgresqlQueryGrammar } from './postgresql/PostgresqlQueryGrammar.js';
3
3
  export { PostgresqlSchemaGrammar } from './postgresql/PostgresqlSchemaGrammar.js';
4
- import '../Connection-CM5zdBeX.js';
4
+ import '../Connection-DklX9Kzq.js';
5
5
  import '../Blueprint.js';
6
6
  import '../types-C_aDrXJN.js';
7
7
  import '../SchemaGrammar.js';
@@ -1,4 +1,6 @@
1
- import { C as Connection, a as Query, S as Schema } from '../../Connection-DhP5VxCW.mjs';
1
+ import { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar.mjs';
2
+ import { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar.mjs';
3
+ import { C as Connection, a as Query, S as Schema } from '../../Connection-D4SY9JPV.mjs';
2
4
  import { PoolClient, Pool, PoolConfig } from 'pg';
3
5
  import { C as CompiledSql } from '../../types-C_aDrXJN.mjs';
4
6
  import '../../Blueprint.mjs';
@@ -15,6 +17,8 @@ declare class PostgresqlConnection extends Connection {
15
17
  disconnect(): Promise<boolean>;
16
18
  getQuery(): Query;
17
19
  getSchema(): Schema;
20
+ getQueryGrammar(): PostgresqlQueryGrammar;
21
+ getSchemaGrammar(): PostgresqlSchemaGrammar;
18
22
  beginTransaction(): Promise<void>;
19
23
  commit(): Promise<void>;
20
24
  rollback(): Promise<void>;
@@ -1,4 +1,6 @@
1
- import { C as Connection, a as Query, S as Schema } from '../../Connection-CM5zdBeX.js';
1
+ import { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar.js';
2
+ import { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar.js';
3
+ import { C as Connection, a as Query, S as Schema } from '../../Connection-DklX9Kzq.js';
2
4
  import { PoolClient, Pool, PoolConfig } from 'pg';
3
5
  import { C as CompiledSql } from '../../types-C_aDrXJN.js';
4
6
  import '../../Blueprint.js';
@@ -15,6 +17,8 @@ declare class PostgresqlConnection extends Connection {
15
17
  disconnect(): Promise<boolean>;
16
18
  getQuery(): Query;
17
19
  getSchema(): Schema;
20
+ getQueryGrammar(): PostgresqlQueryGrammar;
21
+ getSchemaGrammar(): PostgresqlSchemaGrammar;
18
22
  beginTransaction(): Promise<void>;
19
23
  commit(): Promise<void>;
20
24
  rollback(): Promise<void>;
@@ -78,6 +78,12 @@ class PostgresqlConnection extends import_Connection.Connection {
78
78
  getSchema() {
79
79
  return new import_Schema.Schema(this, new import_PostgresqlSchemaGrammar.PostgresqlSchemaGrammar());
80
80
  }
81
+ getQueryGrammar() {
82
+ return new import_PostgresqlQueryGrammar.PostgresqlQueryGrammar();
83
+ }
84
+ getSchemaGrammar() {
85
+ return new import_PostgresqlSchemaGrammar.PostgresqlSchemaGrammar();
86
+ }
81
87
  async beginTransaction() {
82
88
  if (!this.connection) {
83
89
  throw new Error("No active connection to begin a transaction.");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/databases/postgresql/PostgresqlConnection.ts"],"sourcesContent":["import { Connection as ConnectionAbs } from '../../Connection';\nimport { Connection, PoolClient, PoolConfig } from 'pg';\nimport { Pool } from 'pg';\nimport { CompiledSql } from '../../types';\nimport { Query } from '../../Query';\nimport { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar';\nimport { Schema } from '../../Schema';\nimport { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar';\nimport Cursor from 'pg-cursor';\n\nexport class PostgresqlConnection extends ConnectionAbs {\n connection: PoolClient | undefined;\n static pool: Pool;\n\n static defaults: PoolConfig = {\n port: 5432,\n ssl: false,\n max: 20,\n idleTimeoutMillis: 1, // wait X milli seconds before closing an idle/released connection\n connectionTimeoutMillis: 30000, // wait up to 30 seconds to obtain a new connection\n maxUses: 7500,\n };\n\n constructor(params: PoolConfig) {\n super();\n if (!PostgresqlConnection.pool) {\n PostgresqlConnection.pool = new Pool({ ...PostgresqlConnection.defaults, ...params });\n }\n }\n async connect(): Promise<boolean> {\n this.connection = await PostgresqlConnection.pool.connect();\n return true;\n }\n async runQuery(sql: CompiledSql) {\n const result = await this.connection?.query(sql.sql, sql.bindings);\n return result?.rows;\n }\n\n async runCursor(sql: CompiledSql): Promise<any> {\n return this.connection?.query(new Cursor(sql.sql, sql.bindings));\n }\n\n async disconnect(): Promise<boolean> {\n await this.connection?.release();\n return true;\n }\n\n getQuery(): Query {\n return new Query(this, new PostgresqlQueryGrammar());\n }\n\n getSchema(): Schema {\n return new Schema(this, new PostgresqlSchemaGrammar());\n }\n\n async beginTransaction(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to begin a transaction.');\n }\n await this.connection.query('BEGIN');\n }\n\n async commit(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to commit a transaction.');\n }\n await this.connection.query('COMMIT');\n }\n\n async rollback(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to rollback a transaction.');\n }\n await this.connection.query('ROLLBACK');\n }\n\n static async destroy(): Promise<void> {\n PostgresqlConnection.pool.end();\n return;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA4C;AAE5C,IAAAA,aAAqB;AAErB,mBAAsB;AACtB,oCAAuC;AACvC,oBAAuB;AACvB,qCAAwC;AACxC,uBAAmB;AAEZ,MAAM,6BAA6B,kBAAAC,WAAc;AAAA,EACtD;AAAA,EACA,OAAO;AAAA,EAEP,OAAO,WAAuB;AAAA,IAC5B,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,mBAAmB;AAAA;AAAA,IACnB,yBAAyB;AAAA;AAAA,IACzB,SAAS;AAAA,EACX;AAAA,EAEA,YAAY,QAAoB;AAC9B,UAAM;AACN,QAAI,CAAC,qBAAqB,MAAM;AAC9B,2BAAqB,OAAO,IAAI,gBAAK,EAAE,GAAG,qBAAqB,UAAU,GAAG,OAAO,CAAC;AAAA,IACtF;AAAA,EACF;AAAA,EACA,MAAM,UAA4B;AAChC,SAAK,aAAa,MAAM,qBAAqB,KAAK,QAAQ;AAC1D,WAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,KAAkB;AAC/B,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,IAAI,KAAK,IAAI,QAAQ;AACjE,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,UAAU,KAAgC;AAC9C,WAAO,KAAK,YAAY,MAAM,IAAI,iBAAAC,QAAO,IAAI,KAAK,IAAI,QAAQ,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,aAA+B;AACnC,UAAM,KAAK,YAAY,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,WAAkB;AAChB,WAAO,IAAI,mBAAM,MAAM,IAAI,qDAAuB,CAAC;AAAA,EACrD;AAAA,EAEA,YAAoB;AAClB,WAAO,IAAI,qBAAO,MAAM,IAAI,uDAAwB,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,mBAAkC;AACtC,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,UAAM,KAAK,WAAW,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,SAAwB;AAC5B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACjE;AACA,UAAM,KAAK,WAAW,MAAM,QAAQ;AAAA,EACtC;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IACnE;AACA,UAAM,KAAK,WAAW,MAAM,UAAU;AAAA,EACxC;AAAA,EAEA,aAAa,UAAyB;AACpC,yBAAqB,KAAK,IAAI;AAC9B;AAAA,EACF;AACF;","names":["import_pg","ConnectionAbs","Cursor"]}
1
+ {"version":3,"sources":["../../../src/databases/postgresql/PostgresqlConnection.ts"],"sourcesContent":["import { Connection as ConnectionAbs } from '../../Connection';\nimport { Connection, PoolClient, PoolConfig } from 'pg';\nimport { Pool } from 'pg';\nimport { CompiledSql } from '../../types';\nimport { Query } from '../../Query';\nimport { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar';\nimport { Schema } from '../../Schema';\nimport { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar';\nimport Cursor from 'pg-cursor';\n\nexport class PostgresqlConnection extends ConnectionAbs {\n connection: PoolClient | undefined;\n static pool: Pool;\n\n static defaults: PoolConfig = {\n port: 5432,\n ssl: false,\n max: 20,\n idleTimeoutMillis: 1, // wait X milli seconds before closing an idle/released connection\n connectionTimeoutMillis: 30000, // wait up to 30 seconds to obtain a new connection\n maxUses: 7500,\n };\n\n constructor(params: PoolConfig) {\n super();\n if (!PostgresqlConnection.pool) {\n PostgresqlConnection.pool = new Pool({ ...PostgresqlConnection.defaults, ...params });\n }\n }\n async connect(): Promise<boolean> {\n this.connection = await PostgresqlConnection.pool.connect();\n return true;\n }\n async runQuery(sql: CompiledSql) {\n const result = await this.connection?.query(sql.sql, sql.bindings);\n return result?.rows;\n }\n\n async runCursor(sql: CompiledSql): Promise<any> {\n return this.connection?.query(new Cursor(sql.sql, sql.bindings));\n }\n\n async disconnect(): Promise<boolean> {\n await this.connection?.release();\n return true;\n }\n\n getQuery(): Query {\n return new Query(this, new PostgresqlQueryGrammar());\n }\n\n getSchema(): Schema {\n return new Schema(this, new PostgresqlSchemaGrammar());\n }\n\n getQueryGrammar(): PostgresqlQueryGrammar {\n return new PostgresqlQueryGrammar();\n }\n getSchemaGrammar(): PostgresqlSchemaGrammar {\n return new PostgresqlSchemaGrammar();\n }\n\n async beginTransaction(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to begin a transaction.');\n }\n await this.connection.query('BEGIN');\n }\n\n async commit(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to commit a transaction.');\n }\n await this.connection.query('COMMIT');\n }\n\n async rollback(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to rollback a transaction.');\n }\n await this.connection.query('ROLLBACK');\n }\n\n static async destroy(): Promise<void> {\n PostgresqlConnection.pool.end();\n return;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAA4C;AAE5C,IAAAA,aAAqB;AAErB,mBAAsB;AACtB,oCAAuC;AACvC,oBAAuB;AACvB,qCAAwC;AACxC,uBAAmB;AAEZ,MAAM,6BAA6B,kBAAAC,WAAc;AAAA,EACtD;AAAA,EACA,OAAO;AAAA,EAEP,OAAO,WAAuB;AAAA,IAC5B,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,mBAAmB;AAAA;AAAA,IACnB,yBAAyB;AAAA;AAAA,IACzB,SAAS;AAAA,EACX;AAAA,EAEA,YAAY,QAAoB;AAC9B,UAAM;AACN,QAAI,CAAC,qBAAqB,MAAM;AAC9B,2BAAqB,OAAO,IAAI,gBAAK,EAAE,GAAG,qBAAqB,UAAU,GAAG,OAAO,CAAC;AAAA,IACtF;AAAA,EACF;AAAA,EACA,MAAM,UAA4B;AAChC,SAAK,aAAa,MAAM,qBAAqB,KAAK,QAAQ;AAC1D,WAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,KAAkB;AAC/B,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,IAAI,KAAK,IAAI,QAAQ;AACjE,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,UAAU,KAAgC;AAC9C,WAAO,KAAK,YAAY,MAAM,IAAI,iBAAAC,QAAO,IAAI,KAAK,IAAI,QAAQ,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,aAA+B;AACnC,UAAM,KAAK,YAAY,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,WAAkB;AAChB,WAAO,IAAI,mBAAM,MAAM,IAAI,qDAAuB,CAAC;AAAA,EACrD;AAAA,EAEA,YAAoB;AAClB,WAAO,IAAI,qBAAO,MAAM,IAAI,uDAAwB,CAAC;AAAA,EACvD;AAAA,EAEA,kBAA0C;AACxC,WAAO,IAAI,qDAAuB;AAAA,EACpC;AAAA,EACA,mBAA4C;AAC1C,WAAO,IAAI,uDAAwB;AAAA,EACrC;AAAA,EAEA,MAAM,mBAAkC;AACtC,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,UAAM,KAAK,WAAW,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,SAAwB;AAC5B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACjE;AACA,UAAM,KAAK,WAAW,MAAM,QAAQ;AAAA,EACtC;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IACnE;AACA,UAAM,KAAK,WAAW,MAAM,UAAU;AAAA,EACxC;AAAA,EAEA,aAAa,UAAyB;AACpC,yBAAqB,KAAK,IAAI;AAC9B;AAAA,EACF;AACF;","names":["import_pg","ConnectionAbs","Cursor"]}
@@ -45,6 +45,12 @@ class PostgresqlConnection extends ConnectionAbs {
45
45
  getSchema() {
46
46
  return new Schema(this, new PostgresqlSchemaGrammar());
47
47
  }
48
+ getQueryGrammar() {
49
+ return new PostgresqlQueryGrammar();
50
+ }
51
+ getSchemaGrammar() {
52
+ return new PostgresqlSchemaGrammar();
53
+ }
48
54
  async beginTransaction() {
49
55
  if (!this.connection) {
50
56
  throw new Error("No active connection to begin a transaction.");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/databases/postgresql/PostgresqlConnection.ts"],"sourcesContent":["import { Connection as ConnectionAbs } from '../../Connection';\nimport { Connection, PoolClient, PoolConfig } from 'pg';\nimport { Pool } from 'pg';\nimport { CompiledSql } from '../../types';\nimport { Query } from '../../Query';\nimport { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar';\nimport { Schema } from '../../Schema';\nimport { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar';\nimport Cursor from 'pg-cursor';\n\nexport class PostgresqlConnection extends ConnectionAbs {\n connection: PoolClient | undefined;\n static pool: Pool;\n\n static defaults: PoolConfig = {\n port: 5432,\n ssl: false,\n max: 20,\n idleTimeoutMillis: 1, // wait X milli seconds before closing an idle/released connection\n connectionTimeoutMillis: 30000, // wait up to 30 seconds to obtain a new connection\n maxUses: 7500,\n };\n\n constructor(params: PoolConfig) {\n super();\n if (!PostgresqlConnection.pool) {\n PostgresqlConnection.pool = new Pool({ ...PostgresqlConnection.defaults, ...params });\n }\n }\n async connect(): Promise<boolean> {\n this.connection = await PostgresqlConnection.pool.connect();\n return true;\n }\n async runQuery(sql: CompiledSql) {\n const result = await this.connection?.query(sql.sql, sql.bindings);\n return result?.rows;\n }\n\n async runCursor(sql: CompiledSql): Promise<any> {\n return this.connection?.query(new Cursor(sql.sql, sql.bindings));\n }\n\n async disconnect(): Promise<boolean> {\n await this.connection?.release();\n return true;\n }\n\n getQuery(): Query {\n return new Query(this, new PostgresqlQueryGrammar());\n }\n\n getSchema(): Schema {\n return new Schema(this, new PostgresqlSchemaGrammar());\n }\n\n async beginTransaction(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to begin a transaction.');\n }\n await this.connection.query('BEGIN');\n }\n\n async commit(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to commit a transaction.');\n }\n await this.connection.query('COMMIT');\n }\n\n async rollback(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to rollback a transaction.');\n }\n await this.connection.query('ROLLBACK');\n }\n\n static async destroy(): Promise<void> {\n PostgresqlConnection.pool.end();\n return;\n }\n}\n"],"mappings":"AAAA,SAAS,cAAc,qBAAqB;AAE5C,SAAS,YAAY;AAErB,SAAS,aAAa;AACtB,SAAS,8BAA8B;AACvC,SAAS,cAAc;AACvB,SAAS,+BAA+B;AACxC,OAAO,YAAY;AAEZ,MAAM,6BAA6B,cAAc;AAAA,EACtD;AAAA,EACA,OAAO;AAAA,EAEP,OAAO,WAAuB;AAAA,IAC5B,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,mBAAmB;AAAA;AAAA,IACnB,yBAAyB;AAAA;AAAA,IACzB,SAAS;AAAA,EACX;AAAA,EAEA,YAAY,QAAoB;AAC9B,UAAM;AACN,QAAI,CAAC,qBAAqB,MAAM;AAC9B,2BAAqB,OAAO,IAAI,KAAK,EAAE,GAAG,qBAAqB,UAAU,GAAG,OAAO,CAAC;AAAA,IACtF;AAAA,EACF;AAAA,EACA,MAAM,UAA4B;AAChC,SAAK,aAAa,MAAM,qBAAqB,KAAK,QAAQ;AAC1D,WAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,KAAkB;AAC/B,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,IAAI,KAAK,IAAI,QAAQ;AACjE,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,UAAU,KAAgC;AAC9C,WAAO,KAAK,YAAY,MAAM,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,aAA+B;AACnC,UAAM,KAAK,YAAY,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,WAAkB;AAChB,WAAO,IAAI,MAAM,MAAM,IAAI,uBAAuB,CAAC;AAAA,EACrD;AAAA,EAEA,YAAoB;AAClB,WAAO,IAAI,OAAO,MAAM,IAAI,wBAAwB,CAAC;AAAA,EACvD;AAAA,EAEA,MAAM,mBAAkC;AACtC,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,UAAM,KAAK,WAAW,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,SAAwB;AAC5B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACjE;AACA,UAAM,KAAK,WAAW,MAAM,QAAQ;AAAA,EACtC;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IACnE;AACA,UAAM,KAAK,WAAW,MAAM,UAAU;AAAA,EACxC;AAAA,EAEA,aAAa,UAAyB;AACpC,yBAAqB,KAAK,IAAI;AAC9B;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/databases/postgresql/PostgresqlConnection.ts"],"sourcesContent":["import { Connection as ConnectionAbs } from '../../Connection';\nimport { Connection, PoolClient, PoolConfig } from 'pg';\nimport { Pool } from 'pg';\nimport { CompiledSql } from '../../types';\nimport { Query } from '../../Query';\nimport { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar';\nimport { Schema } from '../../Schema';\nimport { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar';\nimport Cursor from 'pg-cursor';\n\nexport class PostgresqlConnection extends ConnectionAbs {\n connection: PoolClient | undefined;\n static pool: Pool;\n\n static defaults: PoolConfig = {\n port: 5432,\n ssl: false,\n max: 20,\n idleTimeoutMillis: 1, // wait X milli seconds before closing an idle/released connection\n connectionTimeoutMillis: 30000, // wait up to 30 seconds to obtain a new connection\n maxUses: 7500,\n };\n\n constructor(params: PoolConfig) {\n super();\n if (!PostgresqlConnection.pool) {\n PostgresqlConnection.pool = new Pool({ ...PostgresqlConnection.defaults, ...params });\n }\n }\n async connect(): Promise<boolean> {\n this.connection = await PostgresqlConnection.pool.connect();\n return true;\n }\n async runQuery(sql: CompiledSql) {\n const result = await this.connection?.query(sql.sql, sql.bindings);\n return result?.rows;\n }\n\n async runCursor(sql: CompiledSql): Promise<any> {\n return this.connection?.query(new Cursor(sql.sql, sql.bindings));\n }\n\n async disconnect(): Promise<boolean> {\n await this.connection?.release();\n return true;\n }\n\n getQuery(): Query {\n return new Query(this, new PostgresqlQueryGrammar());\n }\n\n getSchema(): Schema {\n return new Schema(this, new PostgresqlSchemaGrammar());\n }\n\n getQueryGrammar(): PostgresqlQueryGrammar {\n return new PostgresqlQueryGrammar();\n }\n getSchemaGrammar(): PostgresqlSchemaGrammar {\n return new PostgresqlSchemaGrammar();\n }\n\n async beginTransaction(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to begin a transaction.');\n }\n await this.connection.query('BEGIN');\n }\n\n async commit(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to commit a transaction.');\n }\n await this.connection.query('COMMIT');\n }\n\n async rollback(): Promise<void> {\n if (!this.connection) {\n throw new Error('No active connection to rollback a transaction.');\n }\n await this.connection.query('ROLLBACK');\n }\n\n static async destroy(): Promise<void> {\n PostgresqlConnection.pool.end();\n return;\n }\n}\n"],"mappings":"AAAA,SAAS,cAAc,qBAAqB;AAE5C,SAAS,YAAY;AAErB,SAAS,aAAa;AACtB,SAAS,8BAA8B;AACvC,SAAS,cAAc;AACvB,SAAS,+BAA+B;AACxC,OAAO,YAAY;AAEZ,MAAM,6BAA6B,cAAc;AAAA,EACtD;AAAA,EACA,OAAO;AAAA,EAEP,OAAO,WAAuB;AAAA,IAC5B,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,mBAAmB;AAAA;AAAA,IACnB,yBAAyB;AAAA;AAAA,IACzB,SAAS;AAAA,EACX;AAAA,EAEA,YAAY,QAAoB;AAC9B,UAAM;AACN,QAAI,CAAC,qBAAqB,MAAM;AAC9B,2BAAqB,OAAO,IAAI,KAAK,EAAE,GAAG,qBAAqB,UAAU,GAAG,OAAO,CAAC;AAAA,IACtF;AAAA,EACF;AAAA,EACA,MAAM,UAA4B;AAChC,SAAK,aAAa,MAAM,qBAAqB,KAAK,QAAQ;AAC1D,WAAO;AAAA,EACT;AAAA,EACA,MAAM,SAAS,KAAkB;AAC/B,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,IAAI,KAAK,IAAI,QAAQ;AACjE,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEA,MAAM,UAAU,KAAgC;AAC9C,WAAO,KAAK,YAAY,MAAM,IAAI,OAAO,IAAI,KAAK,IAAI,QAAQ,CAAC;AAAA,EACjE;AAAA,EAEA,MAAM,aAA+B;AACnC,UAAM,KAAK,YAAY,QAAQ;AAC/B,WAAO;AAAA,EACT;AAAA,EAEA,WAAkB;AAChB,WAAO,IAAI,MAAM,MAAM,IAAI,uBAAuB,CAAC;AAAA,EACrD;AAAA,EAEA,YAAoB;AAClB,WAAO,IAAI,OAAO,MAAM,IAAI,wBAAwB,CAAC;AAAA,EACvD;AAAA,EAEA,kBAA0C;AACxC,WAAO,IAAI,uBAAuB;AAAA,EACpC;AAAA,EACA,mBAA4C;AAC1C,WAAO,IAAI,wBAAwB;AAAA,EACrC;AAAA,EAEA,MAAM,mBAAkC;AACtC,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,8CAA8C;AAAA,IAChE;AACA,UAAM,KAAK,WAAW,MAAM,OAAO;AAAA,EACrC;AAAA,EAEA,MAAM,SAAwB;AAC5B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,+CAA+C;AAAA,IACjE;AACA,UAAM,KAAK,WAAW,MAAM,QAAQ;AAAA,EACtC;AAAA,EAEA,MAAM,WAA0B;AAC9B,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAI,MAAM,iDAAiD;AAAA,IACnE;AACA,UAAM,KAAK,WAAW,MAAM,UAAU;AAAA,EACxC;AAAA,EAEA,aAAa,UAAyB;AACpC,yBAAqB,KAAK,IAAI;AAC9B;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- import { b as QueryGrammar, a as Query } from '../../Connection-DhP5VxCW.mjs';
1
+ import { b as QueryGrammar, a as Query } from '../../Connection-D4SY9JPV.mjs';
2
2
  import { C as CompiledSql, P as Parameter } from '../../types-C_aDrXJN.mjs';
3
3
  import '../../Blueprint.mjs';
4
4
  import '../../SchemaGrammar.mjs';
@@ -1,4 +1,4 @@
1
- import { b as QueryGrammar, a as Query } from '../../Connection-CM5zdBeX.js';
1
+ import { b as QueryGrammar, a as Query } from '../../Connection-DklX9Kzq.js';
2
2
  import { C as CompiledSql, P as Parameter } from '../../types-C_aDrXJN.js';
3
3
  import '../../Blueprint.js';
4
4
  import '../../SchemaGrammar.js';
@@ -1,7 +1,7 @@
1
1
  export { PostgresqlConnection } from './PostgresqlConnection.mjs';
2
2
  export { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar.mjs';
3
3
  export { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar.mjs';
4
- import '../../Connection-DhP5VxCW.mjs';
4
+ import '../../Connection-D4SY9JPV.mjs';
5
5
  import '../../Blueprint.mjs';
6
6
  import '../../types-C_aDrXJN.mjs';
7
7
  import '../../SchemaGrammar.mjs';
@@ -1,7 +1,7 @@
1
1
  export { PostgresqlConnection } from './PostgresqlConnection.js';
2
2
  export { PostgresqlQueryGrammar } from './PostgresqlQueryGrammar.js';
3
3
  export { PostgresqlSchemaGrammar } from './PostgresqlSchemaGrammar.js';
4
- import '../../Connection-CM5zdBeX.js';
4
+ import '../../Connection-DklX9Kzq.js';
5
5
  import '../../Blueprint.js';
6
6
  import '../../types-C_aDrXJN.js';
7
7
  import '../../SchemaGrammar.js';
package/dist/index.d.mts CHANGED
@@ -2,8 +2,8 @@ export { PostgresqlConnection } from './databases/postgresql/PostgresqlConnectio
2
2
  export { PostgresqlQueryGrammar } from './databases/postgresql/PostgresqlQueryGrammar.mjs';
3
3
  export { PostgresqlSchemaGrammar } from './databases/postgresql/PostgresqlSchemaGrammar.mjs';
4
4
  export { Blueprint, Column, ColumnPropertiesType, ForeignKeyConstraint } from './Blueprint.mjs';
5
- export { C as Connection, a as Query, b as QueryGrammar, Q as QueryParts, S as Schema } from './Connection-DhP5VxCW.mjs';
5
+ export { C as Connection, a as Query, b as QueryGrammar, Q as QueryParts, S as Schema } from './Connection-D4SY9JPV.mjs';
6
+ export { SchemaGrammar } from './SchemaGrammar.mjs';
6
7
  export { C as CompiledSql, J as JoinCondition, P as Parameter, h as havingType, j as joinType, s as selectType, w as whereBasic, d as whereNull, a as whereOp, b as whereOpColumn, c as whereRaw, e as whereType } from './types-C_aDrXJN.mjs';
7
8
  export { Migration } from './Migration.mjs';
8
9
  import 'pg';
9
- import './SchemaGrammar.mjs';
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ export { PostgresqlConnection } from './databases/postgresql/PostgresqlConnectio
2
2
  export { PostgresqlQueryGrammar } from './databases/postgresql/PostgresqlQueryGrammar.js';
3
3
  export { PostgresqlSchemaGrammar } from './databases/postgresql/PostgresqlSchemaGrammar.js';
4
4
  export { Blueprint, Column, ColumnPropertiesType, ForeignKeyConstraint } from './Blueprint.js';
5
- export { C as Connection, a as Query, b as QueryGrammar, Q as QueryParts, S as Schema } from './Connection-CM5zdBeX.js';
5
+ export { C as Connection, a as Query, b as QueryGrammar, Q as QueryParts, S as Schema } from './Connection-DklX9Kzq.js';
6
+ export { SchemaGrammar } from './SchemaGrammar.js';
6
7
  export { C as CompiledSql, J as JoinCondition, P as Parameter, h as havingType, j as joinType, s as selectType, w as whereBasic, d as whereNull, a as whereOp, b as whereOpColumn, c as whereRaw, e as whereType } from './types-C_aDrXJN.js';
7
8
  export { Migration } from './Migration.js';
8
9
  import 'pg';
9
- import './SchemaGrammar.js';
package/dist/index.js CHANGED
@@ -21,6 +21,7 @@ __reExport(index_exports, require("./Connection"), module.exports);
21
21
  __reExport(index_exports, require("./Query"), module.exports);
22
22
  __reExport(index_exports, require("./QueryGrammar"), module.exports);
23
23
  __reExport(index_exports, require("./Schema"), module.exports);
24
+ __reExport(index_exports, require("./SchemaGrammar"), module.exports);
24
25
  __reExport(index_exports, require("./types"), module.exports);
25
26
  __reExport(index_exports, require("./Migration"), module.exports);
26
27
  // Annotate the CommonJS export names for ESM import in node:
@@ -31,6 +32,7 @@ __reExport(index_exports, require("./Migration"), module.exports);
31
32
  ...require("./Query"),
32
33
  ...require("./QueryGrammar"),
33
34
  ...require("./Schema"),
35
+ ...require("./SchemaGrammar"),
34
36
  ...require("./types"),
35
37
  ...require("./Migration")
36
38
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './databases';\nexport * from './Blueprint';\nexport * from './Connection';\nexport * from './Query';\nexport * from './QueryGrammar';\nexport * from './Schema';\nexport * from './types';\nexport * from './Migration';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,wBADd;AAEA,0BAAc,yBAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,2BAJd;AAKA,0BAAc,qBALd;AAMA,0BAAc,oBANd;AAOA,0BAAc,wBAPd;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './databases';\nexport * from './Blueprint';\nexport * from './Connection';\nexport * from './Query';\nexport * from './QueryGrammar';\nexport * from './Schema';\nexport * from './SchemaGrammar';\nexport * from './types';\nexport * from './Migration';\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,wBADd;AAEA,0BAAc,yBAFd;AAGA,0BAAc,oBAHd;AAIA,0BAAc,2BAJd;AAKA,0BAAc,qBALd;AAMA,0BAAc,4BANd;AAOA,0BAAc,oBAPd;AAQA,0BAAc,wBARd;","names":[]}
package/dist/index.mjs CHANGED
@@ -4,6 +4,7 @@ export * from "./Connection";
4
4
  export * from "./Query";
5
5
  export * from "./QueryGrammar";
6
6
  export * from "./Schema";
7
+ export * from "./SchemaGrammar";
7
8
  export * from "./types";
8
9
  export * from "./Migration";
9
10
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './databases';\nexport * from './Blueprint';\nexport * from './Connection';\nexport * from './Query';\nexport * from './QueryGrammar';\nexport * from './Schema';\nexport * from './types';\nexport * from './Migration';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './databases';\nexport * from './Blueprint';\nexport * from './Connection';\nexport * from './Query';\nexport * from './QueryGrammar';\nexport * from './Schema';\nexport * from './SchemaGrammar';\nexport * from './types';\nexport * from './Migration';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devbro/neko-sql",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "generic sql generator",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -17,7 +17,9 @@
17
17
  },
18
18
  "scripts": {
19
19
  "build": "tsup",
20
- "test": "jest",
20
+ "test": "vitest run",
21
+ "test:watch": "vitest watch",
22
+ "test:coverage": "vitest run --coverage",
21
23
  "format": "eslint . --fix --ext ts,tsx --report-unused-disable-directives --max-warnings 0 ",
22
24
  "prepare": "husky",
23
25
  "prettier": "prettier --write .",
@@ -35,10 +37,9 @@
35
37
  "@typescript-eslint/parser": "^7.1.1",
36
38
  "eslint": "8.57.0",
37
39
  "husky": "^9.1.7",
38
- "jest": "^29.7.0",
40
+ "vitest": "^3.2.4",
39
41
  "pinst": "^3.0.0",
40
42
  "prettier": "^3.5.3",
41
- "ts-jest": "^29.1.2",
42
43
  "ts-node": "^10.9.2",
43
44
  "tsup": "^8.0.2",
44
45
  "typescript": "^5.3.3"