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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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":";;;;;;;;;;;;AAAA,yCAAkG;AAElG,2CAAwC;AAGxC,qDAAiD;AACjD,yDAAkT;AAClT,8EAA2E;AAE3E,MAAa,kBAAkF,SAAQ,qBAAY;IAI/G,YAAY,QAAW;QAEnB,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IACK,IAAI,CAAC,OAAmC,EAAE,GAAuB;;YAEnE,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;YAC1B,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAI,OAAO,CAAC,CAAC;YACjD,IAAI,KAAK,IAAI,IAAI;gBACb,OAAO,KAAK,CAAC;YACjB,MAAM,gCAAc,CAAC,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;KAAA;IACD,MAAM,CAAC,SAAiB,EAAE,UAA6C,EAAE,OAAyB;QAG9F,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO;YACR,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS;YACzB,OAAO,CAAC,IAAI,GAAG;gBACX,MAAM,EAAE,SAAS;gBACjB,QAAQ,EAAE,SAAS;aACtB,CAAC;QACN,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS;YAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,eAAe,IAAI,SAAS;YACpC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QACnC,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,IAAI,OAAO,CAAC,WAAW,IAAI,SAAS;YAChC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/B,IAAI,OAAO,CAAC,UAAU,IAAI,SAAS;YAC/B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS;YAC7B,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC5B,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,IAAI,OAAO,CAAC,SAAS,IAAI,SAAS;YAC9B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;
|
|
1
|
+
{"version":3,"file":"BaseSequelizeTable.js","sourceRoot":"","sources":["../src/BaseSequelizeTable.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
141
|
+
protected isFloat(type: any): type is { options: { length: number, decimals: number } }
|
|
132
142
|
{
|
|
133
143
|
return type instanceof DataTypes.FLOAT;
|
|
134
144
|
}
|
|
135
|
-
|
|
145
|
+
protected isDouble(type: any): type is { options: { length: number, decimals: number } }
|
|
136
146
|
{
|
|
137
147
|
return type instanceof DataTypes.DOUBLE;
|
|
138
148
|
}
|
|
139
|
-
|
|
149
|
+
protected isDecimal(type: any): type is { options: { precision: number, scale: number } }
|
|
140
150
|
{
|
|
141
151
|
return type instanceof DataTypes.DECIMAL;
|
|
142
152
|
}
|
|
143
|
-
|
|
153
|
+
protected isReal(type: any): type is { options: { length: number, decimals: number } }
|
|
144
154
|
{
|
|
145
155
|
return type instanceof DataTypes.REAL;
|
|
146
156
|
}
|
|
147
|
-
|
|
157
|
+
protected isChar(type: any): type is { options: { length: number } }
|
|
148
158
|
{
|
|
149
159
|
return type instanceof DataTypes.CHAR;
|
|
150
160
|
}
|
|
151
|
-
|
|
161
|
+
protected isString(type: any): type is { options: { length: number } }
|
|
152
162
|
{
|
|
153
163
|
return type instanceof DataTypes.STRING;
|
|
154
164
|
}
|
|
155
|
-
|
|
165
|
+
protected isEnum(type: any): type is { options: { values: string[] } }
|
|
156
166
|
{
|
|
157
167
|
return type instanceof DataTypes.STRING;
|
|
158
168
|
}
|