namirasoft-node 1.1.32 → 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,45 +10,49 @@ 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
+ protected getExamples(): {
14
+ [name: string]: string;
15
+ };
16
+ protected forEachColumn(handler: (name: string, column: ModelAttributeColumnOptions) => void): void;
13
17
  getSchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema;
14
18
  getArraySchema(require: boolean, name?: string, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema;
15
19
  private getVariableSchema;
16
20
  private getTypeSchema;
17
- isFloat(type: any): type is {
21
+ protected isFloat(type: any): type is {
18
22
  options: {
19
23
  length: number;
20
24
  decimals: number;
21
25
  };
22
26
  };
23
- isDouble(type: any): type is {
27
+ protected isDouble(type: any): type is {
24
28
  options: {
25
29
  length: number;
26
30
  decimals: number;
27
31
  };
28
32
  };
29
- isDecimal(type: any): type is {
33
+ protected isDecimal(type: any): type is {
30
34
  options: {
31
35
  precision: number;
32
36
  scale: number;
33
37
  };
34
38
  };
35
- isReal(type: any): type is {
39
+ protected isReal(type: any): type is {
36
40
  options: {
37
41
  length: number;
38
42
  decimals: number;
39
43
  };
40
44
  };
41
- isChar(type: any): type is {
45
+ protected isChar(type: any): type is {
42
46
  options: {
43
47
  length: number;
44
48
  };
45
49
  };
46
- isString(type: any): type is {
50
+ protected isString(type: any): type is {
47
51
  options: {
48
52
  length: number;
49
53
  };
50
54
  };
51
- isEnum(type: any): type is {
55
+ protected isEnum(type: any): type is {
52
56
  options: {
53
57
  values: string[];
54
58
  };
@@ -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;
@@ -76,7 +86,10 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
76
86
  return new namirasoft_schema_1.ArraySchema(require, [ans]);
77
87
  }
78
88
  getVariableSchema(name, element) {
79
- return new namirasoft_schema_1.BaseVariableSchema(name, this.getTypeSchema(element));
89
+ let schema = this.getTypeSchema(element);
90
+ let es = this.getExamples();
91
+ schema.example = es[name];
92
+ return new namirasoft_schema_1.BaseVariableSchema(name, schema);
80
93
  }
81
94
  getTypeSchema(element) {
82
95
  var _a;
@@ -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.32",
4
+ "version": "1.1.34",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {},
@@ -21,7 +21,7 @@
21
21
  "joi": "^17.11.0",
22
22
  "namirasoft-core": "^1.1.9",
23
23
  "namirasoft-log": "^1.1.1",
24
- "namirasoft-schema": "^1.1.35",
24
+ "namirasoft-schema": "^1.1.38",
25
25
  "nodemailer": "^6.9.7",
26
26
  "nodemailer-smtp-transport": "^2.7.4",
27
27
  "request-ip": "^3.3.0",
@@ -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;
@@ -78,7 +92,10 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
78
92
  }
79
93
  private getVariableSchema(name: string, element: ModelAttributeColumnOptions): BaseVariableSchema
80
94
  {
81
- return new BaseVariableSchema(name, this.getTypeSchema(element));
95
+ let schema = this.getTypeSchema(element);
96
+ let es = this.getExamples();
97
+ schema.example = es[name];
98
+ return new BaseVariableSchema(name, schema);
82
99
  }
83
100
  private getTypeSchema(element: ModelAttributeColumnOptions): BaseTypeSchema
84
101
  {
@@ -121,31 +138,31 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
121
138
  return new AnySchema(required);
122
139
  throw new Error("Unsupported datatype for schema: " + element.type);
123
140
  }
124
- isFloat(type: any): type is { options: { length: number, decimals: number } }
141
+ protected isFloat(type: any): type is { options: { length: number, decimals: number } }
125
142
  {
126
143
  return type instanceof DataTypes.FLOAT;
127
144
  }
128
- isDouble(type: any): type is { options: { length: number, decimals: number } }
145
+ protected isDouble(type: any): type is { options: { length: number, decimals: number } }
129
146
  {
130
147
  return type instanceof DataTypes.DOUBLE;
131
148
  }
132
- isDecimal(type: any): type is { options: { precision: number, scale: number } }
149
+ protected isDecimal(type: any): type is { options: { precision: number, scale: number } }
133
150
  {
134
151
  return type instanceof DataTypes.DECIMAL;
135
152
  }
136
- isReal(type: any): type is { options: { length: number, decimals: number } }
153
+ protected isReal(type: any): type is { options: { length: number, decimals: number } }
137
154
  {
138
155
  return type instanceof DataTypes.REAL;
139
156
  }
140
- isChar(type: any): type is { options: { length: number } }
157
+ protected isChar(type: any): type is { options: { length: number } }
141
158
  {
142
159
  return type instanceof DataTypes.CHAR;
143
160
  }
144
- isString(type: any): type is { options: { length: number } }
161
+ protected isString(type: any): type is { options: { length: number } }
145
162
  {
146
163
  return type instanceof DataTypes.STRING;
147
164
  }
148
- isEnum(type: any): type is { options: { values: string[] } }
165
+ protected isEnum(type: any): type is { options: { values: string[] } }
149
166
  {
150
167
  return type instanceof DataTypes.STRING;
151
168
  }