namirasoft-node 1.1.20 → 1.1.22
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.
- package/dist/BaseController.d.ts +3 -3
- package/dist/BaseController.js.map +1 -1
- package/dist/BaseSequelizeTable.d.ts +2 -1
- package/dist/BaseSequelizeTable.js +26 -20
- package/dist/BaseSequelizeTable.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseController.ts +3 -3
- package/src/BaseSequelizeTable.ts +28 -21
package/dist/BaseController.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { ILogger } from 'namirasoft-log';
|
|
|
5
5
|
import { Meta } from './Meta';
|
|
6
6
|
import { HTTPMethod } from 'namirasoft-core';
|
|
7
7
|
import { BaseApplication } from './BaseApplication';
|
|
8
|
-
import { BaseVariableSchema, ControllerSchema } from 'namirasoft-schema';
|
|
8
|
+
import { BaseTypeSchema, BaseVariableSchema, ControllerSchema } from 'namirasoft-schema';
|
|
9
9
|
export declare abstract class BaseController<D extends BaseDatabase, State, Props, Output> {
|
|
10
10
|
protected showLogAtTheBeginning: boolean;
|
|
11
11
|
protected showLogAtTheEnd: boolean;
|
|
@@ -30,9 +30,9 @@ export declare abstract class BaseController<D extends BaseDatabase, State, Prop
|
|
|
30
30
|
summary: string;
|
|
31
31
|
};
|
|
32
32
|
abstract getParametersSchema(): BaseVariableSchema[];
|
|
33
|
-
abstract getBodySchema():
|
|
33
|
+
abstract getBodySchema(): BaseTypeSchema | null;
|
|
34
34
|
abstract getQueriesSchema(): BaseVariableSchema[];
|
|
35
|
-
abstract getOutputSchema():
|
|
35
|
+
abstract getOutputSchema(): BaseTypeSchema | null;
|
|
36
36
|
abstract getState(): Promise<State>;
|
|
37
37
|
abstract getProps(): Promise<Props>;
|
|
38
38
|
abstract preHandle(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,iCAA8B;AAC9B,qDAAwE;AAExE,
|
|
1
|
+
{"version":3,"file":"BaseController.js","sourceRoot":"","sources":["../src/BaseController.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,5 +12,6 @@ export declare class BaseSequelizeTable<D extends BaseSequelizeDatabase, M exten
|
|
|
12
12
|
define(modelName: string, attributes: ModelAttributes<M, Attributes<M>>, options?: ModelOptions<M>): void;
|
|
13
13
|
getSchema(require: boolean, excludeColumns?: string[], joins?: BaseVariableSchema[]): ObjectSchema;
|
|
14
14
|
getArraySchema(require: boolean, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema;
|
|
15
|
-
private
|
|
15
|
+
private getVariableSchema;
|
|
16
|
+
private getTypeSchema;
|
|
16
17
|
}
|
|
@@ -14,6 +14,7 @@ const sequelize_1 = require("sequelize");
|
|
|
14
14
|
const BaseTable_1 = require("./BaseTable");
|
|
15
15
|
const namirasoft_core_1 = require("namirasoft-core");
|
|
16
16
|
const namirasoft_schema_1 = require("namirasoft-schema");
|
|
17
|
+
const EnumSchema_1 = require("namirasoft-schema/dist/schema/type/EnumSchema");
|
|
17
18
|
class BaseSequelizeTable extends BaseTable_1.BaseTable {
|
|
18
19
|
constructor(database) {
|
|
19
20
|
super(database);
|
|
@@ -57,14 +58,14 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
|
|
|
57
58
|
getSchema(require, excludeColumns, joins) {
|
|
58
59
|
if (!excludeColumns)
|
|
59
60
|
excludeColumns = [];
|
|
60
|
-
let ans = new namirasoft_schema_1.ObjectSchema(
|
|
61
|
+
let ans = new namirasoft_schema_1.ObjectSchema(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
66
|
if (!excludeColumns.includes(keys[i])) {
|
|
66
67
|
const element = this.attributes[keys[i]];
|
|
67
|
-
ans.addField(this.
|
|
68
|
+
ans.addField(this.getVariableSchema(keys[i], element));
|
|
68
69
|
}
|
|
69
70
|
if (joins)
|
|
70
71
|
ans.addField(...joins);
|
|
@@ -72,43 +73,48 @@ class BaseSequelizeTable extends BaseTable_1.BaseTable {
|
|
|
72
73
|
}
|
|
73
74
|
getArraySchema(require, excludeColumns, joins) {
|
|
74
75
|
let ans = this.getSchema(require, excludeColumns, joins);
|
|
75
|
-
return new namirasoft_schema_1.ArraySchema(
|
|
76
|
+
return new namirasoft_schema_1.ArraySchema(require, [ans]);
|
|
76
77
|
}
|
|
77
|
-
|
|
78
|
+
getVariableSchema(name, element) {
|
|
79
|
+
return new namirasoft_schema_1.BaseVariableSchema(name, this.getTypeSchema(element));
|
|
80
|
+
}
|
|
81
|
+
getTypeSchema(element) {
|
|
78
82
|
var _a;
|
|
79
83
|
let required = !((_a = element.allowNull) !== null && _a !== void 0 ? _a : true);
|
|
80
84
|
if (element.type == sequelize_1.DataTypes.BOOLEAN)
|
|
81
|
-
return new namirasoft_schema_1.BoolSchema(
|
|
85
|
+
return new namirasoft_schema_1.BoolSchema(required);
|
|
82
86
|
else if (element.type == sequelize_1.DataTypes.TINYINT)
|
|
83
|
-
return new namirasoft_schema_1.TinyIntSchema(
|
|
87
|
+
return new namirasoft_schema_1.TinyIntSchema(required);
|
|
84
88
|
else if (element.type == sequelize_1.DataTypes.SMALLINT)
|
|
85
|
-
return new namirasoft_schema_1.SmallIntSchema(
|
|
89
|
+
return new namirasoft_schema_1.SmallIntSchema(required);
|
|
86
90
|
else if (element.type == sequelize_1.DataTypes.MEDIUMINT)
|
|
87
|
-
return new namirasoft_schema_1.MediumIntSchema(
|
|
91
|
+
return new namirasoft_schema_1.MediumIntSchema(required);
|
|
88
92
|
else if (element.type == sequelize_1.DataTypes.INTEGER)
|
|
89
|
-
return new namirasoft_schema_1.IntegerSchema(
|
|
93
|
+
return new namirasoft_schema_1.IntegerSchema(required);
|
|
90
94
|
else if (element.type == sequelize_1.DataTypes.BIGINT)
|
|
91
|
-
return new namirasoft_schema_1.BigIntSchema(
|
|
95
|
+
return new namirasoft_schema_1.BigIntSchema(required);
|
|
92
96
|
else if (element.type == sequelize_1.DataTypes.FLOAT)
|
|
93
|
-
return new namirasoft_schema_1.FloatSchema(
|
|
97
|
+
return new namirasoft_schema_1.FloatSchema(required, null);
|
|
94
98
|
else if (element.type == sequelize_1.DataTypes.DOUBLE)
|
|
95
|
-
return new namirasoft_schema_1.DoubleSchema(
|
|
99
|
+
return new namirasoft_schema_1.DoubleSchema(required, null);
|
|
96
100
|
else if (element.type == sequelize_1.DataTypes.DECIMAL)
|
|
97
|
-
return new namirasoft_schema_1.DecimalSchema(
|
|
101
|
+
return new namirasoft_schema_1.DecimalSchema(required, null);
|
|
98
102
|
else if (element.type == sequelize_1.DataTypes.REAL)
|
|
99
|
-
return new namirasoft_schema_1.RealSchema(
|
|
103
|
+
return new namirasoft_schema_1.RealSchema(required, null);
|
|
100
104
|
else if (element.type == sequelize_1.DataTypes.CHAR)
|
|
101
|
-
return new namirasoft_schema_1.StringSchema(
|
|
105
|
+
return new namirasoft_schema_1.StringSchema(required, element.type.length, element.type.length);
|
|
102
106
|
else if (element.type == sequelize_1.DataTypes.STRING || element.type == sequelize_1.DataTypes.TEXT)
|
|
103
|
-
return new namirasoft_schema_1.StringSchema(
|
|
107
|
+
return new namirasoft_schema_1.StringSchema(required, null, element.type.length);
|
|
104
108
|
else if (element.type == sequelize_1.DataTypes.DATE)
|
|
105
|
-
return new namirasoft_schema_1.DateTimeSchema(
|
|
109
|
+
return new namirasoft_schema_1.DateTimeSchema(required);
|
|
106
110
|
else if (element.type == sequelize_1.DataTypes.DATEONLY)
|
|
107
|
-
return new namirasoft_schema_1.DateSchema(
|
|
111
|
+
return new namirasoft_schema_1.DateSchema(required);
|
|
108
112
|
else if (element.type == sequelize_1.DataTypes.TIME)
|
|
109
|
-
return new namirasoft_schema_1.TimeSchema(
|
|
113
|
+
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);
|
|
110
116
|
else if (element.type == sequelize_1.DataTypes.JSON)
|
|
111
|
-
return new namirasoft_schema_1.AnySchema(
|
|
117
|
+
return new namirasoft_schema_1.AnySchema(required);
|
|
112
118
|
throw new Error("Unsupported datatype for schema: " + element.type);
|
|
113
119
|
}
|
|
114
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAkG;AAElG,2CAAwC;AAGxC,qDAAiD;AACjD,
|
|
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.
|
|
4
|
+
"version": "1.1.22",
|
|
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.8",
|
|
23
23
|
"namirasoft-log": "^1.1.1",
|
|
24
|
-
"namirasoft-schema": "^1.1.
|
|
24
|
+
"namirasoft-schema": "^1.1.30",
|
|
25
25
|
"nodemailer": "^6.9.7",
|
|
26
26
|
"nodemailer-smtp-transport": "^2.7.4",
|
|
27
27
|
"request-ip": "^3.3.0",
|
package/src/BaseController.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { ILogger } from 'namirasoft-log';
|
|
|
5
5
|
import { Meta } from './Meta';
|
|
6
6
|
import { ErrorOperation, HTTPError, HTTPMethod } from 'namirasoft-core';
|
|
7
7
|
import { BaseApplication } from './BaseApplication';
|
|
8
|
-
import { BaseVariableSchema, ControllerSchema, JoiValidator } from 'namirasoft-schema';
|
|
8
|
+
import { BaseTypeSchema, BaseVariableSchema, ControllerSchema, JoiValidator } from 'namirasoft-schema';
|
|
9
9
|
|
|
10
10
|
export abstract class BaseController<D extends BaseDatabase, State, Props, Output>
|
|
11
11
|
{
|
|
@@ -33,9 +33,9 @@ export abstract class BaseController<D extends BaseDatabase, State, Props, Outpu
|
|
|
33
33
|
abstract getLogger(): ILogger;
|
|
34
34
|
abstract getInfo(): { method: HTTPMethod, path: string, tag: string, summary: string };
|
|
35
35
|
abstract getParametersSchema(): BaseVariableSchema[];
|
|
36
|
-
abstract getBodySchema():
|
|
36
|
+
abstract getBodySchema(): BaseTypeSchema | null;
|
|
37
37
|
abstract getQueriesSchema(): BaseVariableSchema[];
|
|
38
|
-
abstract getOutputSchema():
|
|
38
|
+
abstract getOutputSchema(): BaseTypeSchema | null;
|
|
39
39
|
abstract getState(): Promise<State>;
|
|
40
40
|
abstract getProps(): Promise<Props>;
|
|
41
41
|
abstract preHandle(): Promise<void>;
|
|
@@ -4,7 +4,8 @@ import { BaseTable } from "./BaseTable";
|
|
|
4
4
|
import { ModelCtor, FindOptions, Transaction, Attributes } from 'sequelize';
|
|
5
5
|
import { BaseSequelizeModel } from "./BaseSequelizeModel";
|
|
6
6
|
import { ErrorOperation } from "namirasoft-core";
|
|
7
|
-
import { AnySchema, ArraySchema, BaseVariableSchema, BigIntSchema, BoolSchema, DateSchema, DateTimeSchema, DecimalSchema, DoubleSchema, FloatSchema, IntegerSchema, MediumIntSchema, ObjectSchema, RealSchema, SmallIntSchema, StringSchema, TimeSchema, TinyIntSchema } from "namirasoft-schema";
|
|
7
|
+
import { AnySchema, ArraySchema, BaseTypeSchema, BaseVariableSchema, BigIntSchema, BoolSchema, DateSchema, DateTimeSchema, DecimalSchema, DoubleSchema, FloatSchema, IntegerSchema, MediumIntSchema, ObjectSchema, RealSchema, SmallIntSchema, StringSchema, TimeSchema, TinyIntSchema } from "namirasoft-schema";
|
|
8
|
+
import { EnumSchema } from "namirasoft-schema/dist/schema/type/EnumSchema";
|
|
8
9
|
|
|
9
10
|
export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseSequelizeModel> extends BaseTable<D>
|
|
10
11
|
{
|
|
@@ -56,7 +57,7 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
|
|
|
56
57
|
{
|
|
57
58
|
if (!excludeColumns)
|
|
58
59
|
excludeColumns = [];
|
|
59
|
-
let ans = new ObjectSchema(
|
|
60
|
+
let ans = new ObjectSchema(this.model.name, require, null);
|
|
60
61
|
let keys = Object.keys(this.attributes);
|
|
61
62
|
let secures = this.getSecureColumns();
|
|
62
63
|
for (let i = 0; i < keys.length; i++)
|
|
@@ -64,7 +65,7 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
|
|
|
64
65
|
if (!excludeColumns.includes(keys[i]))
|
|
65
66
|
{
|
|
66
67
|
const element = this.attributes[keys[i]] as ModelAttributeColumnOptions;
|
|
67
|
-
ans.addField(this.
|
|
68
|
+
ans.addField(this.getVariableSchema(keys[i], element));
|
|
68
69
|
}
|
|
69
70
|
if (joins)
|
|
70
71
|
ans.addField(...joins);
|
|
@@ -73,43 +74,49 @@ export class BaseSequelizeTable<D extends BaseSequelizeDatabase, M extends BaseS
|
|
|
73
74
|
getArraySchema(require: boolean, excludeColumns?: string[], joins?: BaseVariableSchema[]): ArraySchema
|
|
74
75
|
{
|
|
75
76
|
let ans = this.getSchema(require, excludeColumns, joins);
|
|
76
|
-
return new ArraySchema(
|
|
77
|
+
return new ArraySchema(require, [ans]);
|
|
77
78
|
}
|
|
78
|
-
private
|
|
79
|
+
private getVariableSchema(name: string, element: ModelAttributeColumnOptions): BaseVariableSchema
|
|
80
|
+
{
|
|
81
|
+
return new BaseVariableSchema(name, this.getTypeSchema(element));
|
|
82
|
+
}
|
|
83
|
+
private getTypeSchema(element: ModelAttributeColumnOptions): BaseTypeSchema
|
|
79
84
|
{
|
|
80
85
|
let required = !(element.allowNull ?? true);
|
|
81
86
|
if (element.type == DataTypes.BOOLEAN)
|
|
82
|
-
return new BoolSchema(
|
|
87
|
+
return new BoolSchema(required);
|
|
83
88
|
else if (element.type == DataTypes.TINYINT)
|
|
84
|
-
return new TinyIntSchema(
|
|
89
|
+
return new TinyIntSchema(required);
|
|
85
90
|
else if (element.type == DataTypes.SMALLINT)
|
|
86
|
-
return new SmallIntSchema(
|
|
91
|
+
return new SmallIntSchema(required);
|
|
87
92
|
else if (element.type == DataTypes.MEDIUMINT)
|
|
88
|
-
return new MediumIntSchema(
|
|
93
|
+
return new MediumIntSchema(required);
|
|
89
94
|
else if (element.type == DataTypes.INTEGER)
|
|
90
|
-
return new IntegerSchema(
|
|
95
|
+
return new IntegerSchema(required);
|
|
91
96
|
else if (element.type == DataTypes.BIGINT)
|
|
92
|
-
return new BigIntSchema(
|
|
97
|
+
return new BigIntSchema(required);
|
|
93
98
|
else if (element.type == DataTypes.FLOAT)
|
|
94
|
-
return new FloatSchema(
|
|
99
|
+
return new FloatSchema(required, null);
|
|
95
100
|
else if (element.type == DataTypes.DOUBLE)
|
|
96
|
-
return new DoubleSchema(
|
|
101
|
+
return new DoubleSchema(required, null);
|
|
97
102
|
else if (element.type == DataTypes.DECIMAL)
|
|
98
|
-
return new DecimalSchema(
|
|
103
|
+
return new DecimalSchema(required, null);
|
|
99
104
|
else if (element.type == DataTypes.REAL)
|
|
100
|
-
return new RealSchema(
|
|
105
|
+
return new RealSchema(required, null);
|
|
101
106
|
else if (element.type == DataTypes.CHAR)
|
|
102
|
-
return new StringSchema(
|
|
107
|
+
return new StringSchema(required, element.type.length, element.type.length);
|
|
103
108
|
else if (element.type == DataTypes.STRING || element.type == DataTypes.TEXT)
|
|
104
|
-
return new StringSchema(
|
|
109
|
+
return new StringSchema(required, null, element.type.length);
|
|
105
110
|
else if (element.type == DataTypes.DATE)
|
|
106
|
-
return new DateTimeSchema(
|
|
111
|
+
return new DateTimeSchema(required);
|
|
107
112
|
else if (element.type == DataTypes.DATEONLY)
|
|
108
|
-
return new DateSchema(
|
|
113
|
+
return new DateSchema(required);
|
|
109
114
|
else if (element.type == DataTypes.TIME)
|
|
110
|
-
return new TimeSchema(
|
|
115
|
+
return new TimeSchema(required);
|
|
116
|
+
else if (element.type == DataTypes.ENUM)
|
|
117
|
+
return new EnumSchema(required, element.type.arguments);
|
|
111
118
|
else if (element.type == DataTypes.JSON)
|
|
112
|
-
return new AnySchema(
|
|
119
|
+
return new AnySchema(required);
|
|
113
120
|
throw new Error("Unsupported datatype for schema: " + element.type);
|
|
114
121
|
}
|
|
115
122
|
}
|