namirasoft-node 1.1.33 → 1.1.34

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.
@@ -1,4 +1,4 @@
1
- import { ModelOptions, ModelAttributes } from "sequelize";
1
+ import { ModelOptions, ModelAttributes, ModelAttributeColumnOptions } from "sequelize";
2
2
  import { BaseSequelizeDatabase } from "./BaseSequelizeDatabase";
3
3
  import { BaseTable } from "./BaseTable";
4
4
  import { ModelCtor, FindOptions, Transaction, Attributes } from 'sequelize';
@@ -10,18 +10,51 @@ export declare class BaseSequelizeTable<D extends BaseSequelizeDatabase, M exten
10
10
  constructor(database: D);
11
11
  find(options: FindOptions<Attributes<M>>, trx: Transaction | null): Promise<M>;
12
12
  define(modelName: string, attributes: ModelAttributes<M, Attributes<M>>, options?: ModelOptions<M>): void;
13
- getSchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema;
14
- getArraySchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema;
15
13
  protected getExamples(): {
16
14
  [name: string]: string;
17
15
  };
16
+ protected forEachColumn(handler: (name: string, column: ModelAttributeColumnOptions) => void): void;
17
+ getSchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema;
18
+ getArraySchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema;
18
19
  private getVariableSchema;
19
20
  private getTypeSchema;
20
- private isFloat;
21
- private isDouble;
22
- private isDecimal;
23
- private isReal;
24
- private isChar;
25
- private isString;
26
- private isEnum;
21
+ protected isFloat(type: any): type is {
22
+ options: {
23
+ length: number;
24
+ decimals: number;
25
+ };
26
+ };
27
+ protected isDouble(type: any): type is {
28
+ options: {
29
+ length: number;
30
+ decimals: number;
31
+ };
32
+ };
33
+ protected isDecimal(type: any): type is {
34
+ options: {
35
+ precision: number;
36
+ scale: number;
37
+ };
38
+ };
39
+ protected isReal(type: any): type is {
40
+ options: {
41
+ length: number;
42
+ decimals: number;
43
+ };
44
+ };
45
+ protected isChar(type: any): type is {
46
+ options: {
47
+ length: number;
48
+ };
49
+ };
50
+ protected isString(type: any): type is {
51
+ options: {
52
+ length: number;
53
+ };
54
+ };
55
+ protected isEnum(type: any): type is {
56
+ options: {
57
+ values: string[];
58
+ };
59
+ };
27
60
  }
@@ -55,18 +55,28 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
55
55
  options.updatedAt = true;
56
56
  this.model = this.database.sequelize.define(modelName, attributes, options);
57
57
  }
