namirasoft-node 1.4.45 → 1.4.46

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.
@@ -19,74 +19,92 @@ export interface IFilterableDatabase<WhereOptions> {
19
19
  getIn: (filter: FilterItem, column_name: string, values: string[]) => {
20
20
  condition: WhereOptions;
21
21
  partial: boolean;
22
+ required: boolean;
22
23
  };
23
24
  getNotIn: (filter: FilterItem, column_name: string, values: string[]) => {
24
25
  condition: WhereOptions;
25
26
  partial: boolean;
27
+ required: boolean;
26
28
  };
27
29
  getLike: (filter: FilterItem, column_name: string, value: string) => {
28
30
  condition: WhereOptions;
29
31
  partial: boolean;
32
+ required: boolean;
30
33
  };
31
34
  getNotLike: (filter: FilterItem, column_name: string, value: string) => {
32
35
  condition: WhereOptions;
33
36
  partial: boolean;
37
+ required: boolean;
34
38
  };
35
39
  getRegex: (filter: FilterItem, column_name: string, value: string) => {
36
40
  condition: WhereOptions;
37
41
  partial: boolean;
42
+ required: boolean;
38
43
  };
39
44
  getNotRegex: (filter: FilterItem, column_name: string, value: string) => {
40
45
  condition: WhereOptions;
41
46
  partial: boolean;
47
+ required: boolean;
42
48
  };
43
49
  getEmpty: (filter: FilterItem, column_name: string) => {
44
50
  condition: WhereOptions;
45
51
  partial: boolean;
52
+ required: boolean;
46
53
  };
47
54
  getNotEmpty: (filter: FilterItem, column_name: string) => {
48
55
  condition: WhereOptions;
49
56
  partial: boolean;
57
+ required: boolean;
50
58
  };
51
59
  getExists: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions) => {
52
60
  condition: WhereOptions;
53
61
  partial: boolean;
62
+ required: boolean;
54
63
  };
55
64
  getIncludes: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions, value: string[]) => {
56
65
  condition: WhereOptions;
57
66
  partial: boolean;
67
+ required: boolean;
58
68
  };
59
69
  getStartsWith: (filter: FilterItem, column_name: string, value: string) => {
60
70
  condition: WhereOptions;
61
71
  partial: boolean;
72
+ required: boolean;
62
73
  };
63
74
  getNotStartsWith: (filter: FilterItem, column_name: string, value: string) => {
64
75
  condition: WhereOptions;
65
76
  partial: boolean;
77
+ required: boolean;
66
78
  };
67
79
  getEndsWith: (filter: FilterItem, column_name: string, value: string) => {
68
80
  condition: WhereOptions;
69
81
  partial: boolean;
82
+ required: boolean;
70
83
  };
71
84
  getNotEndsWith: (filter: FilterItem, column_name: string, value: string) => {
72
85
  condition: WhereOptions;
73
86
  partial: boolean;
87
+ required: boolean;
74
88
  };
75
89
  getLT: (filter: FilterItem, column_name: string, value: any) => {
76
90
  condition: WhereOptions;
77
91
  partial: boolean;
92
+ required: boolean;
78
93
  };
79
94
  getLTE: (filter: FilterItem, column_name: string, value: any) => {
80
95
  condition: WhereOptions;
81
96
  partial: boolean;
97
+ required: boolean;
82
98
  };
83
99
  getGT: (filter: FilterItem, column_name: string, value: any) => {
84
100
  condition: WhereOptions;
85
101
  partial: boolean;
102
+ required: boolean;
86
103
  };
87
104
  getGTE: (filter: FilterItem, column_name: string, value: any) => {
88
105
  condition: WhereOptions;
89
106
  partial: boolean;
107
+ required: boolean;
90
108
  };
91
109
  }
92
110
  export declare abstract class BaseDatabase {
@@ -107,7 +125,10 @@ export declare abstract class BaseDatabase {
107
125
  protected _getFiltersConditions<WhereOptions>(tables: {
108
126
  [table: string]: BaseDatabase_FilterTable;
109
127
  }, idatabase: IFilterableDatabase<WhereOptions>, filters?: FilterItem[] | undefined): {
110
- [table: string]: WhereOptions[];
128
+ [table: string]: {
129
+ conditions: WhereOptions[];
130
+ required: boolean;
131
+ };
111
132
  };
112
133
  abstract getSortOptions(sorts?: SortItem[] | undefined): any;
113
134
  }
@@ -47,7 +47,7 @@ class BaseDatabase {
47
47
  _getFiltersConditions(tables, idatabase, filters) {
48
48
  var _a, _b;
49
49
  let ans = {};
50
- Object.keys(tables).forEach(table => ans[table] = []);
50
+ Object.keys(tables).forEach(table => ans[table] = { conditions: [], required: false });
51
51
  if (filters) {
52
52
  let processed = {};
53
53
  for (let i = 0; i < filters.length; i++)
@@ -79,10 +79,11 @@ class BaseDatabase {
79
79
  if (res.partial) {
80
80
  let wh = {};
81
81
  wh[column_name] = res.condition;
82
- ans[filter.table.name].push(wh);
82
+ ans[filter.table.name].conditions.push(wh);
83
83
  }
84
84
  else
85
- ans[filter.table.name].push(res.condition);
85
+ ans[filter.table.name].conditions.push(res.condition);
86
+ ans[filter.table.name].required = ans[filter.table.name].required || res.required;
86
87
  };
87
88
  if (filter.operator == namirasoft_core_1.FilterItemOperator.all.equals) {
88
89
  if (filter.not)
@@ -1 +1 @@
1
- {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseDatabase.js","sourceRoot":"","sources":["../src/BaseDatabase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.45",
11
+ "version": "1.4.46",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -22,24 +22,24 @@ export interface BaseDatabase_FilterTable_JoinConditions
22
22
 
23
23
  export interface IFilterableDatabase<WhereOptions>
24
24
  {
25
- getIn: (filter: FilterItem, column_name: string, values: string[]) => { condition: WhereOptions, partial: boolean };
26
- getNotIn: (filter: FilterItem, column_name: string, values: string[]) => { condition: WhereOptions, partial: boolean };
27
- getLike: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
28
- getNotLike: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
29
- getRegex: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
30
- getNotRegex: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
31
- getEmpty: (filter: FilterItem, column_name: string) => { condition: WhereOptions, partial: boolean };
32
- getNotEmpty: (filter: FilterItem, column_name: string) => { condition: WhereOptions, partial: boolean };
33
- getExists: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions) => { condition: WhereOptions, partial: boolean };
34
- getIncludes: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions, value: string[]) => { condition: WhereOptions, partial: boolean };
35
- getStartsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
36
- getNotStartsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
37
- getEndsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
38
- getNotEndsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean };
39
- getLT: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean };
40
- getLTE: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean };
41
- getGT: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean };
42
- getGTE: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean };
25
+ getIn: (filter: FilterItem, column_name: string, values: string[]) => { condition: WhereOptions, partial: boolean, required: boolean };
26
+ getNotIn: (filter: FilterItem, column_name: string, values: string[]) => { condition: WhereOptions, partial: boolean, required: boolean };
27
+ getLike: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
28
+ getNotLike: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
29
+ getRegex: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
30
+ getNotRegex: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
31
+ getEmpty: (filter: FilterItem, column_name: string) => { condition: WhereOptions, partial: boolean, required: boolean };
32
+ getNotEmpty: (filter: FilterItem, column_name: string) => { condition: WhereOptions, partial: boolean, required: boolean };
33
+ getExists: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions) => { condition: WhereOptions, partial: boolean, required: boolean };
34
+ getIncludes: (filter: FilterItem, column_name: string, not: boolean, join_conditions: BaseDatabase_FilterTable_JoinConditions, value: string[]) => { condition: WhereOptions, partial: boolean, required: boolean };
35
+ getStartsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
36
+ getNotStartsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
37
+ getEndsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
38
+ getNotEndsWith: (filter: FilterItem, column_name: string, value: string) => { condition: WhereOptions, partial: boolean, required: boolean };
39
+ getLT: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean, required: boolean };
40
+ getLTE: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean, required: boolean };
41
+ getGT: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean, required: boolean };
42
+ getGTE: (filter: FilterItem, column_name: string, value: any) => { condition: WhereOptions, partial: boolean, required: boolean };
43
43
  }
44
44
 
45
45
  export abstract class BaseDatabase
@@ -83,10 +83,10 @@ export abstract class BaseDatabase
83
83
  let limit = page_size;
84
84
  return { offset, limit };
85
85
  }
86
- protected _getFiltersConditions<WhereOptions>(tables: { [table: string]: BaseDatabase_FilterTable }, idatabase: IFilterableDatabase<WhereOptions>, filters?: FilterItem[] | undefined): { [table: string]: WhereOptions[] }
86
+ protected _getFiltersConditions<WhereOptions>(tables: { [table: string]: BaseDatabase_FilterTable }, idatabase: IFilterableDatabase<WhereOptions>, filters?: FilterItem[] | undefined): { [table: string]: { conditions: WhereOptions[], required: boolean } }
87
87
  {
88
- let ans: { [table: string]: WhereOptions[] } = {};
89
- Object.keys(tables).forEach(table => ans[table] = []);
88
+ let ans: { [table: string]: { conditions: WhereOptions[], required: boolean } } = {};
89
+ Object.keys(tables).forEach(table => ans[table] = { conditions: [], required: false });
90
90
  if (filters)
91
91
  {
92
92
  let processed: { [index: number]: boolean } = {};
@@ -120,16 +120,17 @@ export abstract class BaseDatabase
120
120
  ErrorOperation.throwHTTP(400, `Invalid number values for: '${values.join(",")}'`);
121
121
  return nums;
122
122
  };
123
- let addCondition = (res: { condition: WhereOptions, partial: boolean }) =>
123
+ let addCondition = (res: { condition: WhereOptions, partial: boolean, required: boolean }) =>
124
124
  {
125
125
  if (res.partial)
126
126
  {
127
127
  let wh: any = {};
128
128
  wh[column_name] = res.condition;
129
- ans[filter.table.name].push(wh);
129
+ ans[filter.table.name].conditions.push(wh);
130
130
  }
131
131
  else
132
- ans[filter.table.name].push(res.condition);
132
+ ans[filter.table.name].conditions.push(res.condition);
133
+ ans[filter.table.name].required = ans[filter.table.name].required || res.required;
133
134
  };
134
135
  if (filter.operator == FilterItemOperator.all.equals)
135
136
  {