@kurdel/db 0.1.0-beta.2 → 0.1.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,11 +1,33 @@
1
1
  # @kurdel/db
2
2
 
3
+ Kurdel's database contract and built-in SQLite and PostgreSQL adapters.
4
+
5
+ Create either driver through the same factory:
6
+
7
+ ```ts
8
+ const sqlite = DatabaseFactory.createDriver({
9
+ type: 'sqlite',
10
+ filename: './app.db',
11
+ });
12
+
13
+ const postgres = DatabaseFactory.createDriver({
14
+ type: 'postgres',
15
+ connectionString: process.env.DATABASE_URL,
16
+ ssl: true,
17
+ });
18
+ ```
19
+
20
+ Portable application queries use `?` placeholders. The PostgreSQL adapter
21
+ converts them to positional parameters before execution. `get`, `all`, `run`,
22
+ transactions, and connection shutdown have the same contract for both
23
+ adapters.
24
+
3
25
  Database contracts, SQLite connectivity, and query-building utilities for
4
26
  Kurdel applications.
5
27
 
6
28
  ## Transactions
7
29
 
8
- Use `IDatabase.transaction` to execute related operations atomically:
30
+ Use `Database.transaction` to execute related operations atomically:
9
31
 
10
32
  ```ts
11
33
  const user = await db.transaction(async transaction => {
@@ -22,12 +44,12 @@ const user = await db.transaction(async transaction => {
22
44
  ```
23
45
 
24
46
  The callback result is returned after commit. Throwing or rejecting rolls back
25
- every operation performed through the supplied `IDatabaseSession`.
47
+ every operation performed through the supplied `DatabaseSession`.
26
48
 
27
49
  Always use the callback's `transaction` argument inside the callback. Calling
28
50
  the outer `db` object would schedule work outside the transaction and may wait
29
51
  for the callback to finish. Nested transactions are intentionally not exposed
30
- by `IDatabaseSession`.
52
+ by `DatabaseSession`.
31
53
 
32
54
  The SQLite implementation serializes the complete callback with respect to
33
55
  all other operations on its connection. This prevents another request from
