namirasoft-node 1.1.24 → 1.1.25

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.
@@ -14,4 +14,43 @@ export declare class BaseSequelizeTable<D extends BaseSequelizeDatabase, M exten
14
14
  getArraySchema(require: boolean, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema;
15
15
  private getVariableSchema;
16
16
  private getTypeSchema;
17
+ isFloat(type: any): type is {
18
+ options: {
19
+ length: number;
20
+ decimals: number;
21
+ };
22
+ };
23
+ isDouble(type: any): type is {
24
+ options: {
25
+ length: number;
26
+ decimals: number;
27
+ };
28
+ };
29
+ isDecimal(type: any): type is {
30
+ options: {
31
+ precision: number;
32
+ scale: number;
33
+ };
34
+ };
35
+ isReal(type: any): type is {
36
+ options: {
37
+ length: number;
38
+ decimals: number;
39
+ };
40
+ };
41
+ isChar(type: any): type is {
42
+ options: {
43
+ length: number;
44
+ };
45
+ };
46
+ isString(type: any): type is {
47
+ options: {
48
+ length: number;
49
+ };
50
+ };
51
+ isEnum(type: any): type is {
52
+ options: {
53
+ values: string[];
54
+ };
55
+ };
17
56
  }
@@ -81,42 +81,65 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
81
81
  getTypeSchema(element) {
82
82
  var _a;
83
83
  let required = !((_a = element.allowNull) !== null && _a !== void 0 ? _a : true);
84
- if (element.type == sequelize_1.DataTypes.BOOLEAN)
84
+ if (element.type instanceof sequelize_1.DataTypes.BOOLEAN)
85
85
  return new namirasoft_schema_1.BoolSchema(required);
86
- else if (element.type == sequelize_1.DataTypes.TINYINT)
86
+ else if (element.type instanceof sequelize_1.DataTypes.TINYINT)
87
87
  return new namirasoft_schema_1.TinyIntSchema(required);
88
- else if (element.type == sequelize_1.DataTypes.SMALLINT)
88
+ else if (element.type instanceof sequelize_1.DataTypes.SMALLINT)
89
89
  return new namirasoft_schema_1.SmallIntSchema(required);
90
- else if (element.type == sequelize_1.DataTypes.MEDIUMINT)
90
+ else if (element.type instanceof sequelize_1.DataTypes.MEDIUMINT)
91
91
  return new namirasoft_schema_1.MediumIntSchema(required);
92
- else if (element.type == sequelize_1.DataTypes.INTEGER)
92
+ else if (element.type instanceof sequelize_1.DataTypes.INTEGER)
93
93
  return new namirasoft_schema_1.IntegerSchema(required);
94
- else if (element.type == sequelize_1.DataTypes.BIGINT)
94
+ else if (element.type instanceof sequelize_1.DataTypes.BIGINT)
95
95
  return new namirasoft_schema_1.BigIntSchema(required);
96
- else if (element.type == sequelize_1.DataTypes.FLOAT)
97
- return new namirasoft_schema_1.FloatSchema(required, null);
98
- else if (element.type == sequelize_1.DataTypes.DOUBLE)
99
- return new namirasoft_schema_1.DoubleSchema(required, null);
100
- else if (element.type == sequelize_1.DataTypes.DECIMAL)
101
- return new namirasoft_schema_1.DecimalSchema(required, null);
102
- else if (element.type == sequelize_1.DataTypes.REAL)
103
- return new namirasoft_schema_1.RealSchema(required, null);
104
- else if (element.type == sequelize_1.DataTypes.CHAR)
105
- return new namirasoft_schema_1.StringSchema(required, element.type.length, element.type.length);
106
- else if (element.type == sequelize_1.DataTypes.STRING || element.type == sequelize_1.DataTypes.TEXT)
107
- return new namirasoft_schema_1.StringSchema(required, null, element.type.length);
108
- else if (element.type == sequelize_1.DataTypes.DATE)
96
+ else if (this.isFloat(element.type))
97
+ return new namirasoft_schema_1.FloatSchema(required, element.type.options.decimals);
98
+ else if (this.isDouble(element.type))
99
+ return new namirasoft_schema_1.DoubleSchema(required, element.type.options.decimals);
100
+ else if (this.isDecimal(element.type))
101
+ return new namirasoft_schema_1.DecimalSchema(required, element.type.options.scale);
102
+ else if (this.isReal(element.type))
103
+ return new namirasoft_schema_1.RealSchema(required, element.type.options.decimals);
104
+ else if (this.isChar(element.type))
105
+ return new namirasoft_schema_1.StringSchema(required, element.type.options.length, element.type.options.length);
106
+ else if (this.isString(element.type))
107
+ return new namirasoft_schema_1.StringSchema(required, null, element.type.options.length);
108
+ else if (element.type instanceof sequelize_1.DataTypes.TEXT)
109
+ return new namirasoft_schema_1.StringSchema(required, null, null);
110
+ else if (element.type instanceof sequelize_1.DataTypes.DATE)
109
111
  return new namirasoft_schema_1.DateTimeSchema(required);
110
- else if (element.type == sequelize_1.DataTypes.DATEONLY)
112
+ else if (element.type instanceof sequelize_1.DataTypes.DATEONLY)
111
113
  return new namirasoft_schema_1.DateSchema(required);
112
- else if (element.type == sequelize_1.DataTypes.TIME)
114
+ else if (element.type instanceof sequelize_1.DataTypes.TIME)
113
115
  return new namirasoft_schema_1.TimeSchema(required);
114
- else if (element.type == sequelize_1.DataTypes.ENUM)
115
- return new EnumSchema_1.EnumSchema(required, element.type.arguments);
116
- else if (element.type == sequelize_1.DataTypes.JSON)
116
+ else if (this.isEnum(element.type))
117
+ return new EnumSchema_1.EnumSchema(required, ...element.type.options.values);
118
+ else if (element.type instanceof sequelize_1.DataTypes.JSON)
117
119
  return new namirasoft_schema_1.AnySchema(required);
118
120
  throw new Error("Unsupported datatype for schema: " + element.type);
119
121
  }
