@ignisia/sql 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/cjs/column/constants.d.cts +150 -0
  2. package/dist/cjs/column/constants.js +158 -0
  3. package/dist/cjs/column/index.d.cts +43 -0
  4. package/dist/cjs/column/index.js +127 -0
  5. package/dist/cjs/column/types.d.cts +43 -0
  6. package/dist/cjs/column/types.js +4 -0
  7. package/dist/cjs/column/utils.d.cts +133 -0
  8. package/dist/cjs/column/utils.js +34 -0
  9. package/dist/cjs/database/alter.d.cts +53 -0
  10. package/dist/cjs/database/alter.js +93 -0
  11. package/dist/cjs/database/column.d.cts +25 -0
  12. package/dist/cjs/database/column.js +39 -0
  13. package/dist/cjs/database/contract.d.cts +9 -0
  14. package/dist/cjs/database/contract.js +2 -0
  15. package/dist/cjs/database/index.d.cts +9 -0
  16. package/dist/cjs/database/index.js +107 -0
  17. package/dist/cjs/database/table.d.cts +22 -0
  18. package/dist/cjs/database/table.js +49 -0
  19. package/dist/cjs/database/types.d.cts +8 -0
  20. package/dist/cjs/database/types.js +2 -0
  21. package/dist/cjs/database/wrapper.d.cts +32 -0
  22. package/dist/cjs/database/wrapper.js +87 -0
  23. package/dist/cjs/index-2jl8MRfX.d.cts +105 -0
  24. package/dist/cjs/index-CnQVnCEI.d.cts +392 -0
  25. package/dist/cjs/index.d.cts +11 -0
  26. package/dist/cjs/index.js +30 -0
  27. package/dist/cjs/migration/index.d.cts +31 -0
  28. package/dist/{migration → cjs/migration}/index.js +3 -1
  29. package/dist/cjs/migration/runner.js +58 -0
  30. package/dist/cjs/migration/type.d.cts +20 -0
  31. package/dist/cjs/migration/type.js +2 -0
  32. package/dist/cjs/package.json +3 -0
  33. package/dist/cjs/query/builder.d.cts +15 -0
  34. package/dist/cjs/query/builder.js +71 -0
  35. package/dist/cjs/query/condition.d.cts +8 -0
  36. package/dist/cjs/query/condition.js +109 -0
  37. package/dist/cjs/query/constants.js +64 -0
  38. package/dist/cjs/query/contract.d.cts +8 -0
  39. package/dist/cjs/query/contract.js +2 -0
  40. package/dist/cjs/query/helper.d.cts +8 -0
  41. package/dist/cjs/query/helper.js +36 -0
  42. package/dist/cjs/query/index.d.cts +8 -0
  43. package/dist/cjs/query/index.js +206 -0
  44. package/dist/cjs/query/join.d.cts +17 -0
  45. package/dist/cjs/query/join.js +18 -0
  46. package/dist/cjs/query/sql.d.cts +18 -0
  47. package/dist/cjs/query/sql.js +132 -0
  48. package/dist/cjs/query/types.d.cts +8 -0
  49. package/dist/cjs/query/types.js +2 -0
  50. package/dist/cjs/query/utilities.d.cts +37 -0
  51. package/dist/cjs/query/utilities.js +194 -0
  52. package/dist/cjs/table/constants.d.cts +8 -0
  53. package/dist/cjs/table/constants.js +9 -0
  54. package/dist/cjs/table/index.d.cts +8 -0
  55. package/dist/cjs/table/index.js +74 -0
  56. package/dist/cjs/table/types.d.cts +8 -0
  57. package/dist/cjs/table/types.js +2 -0
  58. package/dist/cjs/table/utilities.d.cts +8 -0
  59. package/dist/cjs/table/utilities.js +55 -0
  60. package/dist/cjs/types.js +2 -0
  61. package/dist/cjs/utilities.js +21 -0
  62. package/dist/{column → esm/column}/constants.d.ts +58 -5
  63. package/dist/esm/column/constants.js +154 -0
  64. package/dist/{column → esm/column}/index.d.ts +1 -0
  65. package/dist/{column → esm/column}/index.js +36 -15
  66. package/dist/esm/column/types.js +1 -0
  67. package/dist/esm/column/utils.d.ts +133 -0
  68. package/dist/esm/column/utils.js +32 -0
  69. package/dist/{database → esm/database}/alter.d.ts +3 -2
  70. package/dist/{database → esm/database}/alter.js +17 -16
  71. package/dist/{database → esm/database}/column.d.ts +3 -2
  72. package/dist/{database → esm/database}/column.js +11 -8
  73. package/dist/{database → esm/database}/contract.d.ts +3 -2
  74. package/dist/{database → esm/database}/index.d.ts +3 -2
  75. package/dist/{database → esm/database}/index.js +24 -10
  76. package/dist/{database → esm/database}/table.d.ts +3 -2
  77. package/dist/{database → esm/database}/table.js +14 -5
  78. package/dist/esm/database/types.d.ts +8 -0
  79. package/dist/esm/database/wrapper.d.ts +32 -0
  80. package/dist/esm/database/wrapper.js +83 -0
  81. package/dist/{index-DFrpzXEn.d.ts → esm/index-BXOAxB_h.d.ts} +4 -2
  82. package/dist/{index-FMT0YEO7.d.ts → esm/index-BdpoD4zk.d.ts} +80 -46
  83. package/dist/{index.d.ts → esm/index.d.ts} +3 -2
  84. package/dist/esm/index.js +5 -0
  85. package/dist/{migration → esm/migration}/index.d.ts +3 -2
  86. package/dist/esm/migration/index.js +49 -0
  87. package/dist/esm/migration/runner.d.ts +3 -0
  88. package/dist/{migration → esm/migration}/runner.js +7 -6
  89. package/dist/{migration → esm/migration}/type.d.ts +3 -2
  90. package/dist/{query → esm/query}/builder.d.ts +2 -1
  91. package/dist/{query → esm/query}/builder.js +3 -2
  92. package/dist/esm/query/condition.d.ts +8 -0
  93. package/dist/{query → esm/query}/condition.js +9 -5
  94. package/dist/esm/query/constants.d.ts +63 -0
  95. package/dist/{query → esm/query}/constants.js +9 -8
  96. package/dist/{query → esm/query}/contract.d.ts +3 -2
  97. package/dist/{query → esm/query}/helper.d.ts +2 -1
  98. package/dist/{query → esm/query}/helper.js +3 -2
  99. package/dist/{query → esm/query}/index.d.ts +2 -1
  100. package/dist/{query → esm/query}/index.js +26 -16
  101. package/dist/{query → esm/query}/join.d.ts +2 -1
  102. package/dist/{query → esm/query}/join.js +1 -0
  103. package/dist/{query → esm/query}/sql.d.ts +5 -4
  104. package/dist/{query → esm/query}/sql.js +40 -11
  105. package/dist/esm/query/types.d.ts +8 -0
  106. package/dist/{query → esm/query}/utilities.d.ts +4 -1
  107. package/dist/{query → esm/query}/utilities.js +20 -9
  108. package/dist/{table → esm/table}/constants.d.ts +1 -0
  109. package/dist/{table → esm/table}/constants.js +3 -1
  110. package/dist/{table → esm/table}/index.d.ts +2 -1
  111. package/dist/{table → esm/table}/index.js +35 -14
  112. package/dist/{table → esm/table}/types.d.ts +2 -1
  113. package/dist/{table → esm/table}/utilities.d.ts +2 -1
  114. package/dist/{table → esm/table}/utilities.js +5 -4
  115. package/dist/esm/types.d.ts +3 -0
  116. package/dist/esm/utilities.d.ts +4 -0
  117. package/dist/{utilities.js → esm/utilities.js} +1 -0
  118. package/package.json +42 -19
  119. package/dist/column/constants.js +0 -98
  120. package/dist/column/types.js +0 -1
  121. package/dist/database/types.d.ts +0 -7
  122. package/dist/database/wrapper.d.ts +0 -36
  123. package/dist/database/wrapper.js +0 -92
  124. package/dist/index.js +0 -5
  125. package/dist/query/condition.d.ts +0 -7
  126. package/dist/query/types.d.ts +0 -7
  127. /package/dist/{migration/runner.d.ts → cjs/migration/runner.d.cts} +0 -0
  128. /package/dist/{query/constants.d.ts → cjs/query/constants.d.cts} +0 -0
  129. /package/dist/{types.d.ts → cjs/types.d.cts} +0 -0
  130. /package/dist/{utilities.d.ts → cjs/utilities.d.cts} +0 -0
  131. /package/dist/{column → esm/column}/types.d.ts +0 -0
  132. /package/dist/{database → esm/database}/contract.js +0 -0
  133. /package/dist/{database → esm/database}/types.js +0 -0
  134. /package/dist/{migration → esm/migration}/type.js +0 -0
  135. /package/dist/{query → esm/query}/contract.js +0 -0
  136. /package/dist/{query → esm/query}/types.js +0 -0
  137. /package/dist/{table → esm/table}/types.js +0 -0
  138. /package/dist/{types.js → esm/types.js} +0 -0
