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
|
-
|
|
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;
|
|
@@ -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
|
-
|
|
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":";;;;;;;;;;;;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":";;;;;;;;;;;;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;IACS,WAAW;QAEjB,OAAO,EAAE,CAAC;IACd,CAAC;IACS,aAAa,CAAC,OAAoE;QAExF,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC9B;gBACI,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAgC,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;aAC5B;IACT,CAAC;IACD,SAAS,CAAC,OAAgB,EAAE,IAAa,EAAE,cAAyB,EAAE,KAA4B;QAE9F,IAAI,CAAC,cAAc;YACf,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,GAAG,GAAG,IAAI,gCAAY,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAEhC,IAAI,cAAc;gBACd,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAClC;oBACI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;iBACtD;QACT,CAAC,CAAC,CAAC;QACH,IAAI,KAAK;YACL,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC;IACf,CAAC;IACD,cAAc,CAAC,OAAgB,EAAE,IAAa,EAAE,cAAyB,EAAE,KAA4B;QAEnG,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,IAAI,+BAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACO,iBAAiB,CAAC,IAAY,EAAE,OAAoC;QAExE,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,sCAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IACO,aAAa,CAAC,OAAoC;;QAEtD,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,IAAI,CAAC,CAAC;QAC5C,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,OAAO;YACzC,OAAO,IAAI,8BAAU,CAAC,QAAQ,CAAC,CAAC;aAC/B,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,OAAO;YAC9C,OAAO,IAAI,iCAAa,CAAC,QAAQ,CAAC,CAAC;aAClC,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,QAAQ;YAC/C,OAAO,IAAI,kCAAc,CAAC,QAAQ,CAAC,CAAC;aACnC,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,SAAS;YAChD,OAAO,IAAI,mCAAe,CAAC,QAAQ,CAAC,CAAC;aACpC,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,OAAO;YAC9C,OAAO,IAAI,iCAAa,CAAC,QAAQ,CAAC,CAAC;aAClC,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,MAAM;YAC7C,OAAO,IAAI,gCAAY,CAAC,QAAQ,CAAC,CAAC;aACjC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/B,OAAO,IAAI,+BAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,IAAI,gCAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAChE,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,OAAO,IAAI,iCAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,OAAO,IAAI,8BAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;aAC9D,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,OAAO,IAAI,gCAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC3F,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,OAAO,IAAI,gCAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACpE,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,IAAI;YAC3C,OAAO,IAAI,gCAAY,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC7C,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,IAAI;YAC3C,OAAO,IAAI,kCAAc,CAAC,QAAQ,CAAC,CAAC;aACnC,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,QAAQ;YAC/C,OAAO,IAAI,8BAAU,CAAC,QAAQ,CAAC,CAAC;aAC/B,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,IAAI;YAC3C,OAAO,IAAI,8BAAU,CAAC,QAAQ,CAAC,CAAC;aAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,OAAO,IAAI,uBAAU,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC/D,IAAI,OAAO,CAAC,IAAI,YAAY,qBAAS,CAAC,IAAI;YAC3C,OAAO,IAAI,6BAAS,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IACS,OAAO,CAAC,IAAS;QAEvB,OAAO,IAAI,YAAY,qBAAS,CAAC,KAAK,CAAC;IAC3C,CAAC;IACS,QAAQ,CAAC,IAAS;QAExB,OAAO,IAAI,YAAY,qBAAS,CAAC,MAAM,CAAC;IAC5C,CAAC;IACS,SAAS,CAAC,IAAS;QAEzB,OAAO,IAAI,YAAY,qBAAS,CAAC,OAAO,CAAC;IAC7C,CAAC;IACS,MAAM,CAAC,IAAS;QAEtB,OAAO,IAAI,YAAY,qBAAS,CAAC,IAAI,CAAC;IAC1C,CAAC;IACS,MAAM,CAAC,IAAS;QAEtB,OAAO,IAAI,YAAY,qBAAS,CAAC,IAAI,CAAC;IAC1C,CAAC;IACS,QAAQ,CAAC,IAAS;QAExB,OAAO,IAAI,YAAY,qBAAS,CAAC,MAAM,CAAC;IAC5C,CAAC;IACS,MAAM,CAAC,IAAS;QAEtB,OAAO,IAAI,YAAY,qBAAS,CAAC,MAAM,CAAC;IAC5C,CAAC;CACJ;AA/JD,gDA+JC"}
|
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.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.
|
|
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
|
-
|
|
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;
|
|
@@ -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
|
-
|
|
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
|
}
|