Skip to content

Commit a3fec26

Browse files
authored
Merge branch 'master' into uglification-support-fixes
2 parents 114b7ee + e7a632b commit a3fec26

60 files changed

Lines changed: 1559 additions & 533 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

package-lock.json

Lines changed: 7 additions & 7 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.5.7",
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",
@@ -17,11 +17,11 @@
1717
},
1818
"dependencies": {
1919
"lambda-expression": ">=0.1.4",
20-
"lodash": "^4.17.21",
21-
"moment": "^2.29.1",
22-
"reflect-metadata": "^0.1.13",
23-
"rxjs": "^7.5.2",
24-
"uuid": "^8.3.2"
20+
"lodash": ">=4.17.21",
21+
"moment": ">=2.29.1",
22+
"reflect-metadata": ">=0.1.13",
23+
"rxjs": ">=7.5.2",
24+
"uuid": ">=8.3.2"
2525
},
2626
"devDependencies": {
2727
"@types/chai": "^4.3.0",

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

Lines changed: 9 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,36 @@ 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> => {
29-
return databaseNative.transaction(transiction => {
30+
return databaseNative.transaction(transaction => {
3031
fn({
3132
executeSql: (sql: string, values: any): Promise<DatabaseResult> => {
3233
return new Promise<DatabaseResult>((executeSqlResolve, executeSqlReject) => {
33-
transiction.executeSql(sql, Array.isArray(values) ? values : [],
34+
transaction.executeSql(sql, Array.isArray(values) ? values : [],
3435
(_s: any, r: DatabaseResult | PromiseLike<DatabaseResult>) => {
3536
executeSqlResolve(r);
3637
},
@@ -45,67 +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-
// public create(config: DatabaseConfig): Promise<DatabaseObject> {
56-
// return new Promise<DatabaseObject>((resolve, reject) => {
57-
// return this.sqliteCreate(config)
58-
// .then((databaseNative: DatabaseSQLiteObject) => {
59-
// resolve(
60-
// this.injectManagedTransactionInDatabase(
61-
// {
62-
// executeSql: (statement: string, params: any): Promise<DatabaseResult> => {
63-
// return databaseNative.executeSql(statement, params);
64-
// },
65-
// transaction: (fn: (transaction: DatabaseBaseTransaction) => void): Promise<any> => {
66-
// return databaseNative.transaction(transiction => {
67-
// fn({
68-
// executeSql: (sql: string, values: any): Promise<DatabaseResult> => {
69-
// return new Promise<DatabaseResult>((executeSqlResolve, executeSqlReject) => {
70-
// transiction.executeSql(sql, Array.isArray(values) ? values : [],
71-
// (_s: any, r: DatabaseResult | PromiseLike<DatabaseResult>) => {
72-
// executeSqlResolve(r);
73-
// },
74-
// (_r: any, err: any) => {
75-
// executeSqlReject(err);
76-
// });
77-
// });
78-
// }
79-
// });
80-
// });
81-
// },
82-
// sqlBatch: (sqlStatements: Array<(string | string[] | any)>): Promise<DatabaseResult[]> => {
83-
// return databaseNative.sqlBatch(sqlStatements);
84-
// }
85-
// } as DatabaseObject)
86-
// );
87-
// })
88-
// .catch(err => reject(err));
89-
// });
90-
// }
91-
}
92-
93-
/**
94-
* @hidden
95-
*/
96-
export interface DatabaseSQLiteObject {
97-
transaction(fn: (transaction: DatabaseSQLiteTransaction) => void): Promise<any>;
98-
executeSql(statement: string, params: any): Promise<DatabaseResult>;
99-
/**
100-
* @param sqlStatements {string[] | string[][] | any[]}
101-
* @returns {Promise<any>}
102-
*/
103-
sqlBatch(sqlStatements: Array<(string | string[] | any)>): Promise<any>;
104-
}
105-
106-
/**
107-
* @hidden
108-
*/
109-
export interface DatabaseSQLiteTransaction {
110-
executeSql: (sql: any, values?: any[], success?: Function, error?: Function) => void;
11155
}

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

src/adapters/sqlite-database-adapter.ts

Lines changed: 4 additions & 5 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,10 +19,9 @@ export class SQLiteDatabaseAdapter extends DatabaseAbstractSQLiteService {
1919

2020
constructor(private _sqlite: SQLiteInterface) {
2121
super();
22-
2322
}
2423

25-
protected sqliteCreate(config: DatabaseConfig): Promise<DatabaseSQLiteObject> {
26-
return this._sqlite.create(config);
24+
protected async sqliteCreate(config: DatabaseConfig): Promise<SQLiteObjectInterface> {
25+
return await this._sqlite.create(config);
2726
}
2827
}

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/core/column.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { FieldType } from "./enums/field-type";
33
import { PrimaryKeyType } from "./enums/primary-key-type";
44

55
export interface Column {
6-
value: ValueType;
6+
value: Array<ValueType>;
77
name: string;
88
type: FieldType;
99
primaryKeyType?: PrimaryKeyType;

src/core/columns-base-builder.ts

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,30 @@ export abstract class ColumnsBaseBuilder<
1212
TColumn extends Column
1313
> {
1414

15-
protected columns: TColumn[] = [];
15+
protected _columns: TColumn[] = [];
1616

1717
private _databaseHelper: DatabaseHelper = new DatabaseHelper();
1818

1919
constructor(
2020
protected readonly mapperTable: MapperTable,
21-
protected readonly modelToSave: T
21+
protected readonly toSave: T | Array<T>
2222
) {
2323
}
2424

25+
public get columns() { return this._columns };
26+
2527
public allColumns() {
2628
// clear columns
27-
this.columns = [];
28-
this.setAllColumns(this.mapperTable, this.modelToSave);
29+
this._columns = [];
30+
this.setAllColumns(this.mapperTable, this.toSave);
2931
}
3032

3133
public setColumn(
3234
column: string,
3335
type: FieldType,
3436
primaryKeyType: PrimaryKeyType
3537
): TThis {
36-
this.columns.push({
38+
this._columns.push({
3739
name: column,
3840
type,
3941
primaryKeyType
@@ -59,9 +61,9 @@ export abstract class ColumnsBaseBuilder<
5961
keyColumns: [],
6062
params: [],
6163
};
62-
for (const key in this.columns) {
63-
if (this.columns.hasOwnProperty(key)) {
64-
const column = this.columns[key];
64+
for (const key in this._columns) {
65+
if (this._columns.hasOwnProperty(key)) {
66+
const column = this._columns[key];
6567
if (column.primaryKeyType) {
6668
result.keyColumns.push(column.name);
6769
}
@@ -84,19 +86,18 @@ export abstract class ColumnsBaseBuilder<
8486

8587
protected abstract setColumnValue(
8688
column: string,
87-
value: ValueTypeToParse,
89+
value: ValueTypeToParse[],
8890
fieldType: FieldType,
8991
primaryKeyType: PrimaryKeyType
9092
): TThis;
9193

92-
private setAllColumns(mapper: MapperTable, modelWithValue: T): void {
94+
private setAllColumns(mapper: MapperTable, modelWithValue: T | Array<T>): void {
9395
for (const key in mapper.columns) {
9496
if (mapper.columns.hasOwnProperty(key)) {
9597
const column = mapper.columns[key];
96-
const value = Utils.getValue<any, any>(modelWithValue, column.fieldReference);
9798
this.setColumnValue(
9899
column.column,
99-
value,
100+
Utils.getValue<ValueTypeToParse, T>(modelWithValue, column.fieldReference),
100101
column.fieldType,
101102
column.primaryKeyType
102103
);
@@ -110,9 +111,11 @@ export abstract class ColumnsBaseBuilder<
110111
if (type) {
111112
return this._databaseHelper.getFieldType(type);
112113
}
113-
const fieldTypeByMapper = this.mapperTable ? this.mapperTable.getColumnByField(columnExpression) : void 0;
114+
const fieldTypeByMapper = this.mapperTable
115+
? this.mapperTable.getColumnByField(columnExpression)
116+
: void 0;
114117
return fieldTypeByMapper
115118
? fieldTypeByMapper.fieldType
116-
: Utils.getType(this.modelToSave, columnExpression);
119+
: Utils.getType(this.toSave, columnExpression);
117120
}
118121
}

src/core/columns-compiled.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ import { ValueType } from "./utils";
22
import { ColumnsBaseCompiled } from "./columns-base-compiled";
33

44
export interface ColumnsCompiled extends ColumnsBaseCompiled {
5-
params: ValueType[];
5+
params: Array<ValueType[]>;
66
}

0 commit comments

Comments
 (0)