58
+ getExamples() {
59
+ return {};
60
+ }
61
+ forEachColumn(handler) {
62
+ let keys = Object.keys(this.attributes);
63
+ let secures = this.getSecureColumns();
64
+ for (let i = 0; i < keys.length; i++)
65
+ if (!secures.includes(keys[i])) {
66
+ const column = this.attributes[keys[i]];
67
+ handler(keys[i], column);
68
+ }
69
+ }
58
70
  getSchema(require, name, excludeColumns, joins) {
59
71
  if (!excludeColumns)
60
72
  excludeColumns = [];
61
73
  let ans = new namirasoft_schema_1.ObjectSchema(name !== null && name !== void 0 ? name : this.model.name, require, null);
62
- let keys = Object.keys(this.attributes);
63
- let secures = this.getSecureColumns();
64
- for (let i = 0; i < keys.length; i++)
65
- if (!secures.includes(keys[i]))
66
- if (!excludeColumns.includes(keys[i])) {
67
- const element = this.attributes[keys[i]];
68
- ans.addField(this.getVariableSchema(keys[i], element));
74
+ this.forEachColumn((name, column) => {
75
+ if (excludeColumns)
76
+ if (!excludeColumns.includes(name)) {
77
+ ans.addField(this.getVariableSchema(name, column));
69
78
  }
79
+ });
70
80
  if (joins)
71
81
  ans.addField(...joins);
72
82
  return ans;
@@ -75,9 +85,6 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
75
85
  let ans = this.getSchema(require, name, excludeColumns, joins);
76
86
  return new namirasoft_schema_1.ArraySchema(require, [ans]);
77
87
  }
78
- getExamples() {
79
- return {};
80
- }
81
88
  getVariableSchema(name, element) {
82
89
  let schema = this.getTypeSchema(element);
83
90
  let es = this.getExamples();
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "namirasoft-node",
3
3
  "description": "Namira Software Corporation Node NPM Package",
4
- "version": "1.1.33",
4
+ "version": "1.1.34",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {},
@@ -53,20 +53,34 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
53
53
 
54
54
  this.model = this.database.sequelize.define(modelName, attributes, options);
55
55
  }
56
- getSchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema
56
+ protected getExamples(): { [name: string]: string }
57
+ {
58
+ return {};
59
+ }
60
+ protected forEachColumn(handler: (name: string, column: ModelAttributeColumnOptions) => void)
57
61
  {
58
- if (!excludeColumns)
59
- excludeColumns = [];
60
- let ans = new ObjectSchema(name ?? this.model.name, require, null);
61
62
  let keys = Object.keys(this.attributes);
62
63
  let secures = this.getSecureColumns();
63
64
  for (let i = 0; i < keys.length; i++)
64
65
  if (!secures.includes(keys[i]))
65
- if (!excludeColumns.includes(keys[i]))
66
+ {
67
+ const column = this.attributes[keys[i]] as ModelAttributeColumnOptions;
68
+ handler(keys[i], column);
69
+ }
70
+ }
71
+ getSchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema
72
+ {
73
+ if (!excludeColumns)
74
+ excludeColumns = [];
75
+ let ans = new ObjectSchema(name ?? this.model.name, require, null);
76
+ this.forEachColumn((name, column) =>
77
+ {
78
+ if (excludeColumns)
79
+ if (!excludeColumns.includes(name))
66
80
  {
67
- const element = this.attributes[keys[i]] as ModelAttributeColumnOptions;
68
- ans.addField(this.getVariableSchema(keys[i], element));
81
+ ans.addField(this.getVariableSchema(name, column));
69
82
  }
83
+ });
70
84
  if (joins)
71
85
  ans.addField(...joins);
72
86
  return ans;
@@ -76,10 +90,6 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
76
90
  let ans = this.getSchema(require, name, excludeColumns, joins);
77
91
  return new ArraySchema(require, [ans]);
78
92
  }
79
- protected getExamples(): { [name: string]: string }
80
- {
81
- return {};
82
- }
83
93
  private getVariableSchema(name: string, element: ModelAttributeColumnOptions): BaseVariableSchema
84
94
  {
85
95
  let schema = this.getTypeSchema(element);
@@ -128,31 +138,31 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
128
138
  return new AnySchema(required);
129
139
  throw new Error("Unsupported datatype for schema: " + element.type);
130
140
  }
131
- private isFloat(type: any): type is { options: { length: number, decimals: number } }
141
+ protected isFloat(type: any): type is { options: { length: number, decimals: number } }
132
142
  {
133
143
  return type instanceof DataTypes.FLOAT;
134
144
  }
135
- private isDouble(type: any): type is { options: { length: number, decimals: number } }
145
+ protected isDouble(type: any): type is { options: { length: number, decimals: number } }
136
146
  {
137
147
  return type instanceof DataTypes.DOUBLE;
138
148
  }
139
- private isDecimal(type: any): type is { options: { precision: number, scale: number } }
149
+ protected isDecimal(type: any): type is { options: { precision: number, scale: number } }
140
150
  {
141
151
  return type instanceof DataTypes.DECIMAL;
142
152
  }
143
- private isReal(type: any): type is { options: { length: number, decimals: number } }
153
+ protected isReal(type: any): type is { options: { length: number, decimals: number } }
144
154
  {
145
155
  return type instanceof DataTypes.REAL;
146
156
  }
147
- private isChar(type: any): type is { options: { length: number } }
157
+ protected isChar(type: any): type is { options: { length: number } }
148
158
  {
149
159
  return type instanceof DataTypes.CHAR;
150
160
  }
151
- private isString(type: any): type is { options: { length: number } }
161
+ protected isString(type: any): type is { options: { length: number } }
152
162
  {
153
163
  return type instanceof DataTypes.STRING;
154
164
  }
155
- private isEnum(type: any): type is { options: { values: string[] } }
165
+ protected isEnum(type: any): type is { options: { values: string[] } }
156
166
  {
157
167
  return type instanceof DataTypes.STRING;
158
168
  }