Skip to content

Commit e7a632b

Browse files
author
Fernando Leal
committed
Versão 0.6.1 com Multi Insert
1 parent 6e52001 commit e7a632b

23 files changed

+77
-144
lines changed

package-lock.json

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "database-builder",
3-
"version": "0.6.0-alpha.1",
3+
"version": "0.6.1",
44
"description": "Library to assist in creating and maintaining SQL commands.",
55
"main": "./src/index.js",
66
"types": "./src/index.d.ts",
@@ -23,11 +23,11 @@
2323
},
2424
"dependencies": {
2525
"lambda-expression": ">=0.1.4",
26-
"lodash": "^4.17.21",
27-
"moment": "^2.29.1",
28-
"reflect-metadata": "^0.1.13",
29-
"rxjs": "^7.5.2",
30-
"uuid": "^8.3.2"
26+
"lodash": ">=4.17.21",
27+
"moment": ">=2.29.1",
28+
"reflect-metadata": ">=0.1.13",
29+
"rxjs": ">=7.5.2",
30+
"uuid": ">=8.3.2"
3131
},
3232
"devDependencies": {
3333
"@types/chai": "^4.3.0",

src/adapters/abstract-sqlite-database.adapter.ts

Lines changed: 7 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@ import { DatabaseConfig } from "../definitions/database-config";
22
import { DatabaseBaseTransaction, DatabaseResult } from "../definitions/database-definition";
33
import { BaseDatabaseAdapter } from "./base-database.adapter";
44
import { WebSqlTransactionInterface } from "../definitions/websql-interface";
5+
import { SQLiteObjectInterface } from "../definitions";
56

6-
export abstract class DatabaseAbstractSQLiteService extends BaseDatabaseAdapter<DatabaseSQLiteObject> {
7+
export abstract class DatabaseAbstractSQLiteService extends BaseDatabaseAdapter<SQLiteObjectInterface> {
78

89
protected abstract sqliteCreate(config: DatabaseConfig)
9-
: Promise<DatabaseSQLiteObject>;
10+
: Promise<SQLiteObjectInterface>;
1011

1112
protected createDatabaseNative(
1213
config: DatabaseConfig
13-
): Promise<DatabaseSQLiteObject> {
14+
): Promise<SQLiteObjectInterface> {
1415
return this.sqliteCreate(config);
1516
}
1617

1718
protected convertToExecuteSql(
18-
databaseNative: DatabaseSQLiteObject
19+
databaseNative: SQLiteObjectInterface
1920
): (sql: string, values: any) => Promise<DatabaseResult> {
2021
return (statement: string, params: any): Promise<DatabaseResult> => {
2122
return databaseNative.executeSql(statement, params);
2223
};
2324
}
2425

2526
protected convertToTransaction(
26-
databaseNative: DatabaseSQLiteObject
27+
databaseNative: SQLiteObjectInterface
2728
): (fn: (transaction: WebSqlTransactionInterface) => void) => Promise<any> {
2829
return (fn: (transaction: DatabaseBaseTransaction) => void): Promise<any> => {
2930
return databaseNative.transaction(transaction => {
@@ -45,76 +46,10 @@ export abstract class DatabaseAbstractSQLiteService extends BaseDatabaseAdapter<
4546
}
4647

4748
protected convertToSqlBatch(
48-
databaseNative: DatabaseSQLiteObject
49+
databaseNative: SQLiteObjectInterface
4950
): (sqlStatements: any[]) => Promise<DatabaseResult[]> {
5051
return (sqlStatements: Array<(string | string[] | any)>): Promise<DatabaseResult[]> => {
5152
return databaseNative.sqlBatch(sqlStatements);
5253
};
5354
}
54-
55-
protected async getSQLiteVersion(databaseNative: DatabaseSQLiteObject): Promise<string> {
56-
const result = await databaseNative.executeSql("select sqlite_version()", []);
57-
return result.rows.item(0);
58-
}
59-
60-
protected getLimitVariables(_databaseNative: DatabaseSQLiteObject): Promise<number> {
61-
return Promise.resolve(10000);
62-
}
63-
64-
// public create(config: DatabaseConfig): Promise<DatabaseObject> {
65-
// return new Promise<DatabaseObject>((resolve, reject) => {
66-
// return this.sqliteCreate(config)
67-
// .then((databaseNative: DatabaseSQLiteObject) => {
68-
// resolve(
69-
// this.injectManagedTransactionInDatabase(
70-
// {
71-
// executeSql: (statement: string, params: any): Promise<DatabaseResult> => {
72-
// return databaseNative.executeSql(statement, params);
73-
// },
74-
// transaction: (fn: (transaction: DatabaseBaseTransaction) => void): Promise<any> => {
75-
// return databaseNative.transaction(transiction => {
76-
// fn({
77-
// executeSql: (sql: string, values: any): Promise<DatabaseResult> => {
78-
// return new Promise<DatabaseResult>((executeSqlResolve, executeSqlReject) => {
79-
// transiction.executeSql(sql, Array.isArray(values) ? values : [],
80-
// (_s: any, r: DatabaseResult | PromiseLike<DatabaseResult>) => {
81-
// executeSqlResolve(r);
82-
// },
83-
// (_r: any, err: any) => {
84-
// executeSqlReject(err);
85-
// });
86-
// });
87-
// }
88-
// });
89-
// });
90-
// },
91-
// sqlBatch: (sqlStatements: Array<(string | string[] | any)>): Promise<DatabaseResult[]> => {
92-
// return databaseNative.sqlBatch(sqlStatements);
93-
// }
94-
// } as DatabaseObject)
95-
// );
96-
// })
97-
// .catch(err => reject(err));
98-
// });
99-
// }
100-
}
101-
102-
/**
103-
* @hidden
104-
*/
105-
export interface DatabaseSQLiteObject {
106-
transaction(fn: (transaction: DatabaseSQLiteTransaction) => void): Promise<any>;
107-
executeSql(statement: string, params: any): Promise<DatabaseResult>;
108-
/**
109-
* @param sqlStatements {string[] | string[][] | any[]}
110-
* @returns {Promise<any>}
111-
*/
112-
sqlBatch(sqlStatements: Array<(string | string[] | any)>): Promise<any>;
113-
}
114-
115-
/**
116-
* @hidden
117-
*/
118-
export interface DatabaseSQLiteTransaction {
119-
executeSql: (sql: any, values?: any[], success?: Function, error?: Function) => void;
12055
}

src/adapters/base-database.adapter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import { DatabaseConfig } from "../definitions/database-config";
55
import { WebSqlTransactionInterface } from "../definitions/websql-interface";
66
import { SingleTransactionManager } from "../transaction/single-transaction-manager";
77

8-
export abstract class BaseDatabaseAdapter<DatabaseNativeInterface> implements DatabaseCreatorContract {
8+
export abstract class BaseDatabaseAdapter<DatabaseNativeInterface>
9+
implements DatabaseCreatorContract {
910

1011
private _singleTransactionManager: SingleTransactionManager;
1112

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { SQLiteInterface } from "../definitions/sqlite-interface";
1+
import { SQLiteInterface, SQLiteObjectInterface } from "../definitions/sqlite-interface";
22
import { DatabaseConfig } from "../definitions/database-config";
3-
import { DatabaseAbstractSQLiteService, DatabaseSQLiteObject } from "./abstract-sqlite-database.adapter";
3+
import { DatabaseAbstractSQLiteService } from "./abstract-sqlite-database.adapter";
44

55
/**
66
* Adapter for https://ionicframework.com/docs/native/sqlite/
@@ -19,26 +19,9 @@ export class SQLiteDatabaseAdapter extends DatabaseAbstractSQLiteService {
1919

2020
constructor(private _sqlite: SQLiteInterface) {
2121
super();
22-
23-
}
24-
25-
protected sqliteCreate(config: DatabaseConfig): Promise<DatabaseSQLiteObject> {
26-
return this._sqlite.create(config);
2722
}
2823

29-
private _sqliteLimitVariablesCached: number;
30-
31-
protected async getLimitVariables(databaseNative: DatabaseSQLiteObject): Promise<number> {
32-
if (this._sqliteLimitVariablesCached)
33-
return this._sqliteLimitVariablesCached;
34-
const version = await this.getSQLiteVersion(databaseNative);
35-
const versionBreakChange = 3.32;
36-
const versionNumber = +/\d+\.\d+/.exec(version)[0];
37-
38-
// https://www.sqlite.org/limits.html#max_variable_number
39-
if (versionNumber < versionBreakChange) {
40-
return this._sqliteLimitVariablesCached = 999;
41-
}
42-
return this._sqliteLimitVariablesCached = 32766;
24+
protected async sqliteCreate(config: DatabaseConfig): Promise<SQLiteObjectInterface> {
25+
return await this._sqlite.create(config);
4326
}
4427
}

src/adapters/sqlite3-database-adapter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DatabaseConfig } from "../definitions/database-config";
2-
import { DatabaseBaseTransaction, DatabaseResult, DatabaseObject } from "../definitions/database-definition";
2+
import { DatabaseBaseTransaction, DatabaseResult } from "../definitions/database-definition";
33
import { SQLite3Interface, SQLite3ObjectInterface } from "../definitions/sqlite3-interface";
44
import { QueryHelper } from "../core/query-helper";
55
import { BaseDatabaseAdapter } from "./base-database.adapter";

src/crud/commander-builder.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { DatabaseBuilderError, QueryCompiled } from "../core";
22
import { Utils, ValueType } from "../core/utils";
33
import { MapperColumn } from "../mapper-column";
44
import { MapperTable } from "../mapper-table";
5-
import { ConfigCommander } from "./config-commander";
5+
import { ConfigDatabase } from "./config-database";
66

77
export class CommanderBuilder {
88

9-
constructor(private _config: ConfigCommander) {
9+
constructor(private _config: ConfigDatabase) {
1010
}
1111

1212
public delete(tableName: string)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
export interface ConfigCommander {
1+
export interface ConfigDatabase {
22
sqliteLimitVariables: number;
33
}

src/crud/crud-base-builder.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { ColumnsCompiled } from "../core/columns-compiled";
44
import { MapperTable } from "../mapper-table";
55
import { SqlBaseBuilder } from "./sql-base-builder";
66
import { QueryCompiled } from "../core/query-compiled";
7-
import { ConfigCommander } from "./config-commander";
7+
import { ConfigDatabase } from "./config-database";
88
import { CommanderBuilder } from "./commander-builder";
99

1010
export abstract class CrudBaseBuilder<
@@ -23,7 +23,7 @@ export abstract class CrudBaseBuilder<
2323
constructor(
2424
typeT: new () => T,
2525
mapperTable: MapperTable,
26-
public config: ConfigCommander,
26+
public config: ConfigDatabase,
2727
alias: string = void 0,
2828
) {
2929
super(typeT, typeT, mapperTable, alias);

src/crud/crud.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@ import { KeyUtils } from "../core/key-utils";
1111
import { QueryBuilder } from "./query/query-builder";
1212
import { MetadataTableBase } from "../metadata-table-base";
1313
import { MapperUtils } from "../mapper/mapper-utils";
14-
import { ConfigCommander } from "./config-commander";
14+
import { ConfigDatabase } from "./config-database";
1515

1616
export class Crud {
1717
public enableLog: boolean;
1818
private _database: DatabaseBase;
1919
private _getMapper: GetMapper;
2020

2121
constructor(
22-
private _config: ConfigCommander,
22+
private _config: ConfigDatabase,
2323
{
2424
getMapper,
2525
database,

0 commit comments

Comments
 (0)