122
+ isFloat(type) {
123
+ return type instanceof sequelize_1.DataTypes.FLOAT;
124
+ }
125
+ isDouble(type) {
126
+ return type instanceof sequelize_1.DataTypes.DOUBLE;
127
+ }
128
+ isDecimal(type) {
129
+ return type instanceof sequelize_1.DataTypes.DECIMAL;
130
+ }
131
+ isReal(type) {
132
+ return type instanceof sequelize_1.DataTypes.REAL;
133
+ }
134
+ isChar(type) {
135
+ return type instanceof sequelize_1.DataTypes.CHAR;
136
+ }
137
+ isString(type) {
138
+ return type instanceof sequelize_1.DataTypes.STRING;
139
+ }
140
+ isEnum(type) {
141
+ return type instanceof sequelize_1.DataTypes.STRING;
142
+ }
120
143
  }
121
144
  exports.BaseSequelizeTable = BaseSequelizeTable;
122
145
  //# sourceMappingURL=BaseSequelizeTable.js.map
@@ -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.24",
4
+ "version": "1.1.25",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "scripts": {},
@@ -83,40 +83,70 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
83
83
  private getTypeSchema(element: ModelAttributeColumnOptions): BaseTypeSchema
84
84
  {
85
85
  let required = !(element.allowNull ?? true);
86
- if (element.type == DataTypes.BOOLEAN)
86
+ if (element.type instanceof DataTypes.BOOLEAN)
87
87
  return new BoolSchema(required);
88
- else if (element.type == DataTypes.TINYINT)
88
+ else if (element.type instanceof DataTypes.TINYINT)
89
89
  return new TinyIntSchema(required);
90
- else if (element.type == DataTypes.SMALLINT)
90
+ else if (element.type instanceof DataTypes.SMALLINT)
91
91
  return new SmallIntSchema(required);
92
- else if (element.type == DataTypes.MEDIUMINT)
92
+ else if (element.type instanceof DataTypes.MEDIUMINT)
93
93
  return new MediumIntSchema(required);
94
- else if (element.type == DataTypes.INTEGER)
94
+ else if (element.type instanceof DataTypes.INTEGER)
95
95
  return new IntegerSchema(required);
96
- else if (element.type == DataTypes.BIGINT)
96
+ else if (element.type instanceof DataTypes.BIGINT)
97
97
  return new BigIntSchema(required);
98
- else if (element.type == DataTypes.FLOAT)
99
- return new FloatSchema(required, null);
100
- else if (element.type == DataTypes.DOUBLE)
101
- return new DoubleSchema(required, null);
102
- else if (element.type == DataTypes.DECIMAL)
103
- return new DecimalSchema(required, null);
104
- else if (element.type == DataTypes.REAL)
105
- return new RealSchema(required, null);
106
- else if (element.type == DataTypes.CHAR)
107
- return new StringSchema(required, element.type.length, element.type.length);
108
- else if (element.type == DataTypes.STRING || element.type == DataTypes.TEXT)
109
- return new StringSchema(required, null, element.type.length);
110
- else if (element.type == DataTypes.DATE)
98
+ else if (this.isFloat(element.type))
99
+ return new FloatSchema(required, element.type.options.decimals);
100
+ else if (this.isDouble(element.type))
101
+ return new DoubleSchema(required, element.type.options.decimals);
102
+ else if (this.isDecimal(element.type))
103
+ return new DecimalSchema(required, element.type.options.scale);
104
+ else if (this.isReal(element.type))
105
+ return new RealSchema(required, element.type.options.decimals);
106
+ else if (this.isChar(element.type))
107
+ return new StringSchema(required, element.type.options.length, element.type.options.length);
108
+ else if (this.isString(element.type))
109
+ return new StringSchema(required, null, element.type.options.length);
110
+ else if (element.type instanceof DataTypes.TEXT)
111
+ return new StringSchema(required, null, null);
112
+ else if (element.type instanceof DataTypes.DATE)
111
113
  return new DateTimeSchema(required);
112
- else if (element.type == DataTypes.DATEONLY)
114
+ else if (element.type instanceof DataTypes.DATEONLY)
113
115
  return new DateSchema(required);
114
- else if (element.type == DataTypes.TIME)
116
+ else if (element.type instanceof DataTypes.TIME)
115
117
  return new TimeSchema(required);
116
- else if (element.type == DataTypes.ENUM)
117
- return new EnumSchema(required, element.type.arguments);
118
- else if (element.type == DataTypes.JSON)
118
+ else if (this.isEnum(element.type))
119
+ return new EnumSchema(required, ...element.type.options.values);
120
+ else if (element.type instanceof DataTypes.JSON)
119
121
  return new AnySchema(required);
120
122
  throw new Error("Unsupported datatype for schema: " + element.type);
121
123
  }
124
+ isFloat(type: any): type is { options: { length: number, decimals: number } }
125
+ {
126
+ return type instanceof DataTypes.FLOAT;
127
+ }
128
+ isDouble(type: any): type is { options: { length: number, decimals: number } }
129
+ {
130
+ return type instanceof DataTypes.DOUBLE;
131
+ }
132
+ isDecimal(type: any): type is { options: { precision: number, scale: number } }
133
+ {
134
+ return type instanceof DataTypes.DECIMAL;
135
+ }
136
+ isReal(type: any): type is { options: { length: number, decimals: number } }
137
+ {
138
+ return type instanceof DataTypes.REAL;
139
+ }
140
+ isChar(type: any): type is { options: { length: number } }
141
+ {
142
+ return type instanceof DataTypes.CHAR;
143
+ }
144
+ isString(type: any): type is { options: { length: number } }
145
+ {
146
+ return type instanceof DataTypes.STRING;
147
+ }
148
+ isEnum(type: any): type is { options: { values: string[] } }
149
+ {
150
+ return type instanceof DataTypes.STRING;
151
+ }
122
152
  }