@@ -1,52 +1,73 @@
1
- import { QueryBuilder } from '../query';
2
- import { defineColumns } from './utilities';
1
+ import { QueryBuilder } from '../query/index.js';
2
+ import { defineColumns } from './utilities.js';
3
3
 
4
- class Table {
4
+ // src/table/index.ts
5
+ var Table = class _Table {
5
6
  client;
6
- dialect;
7
+ _dialect;
7
8
  name;
8
9
  columns;
9
10
  timestamp;
10
11
  paranoid;
11
12
  _output;
12
13
  constructor(options) {
13
- this.dialect = options.dialect;
14
+ this._dialect = options.dialect || null;
14
15
  this.name = options.name;
15
16
  this.columns = options.columns;
16
17
  this.paranoid = options.paranoid || null;
17
18
  this.timestamp = options.timestamp || null;
18
19
  this.client = null;
19
- for (const column of Object.values(this.columns)) {
20
- column.dialect(options.dialect);
21
- }
20
+ if (!this._dialect) return;
21
+ this.setColumnDialect(this._dialect);
22
22
  }
23
23
  infer() {
24
24
  return null;
25
25
  }
26
26
  static define(options) {
27
27
  const columns = defineColumns(options);
28
- return new Table({
28
+ return new _Table({
29
29
  ...options,
30
30
  columns
31
31
  });
32
32
  }
33
- async create(db = this.client) {
33
+ setColumnDialect(dialect) {
34
+ for (const column of Object.values(this.columns)) {
35
+ column.dialect(dialect);
36
+ }
37
+ }
38
+ get dialect() {
39
+ return this._dialect;
40
+ }
41
+ setDialect(dialect) {
42
+ this._dialect = dialect;
43
+ this.setColumnDialect(dialect);
44
+ return this;
45
+ }
46
+ async create(options = {}) {
47
+ const db = options.db || this.client;
34
48
  if (!db) throw new Error("Database client not defined");
35
49
  const sql = `CREATE TABLE IF NOT EXISTS ${this.name} (${Object.entries(
36
50
  this.columns
37
51
  ).map(([name, column]) => `${name} ${column.toQuery().query}`).join(", ")});`;
38
- await db.exec(sql);
52
+ await db.exec({
53
+ sql,
54
+ tx: options.tx
55
+ });
39
56
  return this;
40
57
  }
41
- async drop(db = this.client) {
58
+ async drop(options = {}) {
59
+ const db = options.db || this.client;
42
60
  if (!db) throw new Error("Database client not defined");
43
61
  const sql = `DROP TABLE IF EXISTS ${this.name};`;
44
- await db.exec(sql);
62
+ await db.exec({
63
+ sql,
64
+ tx: options.tx
65
+ });
45
66
  return this;
46
67
  }
47
68
  query() {
48
69
  return new QueryBuilder(this);
49
70
  }
50
- }
71
+ };
51
72
 
52
73
  export { Table };
@@ -1,4 +1,5 @@
1
- export { M as MergeTimestampParanoid, s as TableOptions, t as TableOutput, a as TimestampOptions } from '../index-FMT0YEO7.js';
1
+ import 'bun';
2
+ export { E as ExecOptions, M as MergeTimestampParanoid, x as TableOptions, y as TableOutput, a as TimestampOptions } from '../index-BdpoD4zk.js';
2
3
  import '../column/index.js';
3
4
  import './constants.js';
4
5
  import '../column/constants.js';
@@ -1,7 +1,8 @@
1
1
  import '../column/constants.js';
2
2
  import '../column/index.js';
3
3
  import './constants.js';
4
- export { p as createdAt, r as defineColumns, q as deletedAt, u as updatedAt } from '../index-FMT0YEO7.js';
4
+ export { t as createdAt, w as defineColumns, v as deletedAt, u as updatedAt } from '../index-BdpoD4zk.js';
5
5
  import '../column/types.js';
6
6
  import '../types.js';
7
7
  import '../query/constants.js';
8
+ import 'bun';
@@ -1,12 +1,13 @@
1
- import { Column } from '../column';
1
+ import { Column } from '../column/index.js';
2
2
 
3
- const createdAt = Column.define({
3
+ // src/table/utilities.ts
4
+ var createdAt = Column.define({
4
5
  type: "DATETIME"
5
6
  }).default("CURRENT_TIMESTAMP");
6
- const updatedAt = Column.define({
7
+ var updatedAt = Column.define({
7
8
  type: "DATETIME"
8
9
  });
9
- const deletedAt = Column.define({
10
+ var deletedAt = Column.define({
10
11
  type: "DATETIME"
11
12
  });
12
13
  function defineColumns(options) {
@@ -0,0 +1,3 @@
1
+ type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
2
+
3
+ export type { UnionToIntersection };
@@ -0,0 +1,4 @@
1
+ declare function deepClone<T>(obj: T): T;
2
+ declare function quoteIdentifier<T extends string, U extends `"${T}"`>(identifier: T): U;
3
+
4
+ export { deepClone, quoteIdentifier };
@@ -1,3 +1,4 @@
1
+ // src/utilities.ts
1
2
  function deepClone(obj) {
2
3
  if (Array.isArray(obj)) {
3
4
  return obj.map((item) => deepClone(item));
package/package.json CHANGED
@@ -1,42 +1,51 @@
1
1
  {
2
2
  "name": "@ignisia/sql",
3
- "module": "dist/index.js",
4
- "types": "./dist/index.d.ts",
5
- "version": "0.2.1",
3
+ "main": "dist/cjs/index.js",
4
+ "module": "dist/esm/index.js",
5
+ "types": "./dist/esm/index.d.ts",
6
+ "version": "0.3.0",
6
7
  "type": "module",
7
8
  "exports": {
8
9
  ".": {
9
- "import": "./dist/index.js",
10
- "types": "./dist/index.d.ts"
10
+ "types": "./dist/esm/index.d.ts",
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/cjs/index.js"
11
13
  },
12
14
  "./*": {
13
- "import": "./dist/*.js",
14
- "types": "./dist/*.d.ts"
15
+ "types": "./dist/esm/*.d.ts",
16
+ "import": "./dist/esm/*.js",
17
+ "require": "./dist/cjs/*.js"
15
18
  },
16
19
  "./**/*": {
17
- "import": "./dist/**/*.js",
18
- "types": "./dist/**/*.d.ts"
20
+ "types": "./dist/esm/**/*.d.ts",
21
+ "import": "./dist/esm/**/*.js",
22
+ "require": "./dist/cjs/**/*.js"
19
23
  },
20
24
  "./package.json": "./package.json",
21
25
  "./column": {
22
- "import": "./dist/column/index.js",
23
- "types": "./dist/column/index.d.ts"
26
+ "types": "./dist/esm/column/index.d.ts",
27
+ "import": "./dist/esm/column/index.js",
28
+ "require": "./dist/cjs/column/index.js"
24
29
  },
25
30
  "./database": {
26
- "import": "./dist/database/index.js",
27
- "types": "./dist/database/index.d.ts"
31
+ "types": "./dist/esm/database/index.d.ts",
32
+ "import": "./dist/esm/database/index.js",
33
+ "require": "./dist/cjs/database/index.js"
28
34
  },
29
35
  "./migration": {
30
- "import": "./dist/migration/index.js",
31
- "types": "./dist/migration/index.d.ts"
36
+ "types": "./dist/esm/migration/index.d.ts",
37
+ "import": "./dist/esm/migration/index.js",
38
+ "require": "./dist/cjs/migration/index.js"
32
39
  },
33
40
  "./query": {
34
- "import": "./dist/query/index.js",
35
- "types": "./dist/query/index.d.ts"
41
+ "types": "./dist/esm/query/index.d.ts",
42
+ "import": "./dist/esm/query/index.js",
43
+ "require": "./dist/cjs/query/index.js"
36
44
  },
37
45
  "./table": {
38
- "import": "./dist/table/index.js",
39
- "types": "./dist/table/index.d.ts"
46
+ "types": "./dist/esm/table/index.d.ts",
47
+ "import": "./dist/esm/table/index.js",
48
+ "require": "./dist/cjs/table/index.js"
40
49
  }
41
50
  },
42
51
  "scripts": {
@@ -51,5 +60,19 @@
51
60
  },
52
61
  "files": [
53
62
  "dist"
63
+ ],
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "git+https://github.com/krsbx/aio-web.git"
67
+ },
68
+ "bugs": {
69
+ "url": "https://github.com/krsbx/aio-web/issues"
70
+ },
71
+ "keywords": [
72
+ "bun",
73
+ "sql",
74
+ "database",
75
+ "sqlite",
76
+ "postgres"
54
77
  ]
55
78
  }
@@ -1,98 +0,0 @@
1
- import { Dialect } from '../table/constants';
2
-
3
- const AcceptedColumnTypes = {
4
- INTEGER: "INTEGER",
5
- STRING: "STRING",
6
- BOOLEAN: "BOOLEAN",
7
- DATE: "DATE",
8
- FLOAT: "FLOAT",
9
- DECIMAL: "DECIMAL",
10
- BIGINT: "BIGINT",
11
- TEXT: "TEXT",
12
- BLOB: "BLOB",
13
- JSON: "JSON",
14
- VARCHAR: "VARCHAR",
15
- TIME: "TIME",
16
- TIMESTAMP: "TIMESTAMP",
17
- DOUBLE: "DOUBLE",
18
- DATETIME: "DATETIME",
19
- DATEONLY: "DATEONLY",
20
- ENUM: "ENUM",
21
- SERIAL: "SERIAL"
22
- };
23
- const ColumnTypeMapping = {
24
- [AcceptedColumnTypes.INTEGER]: {
25
- [Dialect.SQLITE]: "INTEGER",
26
- [Dialect.POSTGRES]: "INTEGER"
27
- },
28
- [AcceptedColumnTypes.STRING]: {
29
- [Dialect.SQLITE]: "TEXT",
30
- [Dialect.POSTGRES]: "VARCHAR"
31
- },
32
- [AcceptedColumnTypes.BOOLEAN]: {
33
- [Dialect.SQLITE]: "INTEGER",
34
- [Dialect.POSTGRES]: "BOOLEAN"
35
- },
36
- [AcceptedColumnTypes.DATE]: {
37
- [Dialect.SQLITE]: "TEXT",
38
- [Dialect.POSTGRES]: "DATE"
39
- },
40
- [AcceptedColumnTypes.FLOAT]: {
41
- [Dialect.SQLITE]: "REAL",
42
- [Dialect.POSTGRES]: "FLOAT"
43
- },
44
- [AcceptedColumnTypes.DECIMAL]: {
45
- [Dialect.SQLITE]: "TEXT",
46
- [Dialect.POSTGRES]: "DECIMAL"
47
- },
48
- [AcceptedColumnTypes.BIGINT]: {
49
- [Dialect.SQLITE]: "TEXT",
50
- [Dialect.POSTGRES]: "BIGINT"
51
- },
52
- [AcceptedColumnTypes.TEXT]: {
53
- [Dialect.SQLITE]: "TEXT",
54
- [Dialect.POSTGRES]: "TEXT"
55
- },
56
- [AcceptedColumnTypes.BLOB]: {
57
- [Dialect.SQLITE]: "BLOB",
58
- [Dialect.POSTGRES]: "BYTEA"
59
- },
60
- [AcceptedColumnTypes.JSON]: {
61
- [Dialect.SQLITE]: "TEXT",
62
- [Dialect.POSTGRES]: "JSONB"
63
- },
64
- [AcceptedColumnTypes.VARCHAR]: {
65
- [Dialect.SQLITE]: "TEXT",
66
- [Dialect.POSTGRES]: "VARCHAR"
67
- },
68
- [AcceptedColumnTypes.TIME]: {
69
- [Dialect.SQLITE]: "TEXT",
70
- [Dialect.POSTGRES]: "TIME"
71
- },
72
- [AcceptedColumnTypes.TIMESTAMP]: {
73
- [Dialect.SQLITE]: "TEXT",
74
- [Dialect.POSTGRES]: "TIMESTAMP"
75
- },
76
- [AcceptedColumnTypes.DOUBLE]: {
77
- [Dialect.SQLITE]: "REAL",
78
- [Dialect.POSTGRES]: "DOUBLE PRECISION"
79
- },
80
- [AcceptedColumnTypes.DATETIME]: {
81
- [Dialect.SQLITE]: "TEXT",
82
- [Dialect.POSTGRES]: "TIMESTAMP"
83
- },
84
- [AcceptedColumnTypes.DATEONLY]: {
85
- [Dialect.SQLITE]: "TEXT",
86
- [Dialect.POSTGRES]: "DATE"
87
- },
88
- [AcceptedColumnTypes.ENUM]: {
89
- [Dialect.SQLITE]: "TEXT",
90
- [Dialect.POSTGRES]: "TEXT"
91
- },
92
- [AcceptedColumnTypes.SERIAL]: {
93
- [Dialect.SQLITE]: "INTEGER AUTOINCREMENT",
94
- [Dialect.POSTGRES]: "SERIAL"
95
- }
96
- };
97
-
98
- export { AcceptedColumnTypes, ColumnTypeMapping };
@@ -1 +0,0 @@
1
- import './constants';
@@ -1,7 +0,0 @@
1
- import '../column/index.js';
2
- export { D as DatabaseDefinition, b as DatabaseDialect, g as DatabaseOptions, P as PostgresConfig, S as SqliteConfig } from '../index-FMT0YEO7.js';
3
- import '../table/constants.js';
4
- import '../column/constants.js';
5
- import '../column/types.js';
6
- import '../types.js';
7
- import '../query/constants.js';
@@ -1,36 +0,0 @@
1
- import { SQL } from 'bun';
2
- import { Database } from 'bun:sqlite';
3
- import { Dialect } from '../table/constants.js';
4
- import { b as DatabaseDialect, P as PostgresConfig, S as SqliteConfig } from '../index-FMT0YEO7.js';
5
- import '../column/index.js';
6
- import '../column/constants.js';
7
- import '../column/types.js';
8
- import '../types.js';
9
- import '../query/constants.js';
10
-
11
- declare class DatabasePsql implements DatabaseDialect {
12
- readonly dialect: typeof Dialect.POSTGRES;
13
- readonly options: PostgresConfig;
14
- client: SQL;
15
- status: 'connecting' | 'connected' | 'disconnected';
16
- constructor(options: PostgresConfig);
17
- connect(): Promise<this>;
18
- disconnect(): Promise<this>;
19
- exec<T>(sql: string): Promise<T>;
20
- exec<T>(sql: string, values: any[]): Promise<T>;
21
- transaction<T, U extends () => Promise<T>>(fn: U): Promise<T>;
22
- }
23
- declare class DatabaseSqlite implements DatabaseDialect {
24
- readonly dialect: typeof Dialect.SQLITE;
25
- readonly options: SqliteConfig;
26
- client: Database;
27
- status: 'connecting' | 'connected' | 'disconnected';
28
- constructor(options: SqliteConfig);
29
- connect(): Promise<this>;
30
- disconnect(): Promise<this>;
31
- exec<T>(sql: string): Promise<T>;
32
- exec<T>(sql: string, params: any): Promise<T>;
33
- transaction<T, U extends () => Promise<T>>(fn: U): Promise<T>;
34
- }
35
-
36
- export { DatabasePsql, DatabaseSqlite };
@@ -1,92 +0,0 @@
1
- import { SQL } from 'bun';
2
- import { Database } from 'bun:sqlite';
3
- import { Dialect } from '../table/constants';
4
-
5
- class DatabasePsql {
6
- dialect;
7
- options;
8
- client;
9
- status;
10
- constructor(options) {
11
- this.dialect = Dialect.POSTGRES;
12
- this.options = options;
13
- this.status = "connecting";
14
- this.client = new SQL({
15
- ...options,
16
- onconnect: () => {
17
- this.status = "connected";
18
- },
19
- onclose: () => {
20
- this.status = "disconnected";
21
- }
22
- });
23
- this.connect();
24
- }
25
- async connect() {
26
- await this.client.connect();
27
- return this;
28
- }
29
- async disconnect() {
30
- await this.client.close();
31
- return this;
32
- }
33
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
- async exec(sql, values) {
35
- if (!values) {
36
- return this.client.unsafe(sql);
37
- }
38
- return this.client.unsafe(sql, values);
39
- }
40
- async transaction(fn) {
41
- try {
42
- await this.exec("BEGIN");
43
- const result = await fn();
44
- await this.exec("COMMIT");
45
- return result;
46
- } catch (err) {
47
- await this.exec("ROLLBACK");
48
- throw err;
49
- }
50
- }
51
- }
52
- class DatabaseSqlite {
53
- dialect;
54
- options;
55
- client;
56
- status;
57
- constructor(options) {
58
- this.dialect = Dialect.SQLITE;
59
- this.options = options;
60
- this.status = "connecting";
61
- this.client = new Database(options.filename);
62
- this.status = "connected";
63
- }
64
- async connect() {
65
- this.client = new Database(this.options.filename);
66
- this.status = "connected";
67
- return this;
68
- }
69
- async disconnect() {
70
- this.client.close();
71
- this.status = "disconnected";
72
- return this;
73
- }
74
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
75
- async exec(sql, params) {
76
- const query = this.client.prepare(sql, params);
77
- return query.all();
78
- }
79
- async transaction(fn) {
80
- try {
81
- await this.exec("BEGIN");
82
- const result = await fn();
83
- await this.exec("COMMIT");
84
- return result;
85
- } catch (err) {
86
- await this.exec("ROLLBACK");
87
- throw err;
88
- }
89
- }
90
- }
91
-
92
- export { DatabasePsql, DatabaseSqlite };
package/dist/index.js DELETED
@@ -1,5 +0,0 @@
1
- export { Column } from './column';
2
- export { Database } from './database';
3
- export { Migration } from './migration';
4
- export { QueryBuilder } from './query';
5
- export { Table } from './table';
@@ -1,7 +0,0 @@
1
- export { H as addCondition, B as addRawCondition, K as having, J as or, G as rawHaving, F as rawOr, E as rawWhere, I as where } from '../index-FMT0YEO7.js';
2
- import '../column/index.js';
3
- import './constants.js';
4
- import '../column/constants.js';
5
- import '../types.js';
6
- import '../table/constants.js';
7
- import '../column/types.js';
@@ -1,7 +0,0 @@
1
- import '../column/index.js';
2
- import '../column/constants.js';
3
- export { j as AcceptedInsertValues, i as AcceptedOrderBy, k as AcceptedUpdateValues, l as AggregateColumn, A as AliasedColumn, C as ColumnSelector, f as QuerHooks, Q as QueryDefinition, n as QueryOutput, h as QueryRunHooks, o as QueryRunHooksOptions, R as RawColumn, m as SelectQueryOutput, e as SelectableColumn, c as StrictColumnSelector, W as WhereValue } from '../index-FMT0YEO7.js';
4
- import '../types.js';
5
- import './constants.js';
6
- import '../table/constants.js';
7
- import '../column/types.js';
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes