@joktec/mysql 0.0.1

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.
Files changed (53) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +118 -0
  3. package/bin/generate-entity.sh +189 -0
  4. package/dist/index.d.ts +11 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +29 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/models/index.d.ts +4 -0
  9. package/dist/models/index.d.ts.map +1 -0
  10. package/dist/models/index.js +20 -0
  11. package/dist/models/index.js.map +1 -0
  12. package/dist/models/mysql.model.d.ts +7 -0
  13. package/dist/models/mysql.model.d.ts.map +1 -0
  14. package/dist/models/mysql.model.js +36 -0
  15. package/dist/models/mysql.model.js.map +1 -0
  16. package/dist/models/mysql.request.d.ts +10 -0
  17. package/dist/models/mysql.request.d.ts.map +1 -0
  18. package/dist/models/mysql.request.js +3 -0
  19. package/dist/models/mysql.request.js.map +1 -0
  20. package/dist/models/mysql.response.d.ts +4 -0
  21. package/dist/models/mysql.response.d.ts.map +1 -0
  22. package/dist/models/mysql.response.js +3 -0
  23. package/dist/models/mysql.response.js.map +1 -0
  24. package/dist/mysql.client.d.ts +9 -0
  25. package/dist/mysql.client.d.ts.map +1 -0
  26. package/dist/mysql.client.js +3 -0
  27. package/dist/mysql.client.js.map +1 -0
  28. package/dist/mysql.config.d.ts +35 -0
  29. package/dist/mysql.config.d.ts.map +1 -0
  30. package/dist/mysql.config.js +120 -0
  31. package/dist/mysql.config.js.map +1 -0
  32. package/dist/mysql.exception.d.ts +6 -0
  33. package/dist/mysql.exception.d.ts.map +1 -0
  34. package/dist/mysql.exception.js +30 -0
  35. package/dist/mysql.exception.js.map +1 -0
  36. package/dist/mysql.module.d.ts +3 -0
  37. package/dist/mysql.module.d.ts.map +1 -0
  38. package/dist/mysql.module.js +23 -0
  39. package/dist/mysql.module.js.map +1 -0
  40. package/dist/mysql.repo.d.ts +22 -0
  41. package/dist/mysql.repo.d.ts.map +1 -0
  42. package/dist/mysql.repo.js +119 -0
  43. package/dist/mysql.repo.js.map +1 -0
  44. package/dist/mysql.service.d.ts +13 -0
  45. package/dist/mysql.service.d.ts.map +1 -0
  46. package/dist/mysql.service.js +82 -0
  47. package/dist/mysql.service.js.map +1 -0
  48. package/dist/mysql.utils.d.ts +5 -0
  49. package/dist/mysql.utils.d.ts.map +1 -0
  50. package/dist/mysql.utils.js +55 -0
  51. package/dist/mysql.utils.js.map +1 -0
  52. package/dist/tsconfig.tsbuildinfo +1 -0
  53. package/package.json +53 -0
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MysqlConfig = exports.Dialect = exports.MysqlSlaveConfig = void 0;
13
+ const core_1 = require("@joktec/core");
14
+ const lodash_1 = require("lodash");
15
+ class MysqlSlaveConfig {
16
+ constructor(props) {
17
+ Object.assign(this, Object.assign({}, props));
18
+ }
19
+ }
20
+ __decorate([
21
+ (0, core_1.IsString)(),
22
+ (0, core_1.IsNotEmpty)(),
23
+ __metadata("design:type", String)
24
+ ], MysqlSlaveConfig.prototype, "host", void 0);
25
+ __decorate([
26
+ (0, core_1.IsInt)(),
27
+ (0, core_1.IsNotEmpty)(),
28
+ __metadata("design:type", Number)
29
+ ], MysqlSlaveConfig.prototype, "port", void 0);
30
+ __decorate([
31
+ (0, core_1.IsString)(),
32
+ (0, core_1.IsNotEmpty)(),
33
+ __metadata("design:type", String)
34
+ ], MysqlSlaveConfig.prototype, "username", void 0);
35
+ __decorate([
36
+ (0, core_1.IsString)(),
37
+ (0, core_1.IsNotEmpty)(),
38
+ __metadata("design:type", String)
39
+ ], MysqlSlaveConfig.prototype, "password", void 0);
40
+ __decorate([
41
+ (0, core_1.IsString)(),
42
+ (0, core_1.IsNotEmpty)(),
43
+ __metadata("design:type", String)
44
+ ], MysqlSlaveConfig.prototype, "database", void 0);
45
+ exports.MysqlSlaveConfig = MysqlSlaveConfig;
46
+ var Dialect;
47
+ (function (Dialect) {
48
+ Dialect["MYSQL"] = "mysql";
49
+ Dialect["POSTGRES"] = "postgres";
50
+ Dialect["SQLITE"] = "sqlite";
51
+ Dialect["MARIADB"] = "mariadb";
52
+ Dialect["MSSQL"] = "mssql";
53
+ Dialect["DB2"] = "db2";
54
+ Dialect["SNOWFLAKE"] = "snowflake";
55
+ Dialect["ORACLE"] = "oracle";
56
+ })(Dialect = exports.Dialect || (exports.Dialect = {}));
57
+ class MysqlConfig extends core_1.ClientConfig {
58
+ constructor(props) {
59
+ var _a;
60
+ super(props);
61
+ Object.assign(this, Object.assign(Object.assign({}, props), { dialect: (props === null || props === void 0 ? void 0 : props.dialect) || Dialect.MYSQL, host: (props === null || props === void 0 ? void 0 : props.host) || 'localhost', port: (0, core_1.toInt)(props === null || props === void 0 ? void 0 : props.port, 3306), connectTimeout: (0, core_1.toInt)(props === null || props === void 0 ? void 0 : props.connectTimeout, 20000), slaves: [] }));
62
+ if ((_a = props === null || props === void 0 ? void 0 : props.slaves) === null || _a === void 0 ? void 0 : _a.length) {
63
+ const masterConfig = (0, lodash_1.pick)(props, ['host', 'port', 'username', 'password', 'database']);
64
+ this.slaves = props.slaves.map(slave => new MysqlSlaveConfig(Object.assign(Object.assign({}, masterConfig), slave)));
65
+ }
66
+ }
67
+ }
68
+ __decorate([
69
+ (0, core_1.IsString)(),
70
+ (0, core_1.IsNotEmpty)(),
71
+ __metadata("design:type", String)
72
+ ], MysqlConfig.prototype, "dialect", void 0);
73
+ __decorate([
74
+ (0, core_1.IsString)(),
75
+ (0, core_1.IsNotEmpty)(),
76
+ __metadata("design:type", String)
77
+ ], MysqlConfig.prototype, "host", void 0);
78
+ __decorate([
79
+ (0, core_1.IsInt)(),
80
+ (0, core_1.IsNotEmpty)(),
81
+ __metadata("design:type", Number)
82
+ ], MysqlConfig.prototype, "port", void 0);
83
+ __decorate([
84
+ (0, core_1.IsString)(),
85
+ (0, core_1.IsNotEmpty)(),
86
+ __metadata("design:type", String)
87
+ ], MysqlConfig.prototype, "username", void 0);
88
+ __decorate([
89
+ (0, core_1.IsString)(),
90
+ (0, core_1.IsNotEmpty)(),
91
+ __metadata("design:type", String)
92
+ ], MysqlConfig.prototype, "password", void 0);
93
+ __decorate([
94
+ (0, core_1.IsString)(),
95
+ (0, core_1.IsNotEmpty)(),
96
+ __metadata("design:type", String)
97
+ ], MysqlConfig.prototype, "database", void 0);
98
+ __decorate([
99
+ (0, core_1.IsString)(),
100
+ (0, core_1.IsOptional)(),
101
+ __metadata("design:type", String)
102
+ ], MysqlConfig.prototype, "charset", void 0);
103
+ __decorate([
104
+ (0, core_1.IsString)(),
105
+ (0, core_1.IsOptional)(),
106
+ __metadata("design:type", String)
107
+ ], MysqlConfig.prototype, "timezone", void 0);
108
+ __decorate([
109
+ (0, core_1.IsInt)(),
110
+ (0, core_1.IsOptional)(),
111
+ __metadata("design:type", Number)
112
+ ], MysqlConfig.prototype, "connectTimeout", void 0);
113
+ __decorate([
114
+ (0, core_1.IsArray)(),
115
+ (0, core_1.IsTypes)([MysqlSlaveConfig], { each: true }),
116
+ (0, core_1.IsOptional)(),
117
+ __metadata("design:type", Array)
118
+ ], MysqlConfig.prototype, "slaves", void 0);
119
+ exports.MysqlConfig = MysqlConfig;
120
+ //# sourceMappingURL=mysql.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.config.js","sourceRoot":"","sources":["../src/mysql.config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { InternalServerException } from '@joktec/core';
2
+ export declare class MysqlException extends InternalServerException {
3
+ constructor(msg: string, error: any);
4
+ }
5
+ export declare const MysqlCatch: MethodDecorator;
6
+ //# sourceMappingURL=mysql.exception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.exception.d.ts","sourceRoot":"","sources":["../src/mysql.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAGtB,qBAAa,cAAe,SAAQ,uBAAuB;gBAC7C,GAAG,EAAE,MAA0B,EAAE,KAAK,EAAE,GAAG;CAGxD;AAED,eAAO,MAAM,UAAU,iBAkBrB,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MysqlCatch = exports.MysqlException = void 0;
4
+ const core_1 = require("@joktec/core");
5
+ const lodash_1 = require("lodash");
6
+ class MysqlException extends core_1.InternalServerException {
7
+ constructor(msg = 'MYSQL_EXCEPTION', error) {
8
+ super(msg, error);
9
+ }
10
+ }
11
+ exports.MysqlException = MysqlException;
12
+ exports.MysqlCatch = (0, core_1.BaseMethodDecorator)(async (options) => {
13
+ const { method, args } = options;
14
+ try {
15
+ return await method(...args);
16
+ }
17
+ catch (err) {
18
+ if (err.errors && Array.isArray(err.errors)) {
19
+ const items = err.errors.map(errItem => (0, lodash_1.pick)(errItem, ['message', 'path', 'value', 'validatorArgs']));
20
+ throw new core_1.BadRequestException(items[0].message, items);
21
+ }
22
+ if (err.parent || err.original) {
23
+ const parent = err.parent || err.original;
24
+ const msg = (0, lodash_1.snakeCase)(err.message).toUpperCase();
25
+ throw new core_1.BadRequestException(msg, parent);
26
+ }
27
+ throw new MysqlException(err.message, err);
28
+ }
29
+ });
30
+ //# sourceMappingURL=mysql.exception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.exception.js","sourceRoot":"","sources":["../src/mysql.exception.ts"],"names":[],"mappings":";;;AAAA,uCAKsB;AACtB,mCAAyC;AAEzC,MAAa,cAAe,SAAQ,8BAAuB;IACzD,YAAY,MAAc,iBAAiB,EAAE,KAAU;QACrD,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpB,CAAC;CACF;AAJD,wCAIC;AAEY,QAAA,UAAU,GAAG,IAAA,0BAAmB,EAAC,KAAK,EAAE,OAAiC,EAAgB,EAAE;IACtG,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACjC,IAAI;QACF,OAAO,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9B;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,aAAI,EAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;YACtG,MAAM,IAAI,0BAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SACxD;QAED,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAA,kBAAS,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;YACjD,MAAM,IAAI,0BAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC5C;QAED,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KAC5C;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare class MysqlModule {
2
+ }
3
+ //# sourceMappingURL=mysql.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.module.d.ts","sourceRoot":"","sources":["../src/mysql.module.ts"],"names":[],"mappings":"AAGA,qBAMa,WAAW;CAAG"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MysqlModule = void 0;
10
+ const core_1 = require("@joktec/core");
11
+ const mysql_service_1 = require("./mysql.service");
12
+ let MysqlModule = class MysqlModule {
13
+ };
14
+ MysqlModule = __decorate([
15
+ (0, core_1.Global)(),
16
+ (0, core_1.Module)({
17
+ imports: [],
18
+ providers: [mysql_service_1.MysqlService],
19
+ exports: [mysql_service_1.MysqlService],
20
+ })
21
+ ], MysqlModule);
22
+ exports.MysqlModule = MysqlModule;
23
+ //# sourceMappingURL=mysql.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.module.js","sourceRoot":"","sources":["../src/mysql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAA8C;AAC9C,mDAA+C;AAQxC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,WAAW;IANvB,IAAA,aAAM,GAAE;IACR,IAAA,aAAM,EAAC;QACN,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG;AAAd,kCAAW"}
@@ -0,0 +1,22 @@
1
+ import { ICondition, OnModuleInit } from '@joktec/core';
2
+ import { IMysqlRepository } from './mysql.client';
3
+ import { MysqlService } from './mysql.service';
4
+ import { Model, ModelCtor } from 'sequelize-typescript';
5
+ import { IMysqlRequest, MysqlId } from './models';
6
+ export declare abstract class MysqlRepo<T extends Model<T>, ID = MysqlId> implements IMysqlRepository<T, ID>, OnModuleInit {
7
+ protected mysqlService: MysqlService;
8
+ protected model: ModelCtor<T>;
9
+ protected conId: string;
10
+ protected constructor(mysqlService: MysqlService, model: ModelCtor<T>, conId?: string);
11
+ onModuleInit(): Promise<void>;
12
+ find(query: IMysqlRequest): Promise<T[]>;
13
+ count(query: IMysqlRequest): Promise<number>;
14
+ findOne(query: IMysqlRequest): Promise<T>;
15
+ create(body: T): Promise<T>;
16
+ update(condition: ICondition, body: T): Promise<T>;
17
+ delete(condition: ICondition, opts?: {
18
+ force?: boolean;
19
+ }): Promise<T>;
20
+ upsert(condition: ICondition, body: T): Promise<T>;
21
+ }
22
+ //# sourceMappingURL=mysql.repo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.repo.d.ts","sourceRoot":"","sources":["../src/mysql.repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,UAAU,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKlD,8BAAsB,SAAS,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,CAAE,YAAW,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,YAAY;IAE9G,SAAS,CAAC,YAAY,EAAE,YAAY;IACpC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM;IAHzB,SAAS,aACG,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,KAAK,GAAE,MAAuB;IAGpC,YAAY;IAKZ,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAYxC,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5C,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;IAOzC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK3B,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASlD,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;IAWrE,MAAM,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAOzD"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MysqlRepo = void 0;
13
+ const core_1 = require("@joktec/core");
14
+ const mysql_utils_1 = require("./mysql.utils");
15
+ const mysql_exception_1 = require("./mysql.exception");
16
+ class MysqlRepo {
17
+ constructor(mysqlService, model, conId = core_1.DEFAULT_CON_ID) {
18
+ this.mysqlService = mysqlService;
19
+ this.model = model;
20
+ this.conId = conId;
21
+ }
22
+ async onModuleInit() {
23
+ await this.mysqlService.getModelSync(this.model, this.conId);
24
+ }
25
+ async find(query) {
26
+ const options = (0, mysql_utils_1.preHandleQuery)(query.condition, query.keyword);
27
+ if (query.select)
28
+ options.attributes = (0, core_1.toArray)(query.select, ',');
29
+ if (query.sort)
30
+ options.order = Object.entries(query.sort);
31
+ if (query.limit && query.page) {
32
+ options.limit = query.limit;
33
+ options.offset = (query.page - 1) * query.limit;
34
+ }
35
+ return this.model.findAll(options);
36
+ }
37
+ async count(query) {
38
+ const options = (0, mysql_utils_1.preHandleQuery)(query.condition, query.keyword);
39
+ return this.model.count(options);
40
+ }
41
+ async findOne(query) {
42
+ const options = (0, mysql_utils_1.preHandleQuery)(query.condition, query.keyword);
43
+ if (query.select)
44
+ options.attributes = (0, core_1.toArray)(query.select, ',');
45
+ return this.model.findOne(options);
46
+ }
47
+ async create(body) {
48
+ return this.model.create(body);
49
+ }
50
+ async update(condition, body) {
51
+ const options = (0, mysql_utils_1.preHandleQuery)(condition);
52
+ const model = await this.model.findOne(options);
53
+ if (!model)
54
+ return null;
55
+ const fields = Object.keys(body);
56
+ return model.update(body, { fields });
57
+ }
58
+ async delete(condition, opts) {
59
+ const existModel = await this.findOne({ condition });
60
+ if (!existModel)
61
+ return null;
62
+ const options = (0, mysql_utils_1.preHandleQuery)(condition);
63
+ options.force = (0, core_1.toBool)(opts === null || opts === void 0 ? void 0 : opts.force, false);
64
+ await this.model.destroy(options);
65
+ return existModel;
66
+ }
67
+ async upsert(condition, body) {
68
+ const fields = Object.keys(body);
69
+ const pk = this.model.primaryKeyAttribute;
70
+ const [row, result] = await this.model.upsert(body, { returning: true, fields, conflictFields: [pk] });
71
+ if (!row || !result)
72
+ return null;
73
+ return row;
74
+ }
75
+ }
76
+ __decorate([
77
+ mysql_exception_1.MysqlCatch,
78
+ __metadata("design:type", Function),
79
+ __metadata("design:paramtypes", [Object]),
80
+ __metadata("design:returntype", Promise)
81
+ ], MysqlRepo.prototype, "find", null);
82
+ __decorate([
83
+ mysql_exception_1.MysqlCatch,
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [Object]),
86
+ __metadata("design:returntype", Promise)
87
+ ], MysqlRepo.prototype, "count", null);
88
+ __decorate([
89
+ mysql_exception_1.MysqlCatch,
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Object]),
92
+ __metadata("design:returntype", Promise)
93
+ ], MysqlRepo.prototype, "findOne", null);
94
+ __decorate([
95
+ mysql_exception_1.MysqlCatch,
96
+ __metadata("design:type", Function),
97
+ __metadata("design:paramtypes", [Object]),
98
+ __metadata("design:returntype", Promise)
99
+ ], MysqlRepo.prototype, "create", null);
100
+ __decorate([
101
+ mysql_exception_1.MysqlCatch,
102
+ __metadata("design:type", Function),
103
+ __metadata("design:paramtypes", [Object, Object]),
104
+ __metadata("design:returntype", Promise)
105
+ ], MysqlRepo.prototype, "update", null);
106
+ __decorate([
107
+ mysql_exception_1.MysqlCatch,
108
+ __metadata("design:type", Function),
109
+ __metadata("design:paramtypes", [Object, Object]),
110
+ __metadata("design:returntype", Promise)
111
+ ], MysqlRepo.prototype, "delete", null);
112
+ __decorate([
113
+ mysql_exception_1.MysqlCatch,
114
+ __metadata("design:type", Function),
115
+ __metadata("design:paramtypes", [Object, Object]),
116
+ __metadata("design:returntype", Promise)
117
+ ], MysqlRepo.prototype, "upsert", null);
118
+ exports.MysqlRepo = MysqlRepo;
119
+ //# sourceMappingURL=mysql.repo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.repo.js","sourceRoot":"","sources":["../src/mysql.repo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { AbstractClientService } from '@joktec/core';
2
+ import { MysqlConfig } from './mysql.config';
3
+ import { MysqlClient } from './mysql.client';
4
+ import { Model, ModelCtor, Sequelize } from 'sequelize-typescript';
5
+ export declare class MysqlService extends AbstractClientService<MysqlConfig, Sequelize> implements MysqlClient {
6
+ constructor();
7
+ protected init(config: MysqlConfig): Promise<Sequelize>;
8
+ start(client: Sequelize, conId?: string): Promise<void>;
9
+ stop(client: Sequelize, conId?: string): Promise<void>;
10
+ getModel<T extends Model<T>>(model: ModelCtor<T>, conId?: string): ModelCtor<T>;
11
+ getModelSync<T extends Model<T>>(model: ModelCtor<T>, conId?: string): Promise<ModelCtor<T>>;
12
+ }
13
+ //# sourceMappingURL=mysql.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.service.d.ts","sourceRoot":"","sources":["../src/mysql.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAqC,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAMnE,qBACa,YAAa,SAAQ,qBAAqB,CAAC,WAAW,EAAE,SAAS,CAAE,YAAW,WAAW;;cAMpF,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAoBvD,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAE,MAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,GAAE,MAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,QAAQ,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,MAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;IAOzF,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAC1C,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EACnB,KAAK,GAAE,MAAuB,GAC7B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;CAOzB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MysqlService = void 0;
13
+ const core_1 = require("@joktec/core");
14
+ const mysql_config_1 = require("./mysql.config");
15
+ const sequelize_typescript_1 = require("sequelize-typescript");
16
+ const lodash_1 = require("lodash");
17
+ const RETRY_OPTS = 'mysql.retry';
18
+ let MysqlService = class MysqlService extends core_1.AbstractClientService {
19
+ constructor() {
20
+ super('mysql', mysql_config_1.MysqlConfig);
21
+ }
22
+ async init(config) {
23
+ var _a;
24
+ this.logService.info('MysqlConfig: %j', config);
25
+ const connection = (0, lodash_1.pick)(config, ['host', 'port', 'username', 'password', 'database']);
26
+ const options = Object.assign(Object.assign({}, connection), { dialect: config.dialect, dialectOptions: { charset: config.charset, connectTimeout: config.connectTimeout }, logging: (sql, timing) => {
27
+ this.logService.debug('SQL statement: %s', sql);
28
+ this.logService.trace('SQL execute in %j', timing);
29
+ } });
30
+ if ((_a = config.slaves) === null || _a === void 0 ? void 0 : _a.length) {
31
+ options.replication = { write: Object.assign({}, connection), read: config.slaves };
32
+ }
33
+ const sequelize = new sequelize_typescript_1.Sequelize(options);
34
+ this.logService.info('MySQL Service is configured in `%s` connection', config.conId);
35
+ return sequelize;
36
+ }
37
+ async start(client, conId = core_1.DEFAULT_CON_ID) {
38
+ const config = this.getConfig(conId);
39
+ try {
40
+ await client.authenticate();
41
+ this.logService.info('MySQL Service have been start on host %s', config.host);
42
+ }
43
+ catch (err) {
44
+ this.logService.error(err, 'MySQL Service failed to start on host %s', config.host);
45
+ }
46
+ }
47
+ async stop(client, conId = core_1.DEFAULT_CON_ID) {
48
+ const config = this.getConfig(conId);
49
+ try {
50
+ await client.close();
51
+ this.logService.warn('MySQL Service have been stop on host %s', config.host);
52
+ }
53
+ catch (err) {
54
+ this.logService.error(err, 'MySQL Service failed to stop on host %s', config.host);
55
+ }
56
+ }
57
+ getModel(model, conId = core_1.DEFAULT_CON_ID) {
58
+ if (!this.getClient(conId).isDefined(model.name)) {
59
+ this.getClient(conId).addModels([model]);
60
+ }
61
+ return model;
62
+ }
63
+ async getModelSync(model, conId = core_1.DEFAULT_CON_ID) {
64
+ if (!this.getClient(conId).isDefined(model.name)) {
65
+ this.getClient(conId).addModels([model]);
66
+ await model.sync({ alter: { drop: false } });
67
+ }
68
+ return model;
69
+ }
70
+ };
71
+ __decorate([
72
+ (0, core_1.Retry)(RETRY_OPTS),
73
+ __metadata("design:type", Function),
74
+ __metadata("design:paramtypes", [mysql_config_1.MysqlConfig]),
75
+ __metadata("design:returntype", Promise)
76
+ ], MysqlService.prototype, "init", null);
77
+ MysqlService = __decorate([
78
+ (0, core_1.Injectable)(),
79
+ __metadata("design:paramtypes", [])
80
+ ], MysqlService);
81
+ exports.MysqlService = MysqlService;
82
+ //# sourceMappingURL=mysql.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.service.js","sourceRoot":"","sources":["../src/mysql.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ICondition, IKeyword, IOperation } from '@joktec/core';
2
+ import { FindOptions } from 'sequelize';
3
+ export declare const preHandleQuery: (condition: ICondition, keyword?: IKeyword) => FindOptions;
4
+ export declare const convertOp: (op: IOperation) => symbol;
5
+ //# sourceMappingURL=mysql.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.utils.d.ts","sourceRoot":"","sources":["../src/mysql.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAM,MAAM,WAAW,CAAC;AAE5C,eAAO,MAAM,cAAc,cAAe,UAAU,YAAY,QAAQ,KAAG,WA2B1E,CAAC;AAEF,eAAO,MAAM,SAAS,OAAQ,UAAU,KAAG,MA2B1C,CAAC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertOp = exports.preHandleQuery = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const preHandleQuery = (condition, keyword) => {
6
+ const where = {};
7
+ for (const [key, value] of Object.entries(condition)) {
8
+ if (key === '$and') {
9
+ where[sequelize_1.Op.and] = value.map(c => (0, exports.preHandleQuery)(c));
10
+ }
11
+ else if (key === '$or') {
12
+ where[sequelize_1.Op.or] = value.map(c => (0, exports.preHandleQuery)(c));
13
+ }
14
+ else if (typeof value === 'object') {
15
+ const entries = Object.entries(value);
16
+ for (const [op, val] of entries) {
17
+ const sqlOp = (0, exports.convertOp)(op);
18
+ where[key] = Object.assign(Object.assign({}, where[key]), { [sqlOp]: val });
19
+ }
20
+ }
21
+ else {
22
+ where[key] = value;
23
+ }
24
+ }
25
+ if (keyword) {
26
+ Object.entries(keyword).map(([key, value]) => {
27
+ where[key] = { [sequelize_1.Op.substring]: value };
28
+ });
29
+ }
30
+ return { where };
31
+ };
32
+ exports.preHandleQuery = preHandleQuery;
33
+ const convertOp = (op) => {
34
+ switch (op) {
35
+ case '$ne':
36
+ return sequelize_1.Op.ne;
37
+ case '$gt':
38
+ return sequelize_1.Op.gt;
39
+ case '$gte':
40
+ return sequelize_1.Op.gte;
41
+ case '$lt':
42
+ return sequelize_1.Op.lt;
43
+ case '$lte':
44
+ return sequelize_1.Op.lte;
45
+ case '$in':
46
+ return sequelize_1.Op.in;
47
+ case '$nin':
48
+ return sequelize_1.Op.notIn;
49
+ case '$eq':
50
+ default:
51
+ return sequelize_1.Op.eq;
52
+ }
53
+ };
54
+ exports.convertOp = convertOp;
55
+ //# sourceMappingURL=mysql.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql.utils.js","sourceRoot":"","sources":["../src/mysql.utils.ts"],"names":[],"mappings":";;;AACA,yCAA4C;AAErC,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAE,OAAkB,EAAe,EAAE;IACvF,MAAM,KAAK,GAAiC,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACpD,IAAI,GAAG,KAAK,MAAM,EAAE;YAClB,KAAK,CAAC,cAAE,CAAC,GAAG,CAAC,GAAI,KAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAc,EAAC,CAAC,CAAC,CAAC,CAAC;SACrE;aAAM,IAAI,GAAG,KAAK,KAAK,EAAE;YACxB,KAAK,CAAC,cAAE,CAAC,EAAE,CAAC,GAAI,KAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,sBAAc,EAAC,CAAC,CAAC,CAAC,CAAC;SACpE;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAA8B,CAAC;YACnE,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE;gBAC/B,MAAM,KAAK,GAAG,IAAA,iBAAS,EAAC,EAAE,CAAC,CAAC;gBAC5B,KAAK,CAAC,GAAG,CAAC,mCAAQ,KAAK,CAAC,GAAG,CAAC,KAAE,CAAC,KAAK,CAAC,EAAE,GAAG,GAAE,CAAC;aAC9C;SACF;aAAM;YACL,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACpB;KACF;IAGD,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,cAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,EAAE,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC;AA3BW,QAAA,cAAc,kBA2BzB;AAEK,MAAM,SAAS,GAAG,CAAC,EAAc,EAAU,EAAE;IAClD,QAAQ,EAAE,EAAE;QACV,KAAK,KAAK;YACR,OAAO,cAAE,CAAC,EAAE,CAAC;QAEf,KAAK,KAAK;YACR,OAAO,cAAE,CAAC,EAAE,CAAC;QAEf,KAAK,MAAM;YACT,OAAO,cAAE,CAAC,GAAG,CAAC;QAEhB,KAAK,KAAK;YACR,OAAO,cAAE,CAAC,EAAE,CAAC;QAEf,KAAK,MAAM;YACT,OAAO,cAAE,CAAC,GAAG,CAAC;QAEhB,KAAK,KAAK;YACR,OAAO,cAAE,CAAC,EAAE,CAAC;QAEf,KAAK,MAAM;YACT,OAAO,cAAE,CAAC,KAAK,CAAC;QAElB,KAAK,KAAK,CAAC;QACX;YACE,OAAO,cAAE,CAAC,EAAE,CAAC;KAChB;AACH,CAAC,CAAC;AA3BW,QAAA,SAAS,aA2BpB"}