@@ -1,5 +1,5 @@
1
- import type { IDatabaseConfig } from './interfaces.js';
2
- export declare abstract class DatabaseDriver<T extends IDatabaseConfig> {
1
+ import type { DatabaseConfig } from './interfaces.js';
2
+ export declare abstract class DatabaseDriver<T extends DatabaseConfig> {
3
3
  protected config: T;
4
4
  constructor(config: T);
5
5
  abstract connect(): Promise<void>;
@@ -1,6 +1,8 @@
1
- import type { ISQLiteConfig } from './sqlite-driver.js';
1
+ import type { SQLiteConfig } from './sqlite-driver.js';
2
2
  import { SQLiteDriver } from './sqlite-driver.js';
3
- export type ICombinedDatabaseConfig = ISQLiteConfig;
3
+ import type { PostgresConfig } from './postgres-driver.js';
4
+ import { PostgresDriver } from './postgres-driver.js';
5
+ export type DatabaseDriverConfig = SQLiteConfig | PostgresConfig;
4
6
  export declare class DatabaseFactory {
5
- static createDriver(config: ICombinedDatabaseConfig): SQLiteDriver;
7
+ static createDriver(config: DatabaseDriverConfig): SQLiteDriver | PostgresDriver;
6
8
  }
@@ -1,9 +1,12 @@
1
1
  import { SQLiteDriver } from './sqlite-driver.js';
2
+ import { PostgresDriver } from './postgres-driver.js';
2
3
  export class DatabaseFactory {
3
4
  static createDriver(config) {
4
5
  switch (config.type) {
5
6
  case 'sqlite':
6
7
  return new SQLiteDriver(config);
8
+ case 'postgres':
9
+ return new PostgresDriver(config);
7
10
  default:
8
11
  throw new Error(`Unsupported database type: ${config.type}`);
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database-factory.js","sourceRoot":"","sources":["../src/database-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,YAAY,CAAC,MAA+B;QACjD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,CAAC,MAAuB,CAAC,CAAC;YACnD;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"database-factory.js","sourceRoot":"","sources":["../src/database-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,YAAY,CAAC,MAA4B;QAC9C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,IAAI,YAAY,CAAC,MAAsB,CAAC,CAAC;YAClD,KAAK,UAAU;gBACb,OAAO,IAAI,cAAc,CAAC,MAAwB,CAAC,CAAC;YACtD;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
- import type { IDatabase } from './interfaces.js';
1
+ import type { Database } from './interfaces.js';
2
2
  export declare class DBConnector {
3
3
  private jsonLoader;
4
4
  constructor();
5
- run(): Promise<IDatabase>;
5
+ run(): Promise<Database>;
6
6
  private establish;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"db-connector.js","sourceRoot":"","sources":["../src/db-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IAGtB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,QAAiC;QACvD,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"db-connector.js","sourceRoot":"","sources":["../src/db-connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,OAAO,WAAW;IAGtB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK,CAAC,GAAG;QACd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,QAA8B;QACpD,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,CAAC;IAC3B,CAAC;CACF"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- export { IDatabase, type IDatabaseSession, type IQueryBuilder, type IDatabaseConfig, type DatabaseQuery, } from './interfaces.js';
1
+ export { Database, type DatabaseSession, type QueryBuilderContract, type DatabaseConfig, type DatabaseQuery, type DatabaseDialect, } from './interfaces.js';
2
2
  export { DatabaseFactory } from './database-factory.js';
3
+ export { PostgresDB, postgresPlaceholders } from './postgres-db.js';
4
+ export { PostgresDriver, type PostgresConfig } from './postgres-driver.js';
3
5
  export { DBConnector } from './db-connector.js';
4
6
  export { QueryBuilder } from './query-builder.js';
package/lib/index.js CHANGED
@@ -1,5 +1,7 @@
1
- export { IDatabase, } from './interfaces.js';
1
+ export { Database, } from './interfaces.js';
2
2
  export { DatabaseFactory } from './database-factory.js';
3
+ export { PostgresDB, postgresPlaceholders } from './postgres-db.js';
4
+ export { PostgresDriver } from './postgres-driver.js';
3
5
  export { DBConnector } from './db-connector.js';
4
6
  export { QueryBuilder } from './query-builder.js';
5
7
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,GAKV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAMT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,35 +1,43 @@
1
- export interface IDatabaseConfig {
1
+ export interface DatabaseConfig {
2
2
  type: string;
3
3
  host?: string;
4
4
  filename?: string;
5
5
  port?: number;
6
6
  user?: string;
7
7
  password?: string;
8
+ database?: string;
9
+ connectionString?: string;
10
+ ssl?: boolean | {
11
+ rejectUnauthorized?: boolean;
12
+ ca?: string;
13
+ };
8
14
  }
15
+ export type DatabaseDialect = 'sqlite' | 'postgres';
9
16
  export type DatabaseQuery = {
10
17
  sql: string;
11
18
  params: any[];
12
19
  };
13
- export declare const IDatabase: unique symbol;
14
- export interface IDatabaseSession {
20
+ export declare const Database: unique symbol;
21
+ export interface DatabaseSession {
15
22
  get(query: DatabaseQuery): Promise<any>;
16
23
  all(query: DatabaseQuery): Promise<any>;
17
24
  run(query: DatabaseQuery): Promise<void>;
18
25
  }
19
- export interface IDatabase extends IDatabaseSession {
26
+ export interface Database extends DatabaseSession {
27
+ readonly dialect: DatabaseDialect;
20
28
  /**
21
29
  * Runs work atomically on an isolated database session.
22
30
  *
23
31
  * Queries inside the callback must use the supplied transaction session.
24
32
  * Resolves with the callback result after commit and rolls back on failure.
25
33
  */
26
- transaction<T>(work: (transaction: IDatabaseSession) => Promise<T>): Promise<T>;
34
+ transaction<T>(work: (transaction: DatabaseSession) => Promise<T>): Promise<T>;
27
35
  close(): Promise<void>;
28
36
  }
29
- export interface IQueryBuilder {
30
- insert(table: string, data: Record<string, any>): IQueryBuilder;
31
- select(fields: string | string[]): IQueryBuilder;
32
- from(table: string): IQueryBuilder;
33
- where(condition: string, params?: any[]): IQueryBuilder;
37
+ export interface QueryBuilderContract {
38
+ insert(table: string, data: Record<string, any>): QueryBuilderContract;
39
+ select(fields: string | string[]): QueryBuilderContract;
40
+ from(table: string): QueryBuilderContract;
41
+ where(condition: string, params?: any[]): QueryBuilderContract;
34
42
  build(): DatabaseQuery;
35
43
  }
package/lib/interfaces.js CHANGED
@@ -1,2 +1,2 @@
1
- export const IDatabase = Symbol('IDatabase');
1
+ export const Database = Symbol('Database');
2
2
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type PoolConfig } from 'pg';
2
+ import type { DatabaseQuery, Database, DatabaseSession } from './interfaces.js';
3
+ /** Converts portable question-mark parameters into PostgreSQL positional parameters. */
4
+ export declare function postgresPlaceholders(sql: string): string;
5
+ /** PostgreSQL implementation of the common database contract. */
6
+ export declare class PostgresDB implements Database {
7
+ readonly dialect: "postgres";
8
+ private readonly pool;
9
+ constructor(config: PoolConfig);
10
+ connect(): Promise<void>;
11
+ get({ sql, params }: DatabaseQuery): Promise<any>;
12
+ all({ sql, params }: DatabaseQuery): Promise<any[]>;
13
+ run({ sql, params }: DatabaseQuery): Promise<void>;
14
+ transaction<T>(work: (transaction: DatabaseSession) => Promise<T>): Promise<T>;
15
+ close(): Promise<void>;
16
+ private query;
17
+ }
@@ -0,0 +1,61 @@
1
+ import { Pool } from 'pg';
2
+ /** Converts portable question-mark parameters into PostgreSQL positional parameters. */
3
+ export function postgresPlaceholders(sql) {
4
+ let index = 0;
5
+ let quoted = false;
6
+ return [...sql].map((character, position) => {
7
+ if (character === "'" && sql[position - 1] !== '\\')
8
+ quoted = !quoted;
9
+ if (character === '?' && !quoted)
10
+ return `$${++index}`;
11
+ return character;
12
+ }).join('');
13
+ }
14
+ /** PostgreSQL implementation of the common database contract. */
15
+ export class PostgresDB {
16
+ constructor(config) {
17
+ this.dialect = 'postgres';
18
+ this.pool = new Pool(config);
19
+ }
20
+ async connect() {
21
+ const client = await this.pool.connect();
22
+ client.release();
23
+ }
24
+ async get({ sql, params }) {
25
+ return (await this.query(this.pool, sql, params)).rows[0];
26
+ }
27
+ async all({ sql, params }) {
28
+ return (await this.query(this.pool, sql, params)).rows;
29
+ }
30
+ async run({ sql, params }) {
31
+ await this.query(this.pool, sql, params);
32
+ }
33
+ async transaction(work) {
34
+ const client = await this.pool.connect();
35
+ try {
36
+ await client.query('BEGIN');
37
+ const transaction = {
38
+ get: async (query) => (await this.query(client, query.sql, query.params)).rows[0],
39
+ all: async (query) => (await this.query(client, query.sql, query.params)).rows,
40
+ run: async (query) => { await this.query(client, query.sql, query.params); },
41
+ };
42
+ const result = await work(transaction);
43
+ await client.query('COMMIT');
44
+ return result;
45
+ }
46
+ catch (error) {
47
+ await client.query('ROLLBACK');
48
+ throw error;
49
+ }
50
+ finally {
51
+ client.release();
52
+ }
53
+ }
54
+ async close() {
55
+ await this.pool.end();
56
+ }
57
+ query(connection, sql, params) {
58
+ return connection.query(postgresPlaceholders(sql), params);
59
+ }
60
+ }
61
+ //# sourceMappingURL=postgres-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-db.js","sourceRoot":"","sources":["../src/postgres-db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { DatabaseDriver } from './database-driver.js';
2
+ import type { DatabaseConfig } from './interfaces.js';
3
+ import { PostgresDB } from './postgres-db.js';
4
+ export interface PostgresConfig extends DatabaseConfig {
5
+ type: 'postgres';
6
+ database?: string;
7
+ connectionString?: string;
8
+ }
9
+ export declare class PostgresDriver extends DatabaseDriver<PostgresConfig> {
10
+ private db?;
11
+ connect(): Promise<void>;
12
+ disconnect(): Promise<void>;
13
+ get connection(): PostgresDB | undefined;
14
+ }
@@ -0,0 +1,24 @@
1
+ import { DatabaseDriver } from './database-driver.js';
2
+ import { PostgresDB } from './postgres-db.js';
3
+ export class PostgresDriver extends DatabaseDriver {
4
+ async connect() {
5
+ this.db = new PostgresDB({
6
+ connectionString: this.config.connectionString,
7
+ host: this.config.host,
8
+ port: this.config.port,
9
+ user: this.config.user,
10
+ password: this.config.password,
11
+ database: this.config.database,
12
+ ssl: this.config.ssl,
13
+ });
14
+ await this.db.connect();
15
+ }
16
+ async disconnect() {
17
+ await this.db?.close();
18
+ this.db = undefined;
19
+ }
20
+ get connection() {
21
+ return this.db;
22
+ }
23
+ }
24
+ //# sourceMappingURL=postgres-driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-driver.js","sourceRoot":"","sources":["../src/postgres-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAQ9C,MAAM,OAAO,cAAe,SAAQ,cAA8B;IAGhE,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC;YACvB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAC9C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;SACrB,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
- import type { DatabaseQuery, IQueryBuilder } from './interfaces.js';
1
+ import type { DatabaseQuery, QueryBuilderContract } from './interfaces.js';
2
2
  type SelectOptions = {
3
3
  fn?: 'MAX' | 'MIN' | 'COUNT';
4
4
  as?: string;
5
5
  };
6
- export declare class QueryBuilder implements IQueryBuilder {
6
+ export declare class QueryBuilder implements QueryBuilderContract {
7
7
  private sql;
8
8
  private params;
9
9
  select(fields: string | string[], options?: SelectOptions): QueryBuilder;
@@ -1,12 +1,13 @@
1
- import type { DatabaseQuery, IDatabase, IDatabaseSession } from './interfaces.js';
2
- export declare class SQLiteDB implements IDatabase {
1
+ import type { DatabaseQuery, Database, DatabaseSession } from './interfaces.js';
2
+ export declare class SQLiteDB implements Database {
3
+ readonly dialect: "sqlite";
3
4
  private db;
4
5
  private queue;
5
6
  constructor(path: string);
6
7
  get({ sql, params }: DatabaseQuery): Promise<any>;
7
8
  all({ sql, params }: DatabaseQuery): Promise<any>;
8
9
  run({ sql, params }: DatabaseQuery): Promise<void>;
9
- transaction<T>(work: (transaction: IDatabaseSession) => Promise<T>): Promise<T>;
10
+ transaction<T>(work: (transaction: DatabaseSession) => Promise<T>): Promise<T>;
10
11
  close(): Promise<void>;
11
12
  private getRaw;
12
13
  private allRaw;
package/lib/sqlite-db.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import sqlite3 from 'sqlite3';
2
2
  export class SQLiteDB {
3
3
  constructor(path) {
4
+ this.dialect = 'sqlite';
4
5
  this.queue = Promise.resolve();
5
6
  this.db = new sqlite3.Database(path, err => {
6
7
  if (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-db.js","sourceRoot":"","sources":["../src/sqlite-db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-db.js","sourceRoot":"","sources":["../src/sqlite-db.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { DatabaseDriver } from './database-driver.js';
2
- import type { IDatabaseConfig } from './interfaces.js';
2
+ import type { DatabaseConfig } from './interfaces.js';
3
3
  import { SQLiteDB } from './sqlite-db.js';
4
- export interface ISQLiteConfig extends IDatabaseConfig {
4
+ export interface SQLiteConfig extends DatabaseConfig {
5
5
  filename: string;
6
6
  }
7
- export declare class SQLiteDriver extends DatabaseDriver<ISQLiteConfig> {
7
+ export declare class SQLiteDriver extends DatabaseDriver<SQLiteConfig> {
8
8
  private db?;
9
- constructor(config: ISQLiteConfig);
9
+ constructor(config: SQLiteConfig);
10
10
  connect(): Promise<void>;
11
11
  disconnect(): Promise<void>;
12
12
  get connection(): SQLiteDB | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-driver.js","sourceRoot":"","sources":["../src/sqlite-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM1C,MAAM,OAAO,YAAa,SAAQ,cAA6B;IAG7D,YAAY,MAAqB;QAC/B,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,EAAE,GAAG,MAAM,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;gBACtB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"sqlite-driver.js","sourceRoot":"","sources":["../src/sqlite-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM1C,MAAM,OAAO,YAAa,SAAQ,cAA4B;IAG5D,YAAY,MAAoB;QAC9B,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,EAAE,GAAG,MAAM,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACxD,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;oBAChB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;gBACtB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@kurdel/db",
3
- "version": "0.1.0-beta.2",
4
- "description": "Database abstractions and SQLite adapter for Kurdel",
3
+ "version": "0.1.0-beta.4",
4
+ "description": "Database abstractions with SQLite and PostgreSQL adapters for Kurdel",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": "./lib/index.js"
@@ -22,6 +22,7 @@
22
22
  "kurdel",
23
23
  "database",
24
24
  "sqlite",
25
+ "postgresql",
25
26
  "framework"
26
27
  ],
27
28
  "author": "Andrii Sorokin",
@@ -44,6 +45,7 @@
44
45
  },
45
46
  "devDependencies": {
46
47
  "@types/node": "^20.9.0",
48
+ "@types/pg": "^8.21.0",
47
49
  "rimraf": "^3.0.2",
48
50
  "tsc-alias": "^1.8.16"
49
51
  },
@@ -51,6 +53,7 @@
51
53
  "sqlite3": "^6.0.1"
52
54
  },
53
55
  "dependencies": {
54
- "@kurdel/common": "0.1.0-beta.2"
56
+ "@kurdel/common": "0.1.0-beta.4",
57
+ "pg": "^8.23.0"
55
58
  }
56
59
  }