almighty-tool 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 (115) hide show
  1. package/.babelrc +17 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintignore +7 -0
  4. package/.eslintrc.js +5 -0
  5. package/.nvmrc +1 -0
  6. package/.prettierrc.js +1 -0
  7. package/.yarnrc +12 -0
  8. package/CHANGELOG.md +7 -0
  9. package/README.md +11 -0
  10. package/jest.config.js +1 -0
  11. package/lib/api/interfaces/api/base.api.d.ts +48 -0
  12. package/lib/api/interfaces/api/base.api.js +3 -0
  13. package/lib/api/interfaces/api/base.api.js.map +1 -0
  14. package/lib/api/interfaces/models/basic.model.d.ts +4 -0
  15. package/lib/api/interfaces/models/basic.model.js +3 -0
  16. package/lib/api/interfaces/models/basic.model.js.map +1 -0
  17. package/lib/api/interfaces/models/pagination.model.d.ts +26 -0
  18. package/lib/api/interfaces/models/pagination.model.js +3 -0
  19. package/lib/api/interfaces/models/pagination.model.js.map +1 -0
  20. package/lib/api/interfaces/types.d.ts +7 -0
  21. package/lib/api/interfaces/types.js +3 -0
  22. package/lib/api/interfaces/types.js.map +1 -0
  23. package/lib/api/models/basic.model.d.ts +7 -0
  24. package/lib/api/models/basic.model.js +25 -0
  25. package/lib/api/models/basic.model.js.map +1 -0
  26. package/lib/api/models/pagination.model.d.ts +35 -0
  27. package/lib/api/models/pagination.model.js +113 -0
  28. package/lib/api/models/pagination.model.js.map +1 -0
  29. package/lib/common/enum-object.d.ts +48 -0
  30. package/lib/common/enum-object.js +84 -0
  31. package/lib/common/enum-object.js.map +1 -0
  32. package/lib/common/general.d.ts +28 -0
  33. package/lib/common/general.js +173 -0
  34. package/lib/common/general.js.map +1 -0
  35. package/lib/common/validator.d.ts +20 -0
  36. package/lib/common/validator.js +30 -0
  37. package/lib/common/validator.js.map +1 -0
  38. package/lib/dayjs/locales/zh-cn.d.ts +40 -0
  39. package/lib/dayjs/locales/zh-cn.js +73 -0
  40. package/lib/dayjs/locales/zh-cn.js.map +1 -0
  41. package/lib/formats/date.format.d.ts +30 -0
  42. package/lib/formats/date.format.js +78 -0
  43. package/lib/formats/date.format.js.map +1 -0
  44. package/lib/interfaces/common/general.d.ts +186 -0
  45. package/lib/interfaces/common/general.js +28 -0
  46. package/lib/interfaces/common/general.js.map +1 -0
  47. package/lib/interfaces/utils/basic-util.d.ts +22 -0
  48. package/lib/interfaces/utils/basic-util.js +3 -0
  49. package/lib/interfaces/utils/basic-util.js.map +1 -0
  50. package/lib/interfaces/utils/date-util.d.ts +12 -0
  51. package/lib/interfaces/utils/date-util.js +3 -0
  52. package/lib/interfaces/utils/date-util.js.map +1 -0
  53. package/lib/interfaces/utils/format-util.d.ts +7 -0
  54. package/lib/interfaces/utils/format-util.js +3 -0
  55. package/lib/interfaces/utils/format-util.js.map +1 -0
  56. package/lib/locales/en/index.d.ts +19 -0
  57. package/lib/locales/en/index.js +21 -0
  58. package/lib/locales/en/index.js.map +1 -0
  59. package/lib/locales/index.d.ts +0 -0
  60. package/lib/locales/index.js +2 -0
  61. package/lib/locales/index.js.map +1 -0
  62. package/lib/locales/zh-cn/index.d.ts +33 -0
  63. package/lib/locales/zh-cn/index.js +35 -0
  64. package/lib/locales/zh-cn/index.js.map +1 -0
  65. package/lib/utils/accurate.util.d.ts +28 -0
  66. package/lib/utils/accurate.util.js +123 -0
  67. package/lib/utils/accurate.util.js.map +1 -0
  68. package/lib/utils/basic.util.d.ts +83 -0
  69. package/lib/utils/basic.util.js +286 -0
  70. package/lib/utils/basic.util.js.map +1 -0
  71. package/lib/utils/crypto.util.d.ts +65 -0
  72. package/lib/utils/crypto.util.js +151 -0
  73. package/lib/utils/crypto.util.js.map +1 -0
  74. package/lib/utils/date.util.d.ts +52 -0
  75. package/lib/utils/date.util.js +211 -0
  76. package/lib/utils/date.util.js.map +1 -0
  77. package/lib/utils/format.util.d.ts +49 -0
  78. package/lib/utils/format.util.js +98 -0
  79. package/lib/utils/format.util.js.map +1 -0
  80. package/lib/utils/locale.util.d.ts +20 -0
  81. package/lib/utils/locale.util.js +206 -0
  82. package/lib/utils/locale.util.js.map +1 -0
  83. package/lib/utils/number.util.d.ts +21 -0
  84. package/lib/utils/number.util.js +33 -0
  85. package/lib/utils/number.util.js.map +1 -0
  86. package/package.json +102 -0
  87. package/templates/eslints/eggjs.project.js +15 -0
  88. package/templates/eslints/element-ui.project.js +4 -0
  89. package/templates/eslints/recommended.js +26 -0
  90. package/templates/eslints/rules/recommended.js +26 -0
  91. package/templates/eslints/rules/vue.js +12 -0
  92. package/templates/eslints/server.project.js +18 -0
  93. package/templates/eslints/uni-app-v8.project.js +43 -0
  94. package/templates/eslints/uni-app.project.js +45 -0
  95. package/templates/eslints/vue.project.js +39 -0
  96. package/templates/jest/element-ui.project.js +1 -0
  97. package/templates/jest/recommended.js +19 -0
  98. package/templates/jest/vue.project.js +44 -0
  99. package/templates/postcss/recommended.js +4 -0
  100. package/templates/postcss/uni-app.js +11 -0
  101. package/templates/prettiers/recommended.js +26 -0
  102. package/templates/stylelint/recommended.js +42 -0
  103. package/templates/stylelint/rules/recommended.js +22 -0
  104. package/templates/stylelint/uni-app.project.js +11 -0
  105. package/templates/tsconfigs/eggjs.json +31 -0
  106. package/templates/tsconfigs/element-ui.json +3 -0
  107. package/templates/tsconfigs/lib.json +15 -0
  108. package/templates/tsconfigs/quasar.json +25 -0
  109. package/templates/tsconfigs/recommended.json +43 -0
  110. package/templates/tsconfigs/server.json +23 -0
  111. package/templates/tsconfigs/uni-app.json +39 -0
  112. package/templates/tsconfigs/vue.json +45 -0
  113. package/templates/tslints/recommended.json +13 -0
  114. package/tsconfig.json +9 -0
  115. package/types/index.d.ts +0 -0
package/.babelrc ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "env": {
3
+ "test": {
4
+ "presets": [
5
+ [
6
+ "@babel/preset-env",
7
+ {
8
+ "targets": {
9
+ "node": "current"
10
+ }
11
+ },
12
+ "@babel/preset-typescript"
13
+ ]
14
+ ]
15
+ }
16
+ }
17
+ }
package/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ indent_style = space
6
+ indent_size = 2
7
+ end_of_line = lf
8
+ charset = utf-8
9
+ trim_trailing_whitespace = true
10
+ insert_final_newline = true
11
+
12
+ [*.md]
13
+ trim_trailing_whitespace = false
package/.eslintignore ADDED
@@ -0,0 +1,7 @@
1
+ /tests/fixtures
2
+ /build/
3
+ /lib/
4
+ /config/
5
+ /dist/
6
+ /*.js
7
+ /tests/unit/coverage/
package/.eslintrc.js ADDED
@@ -0,0 +1,5 @@
1
+ // https://eslint.org/docs/user-guide/configuring
2
+ module.exports = {
3
+ extends: [require.resolve('./templates/eslints/recommended.js')],
4
+ rules: {}
5
+ };
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v18
package/.prettierrc.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./templates/prettiers/recommended.js');
package/.yarnrc ADDED
@@ -0,0 +1,12 @@
1
+ network-concurrency 1
2
+ registry "https://registry.npmmirror.com"
3
+ canvas_binary_host_mirror "https://npmmirror.com/mirrors/canvas"
4
+ sass_binary_site "https://npmmirror.com/mirrors/node-sass"
5
+ phantomjs_cdnurl "https://npmmirror.com/mirrors/phantomjs"
6
+ electron_mirror "https://npmmirror.com/mirrors/electron"
7
+ sqlite3_binary_host_mirror "http://npmmirror.com/mirrors/sqlite3"
8
+ profiler_binary_host_mirror "http://npmmirror.com/mirrors/node-inspector"
9
+ chromedriver_cdnurl "https://npmmirror.com/mirrors/chromedriver"
10
+ operadriver_cdnurl "https://npmmirror.com/mirrors/operadriver"
11
+ sentrycli_cdnurl "https://npmmirror.com/mirrors/sentry-cli"
12
+ fse_binary_host_mirror "https://npmmirror.com/mirrors/fsevents"
package/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # CHNAGE LOG
2
+
3
+ ## Develop
4
+
5
+ ### 2020-09-21 10:40
6
+
7
+ - 增加request options的name参数, 已经result增加name参数
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # almighty-tool
2
+
3
+ > tuitui common lib
4
+
5
+ ## Build Setup
6
+
7
+ ``` bash
8
+ $ yarn install
9
+ $ yarn run test
10
+ $ yarn run test --watch
11
+ ```
package/jest.config.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./templates/jest/recommended');
@@ -0,0 +1,48 @@
1
+ export interface ICommonResult<T> {
2
+ /** 是否成功 */
3
+ success?: boolean;
4
+ /** 标识 */
5
+ code?: string;
6
+ /** 信息 */
7
+ message?: string;
8
+ /** 数据 */
9
+ data?: T;
10
+ }
11
+ /** 分页方式 */
12
+ export declare type PAGINATION_TYPE = 'page' | 'slice' | 'all';
13
+ /** 分页方向 */
14
+ export declare type PAGINATION_MOVE = 'Next' | 'Back';
15
+ export interface IPaginationQuery {
16
+ /** 类型: 默认page */
17
+ paginationType?: PAGINATION_TYPE;
18
+ /** 指针: 翻页指针 */
19
+ paginationCursor?: string;
20
+ /** 翻页方向: 默认Next */
21
+ paginationMove?: PAGINATION_MOVE;
22
+ /** 当前页数: 默认1 */
23
+ page?: number;
24
+ /** 每页条数: 默认20 */
25
+ limit?: number;
26
+ /** 总个数: 第2页就不用重新count */
27
+ total?: number;
28
+ }
29
+ export interface IPaginationData<T> {
30
+ /** 数据列表 */
31
+ list: T[];
32
+ /** 类型 */
33
+ type?: PAGINATION_TYPE;
34
+ /** 总页数 */
35
+ totalPage?: number | null;
36
+ /** 总数量 */
37
+ total?: number | null;
38
+ /** 返回条数 */
39
+ limit?: number;
40
+ /** 当前页数 */
41
+ page?: number;
42
+ /** 向下的游标 */
43
+ nextCursor?: string;
44
+ /** 向上的游标 */
45
+ backCursor?: string;
46
+ /** 游标方向 */
47
+ move?: PAGINATION_MOVE;
48
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base.api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.api.js","sourceRoot":"","sources":["../../../../src/api/interfaces/api/base.api.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export interface IBasicModel {
2
+ /** 类型名 */
3
+ __typename?: string;
4
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=basic.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.model.js","sourceRoot":"","sources":["../../../../src/api/interfaces/models/basic.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { LOADMORE_STATUS } from '../../../interfaces/common/general';
2
+ import { IBasicModel } from './basic.model';
3
+ /**
4
+ * 翻页方向
5
+ *
6
+ * - Next=向上滑动
7
+ * - Back=下拉加载
8
+ */
9
+ export declare type SLICE_PAGINATION_MOVE = 'Next' | 'Back';
10
+ /** 标准分页器 */
11
+ export interface IPagination extends IBasicModel {
12
+ /** 每页条数 */
13
+ limit?: number;
14
+ /** 数据列表 */
15
+ list?: object[];
16
+ /** 加载更多的状态 */
17
+ loadMoreStatus?: LOADMORE_STATUS;
18
+ /** 页数 */
19
+ page?: number;
20
+ /** 总条数 */
21
+ total?: number | null;
22
+ /** 向上的指针 */
23
+ nextCursor?: string;
24
+ /** 向下的指针 */
25
+ backCursor?: string;
26
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=pagination.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.model.js","sourceRoot":"","sources":["../../../../src/api/interfaces/models/pagination.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export interface IApiResultData<T> {
2
+ success: boolean;
3
+ code: string;
4
+ message: string;
5
+ data?: T;
6
+ }
7
+ export declare type IBasicApiResultData = IApiResultData<null>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/api/interfaces/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { IBasicModel } from '../interfaces/models/basic.model';
2
+ export declare class BasicModel implements IBasicModel {
3
+ __typename: string;
4
+ static assign(target: object, source?: object): void;
5
+ constructor(obj?: IBasicModel);
6
+ toJSON(): object;
7
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasicModel = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
+ var BasicModel = /** @class */ (function () {
7
+ function BasicModel(obj) {
8
+ this.__typename = BasicModel.name;
9
+ BasicModel.assign(this, obj);
10
+ }
11
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
12
+ BasicModel.assign = function (target, source) {
13
+ if (source) {
14
+ Object.assign(target, lodash_1.default.pickBy(source, function (value) {
15
+ return typeof value !== 'undefined';
16
+ }));
17
+ }
18
+ };
19
+ BasicModel.prototype.toJSON = function () {
20
+ return Object.assign({}, this, {});
21
+ };
22
+ return BasicModel;
23
+ }());
24
+ exports.BasicModel = BasicModel;
25
+ //# sourceMappingURL=basic.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.model.js","sourceRoot":"","sources":["../../../src/api/models/basic.model.ts"],"names":[],"mappings":";;;;AAAA,+DAAuB;AAGvB;IAeE,oBAAY,GAAiB;QAd7B,eAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAe3B,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAdD,6EAA6E;IACtE,iBAAM,GAAb,UAAc,MAAc,EAAE,MAAe;QAC3C,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,MAAM,CACX,MAAM,EACN,gBAAC,CAAC,MAAM,CAAC,MAAM,EAAE,UAAC,KAAK;gBACrB,OAAO,OAAO,KAAK,KAAK,WAAW,CAAC;YACtC,CAAC,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAMM,2BAAM,GAAb;QACE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IACH,iBAAC;AAAD,CAAC,AAtBD,IAsBC;AAtBY,gCAAU"}
@@ -0,0 +1,35 @@
1
+ import { LOADMORE_STATUS } from '../../interfaces/common/general';
2
+ import { IPagination } from '../interfaces/models/pagination.model';
3
+ import { BasicModel } from './basic.model';
4
+ export declare const DEFAULT_PER_PAGE = 20;
5
+ export interface ILoadOptions {
6
+ /** 默认是push */
7
+ action?: 'append' | 'replace';
8
+ }
9
+ export declare class Pagination<T extends BasicModel> extends BasicModel implements IPagination {
10
+ __typename: string;
11
+ page: number;
12
+ total: number | null;
13
+ list: T[];
14
+ limit: number;
15
+ paginationType: 'page' | 'slice';
16
+ nextCursor: string;
17
+ backCursor: string;
18
+ constructor(obj?: IPagination);
19
+ /** 是否最后一页 */
20
+ get isLastPage(): boolean;
21
+ /** 总页数 */
22
+ get totalPage(): number | null;
23
+ /** 加载更多的状态 */
24
+ get loadMoreStatus(): LOADMORE_STATUS;
25
+ /** 加载数据 */
26
+ load(data: Pagination<T>, options?: ILoadOptions): Pagination<T>;
27
+ /** 还原 */
28
+ reset(): Pagination<T>;
29
+ /** 获取总页数 */
30
+ static getTotalPage(options: {
31
+ total: number | null;
32
+ limit: number | null;
33
+ }): number | null;
34
+ toJSON(): object;
35
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pagination = exports.DEFAULT_PER_PAGE = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var basic_model_1 = require("./basic.model");
6
+ exports.DEFAULT_PER_PAGE = 20;
7
+ var Pagination = /** @class */ (function (_super) {
8
+ (0, tslib_1.__extends)(Pagination, _super);
9
+ function Pagination(obj) {
10
+ var _this = _super.call(this, obj) || this;
11
+ _this.__typename = Pagination.name;
12
+ _this.page = 1;
13
+ _this.total = null;
14
+ _this.list = [];
15
+ _this.limit = exports.DEFAULT_PER_PAGE;
16
+ _this.paginationType = 'page';
17
+ _this.nextCursor = '';
18
+ _this.backCursor = '';
19
+ Object.assign(_this, obj);
20
+ return _this;
21
+ }
22
+ Object.defineProperty(Pagination.prototype, "isLastPage", {
23
+ /** 是否最后一页 */
24
+ get: function () {
25
+ if (this.paginationType === 'slice') {
26
+ return this.loadMoreStatus === 'noMore';
27
+ }
28
+ if (this.totalPage !== null && this.page !== null) {
29
+ return this.page >= this.totalPage;
30
+ }
31
+ return false;
32
+ },
33
+ enumerable: false,
34
+ configurable: true
35
+ });
36
+ Object.defineProperty(Pagination.prototype, "totalPage", {
37
+ /** 总页数 */
38
+ get: function () {
39
+ if (this.limit !== null && this.total !== null) {
40
+ return Pagination.getTotalPage({
41
+ limit: this.limit,
42
+ total: this.total,
43
+ });
44
+ }
45
+ return null;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ Object.defineProperty(Pagination.prototype, "loadMoreStatus", {
51
+ /** 加载更多的状态 */
52
+ get: function () {
53
+ if (this.isLastPage && this.total !== null) {
54
+ if (this.total) {
55
+ return 'noMore';
56
+ }
57
+ else {
58
+ return 'empty';
59
+ }
60
+ }
61
+ if (this.paginationType === 'slice') {
62
+ return 'noMore';
63
+ }
64
+ return 'more';
65
+ },
66
+ enumerable: false,
67
+ configurable: true
68
+ });
69
+ /** 加载数据 */
70
+ Pagination.prototype.load = function (data, options) {
71
+ var _a;
72
+ if (options === void 0) { options = {}; }
73
+ var action = options.action || 'append';
74
+ // 分片建在或者大于1页的时候,往里推
75
+ if (this.paginationType === 'slice' || (action === 'append' && data.page > 1)) {
76
+ (_a = this.list).push.apply(_a, data.list);
77
+ Object.assign(this, (0, tslib_1.__assign)((0, tslib_1.__assign)({}, data), { list: this.list }));
78
+ return this;
79
+ }
80
+ Object.assign(this, (0, tslib_1.__assign)({}, data));
81
+ return this;
82
+ };
83
+ /** 还原 */
84
+ Pagination.prototype.reset = function () {
85
+ return Object.assign(this, {
86
+ list: [],
87
+ page: 1,
88
+ nextCursor: '',
89
+ backCursor: '',
90
+ total: null,
91
+ });
92
+ };
93
+ /** 获取总页数 */
94
+ Pagination.getTotalPage = function (options) {
95
+ if (options.total !== null && options.limit !== null && options.limit > 0) {
96
+ return parseInt("".concat((options.total - 1) / options.limit + 1), 10);
97
+ }
98
+ else if (options.total !== null && options.total <= 0) {
99
+ return 0;
100
+ }
101
+ return null;
102
+ };
103
+ Pagination.prototype.toJSON = function () {
104
+ return Object.assign({}, this, {
105
+ isLastPage: this.isLastPage,
106
+ totalPage: this.totalPage,
107
+ loadMoreStatus: this.loadMoreStatus,
108
+ });
109
+ };
110
+ return Pagination;
111
+ }(basic_model_1.BasicModel));
112
+ exports.Pagination = Pagination;
113
+ //# sourceMappingURL=pagination.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.model.js","sourceRoot":"","sources":["../../../src/api/models/pagination.model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export declare type I18nValues = any[] | {
2
+ [key: string]: any;
3
+ };
4
+ export interface IEnumObjectI18n {
5
+ t: (key: string, values?: I18nValues) => string;
6
+ }
7
+ /** 选项 */
8
+ export interface ISelectOption {
9
+ /** 显示文字 */
10
+ label: string;
11
+ /** 关联的Key */
12
+ key: string;
13
+ /** 关联的值 */
14
+ value: string | number;
15
+ }
16
+ export interface IEnumObjectOptions {
17
+ i18n?: IEnumObjectI18n;
18
+ source: Object;
19
+ sourceName: string;
20
+ }
21
+ export declare class EnumObject<T> {
22
+ /** 国际化工具 */
23
+ private __i18n;
24
+ /** 源 */
25
+ private __source;
26
+ /** 反向源 */
27
+ private __reverseSource;
28
+ /** 源名称 */
29
+ sourceName: string;
30
+ source: T;
31
+ /** 选择的项目 */
32
+ getSelectOptions(): ISelectOption[];
33
+ /** 根据key获取对应的翻译 */
34
+ getText(key: string): string;
35
+ /** 根据value获取对应的翻译 */
36
+ getValueText(value: string | number): string;
37
+ /** 根据key获取对应的值 */
38
+ getValue(key: string): string | number | undefined;
39
+ /** 根据value获取对应的key */
40
+ getKey(value: string | number): string | undefined;
41
+ toJSON(): object;
42
+ get i18n(): IEnumObjectI18n;
43
+ constructor(options: IEnumObjectOptions);
44
+ /** 设置默认的i18n对象 */
45
+ setI18n(i18n: IEnumObjectI18n | null): void;
46
+ /** 设置默认的i18n对象 */
47
+ static setDefaultI18n(i18n: IEnumObjectI18n | null): void;
48
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnumObject = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var general_1 = (0, tslib_1.__importDefault)(require("./general"));
6
+ var DEFAULT_I18N_KEY = 'almighty-tool/common/enum-object#i18n';
7
+ var i18n = {
8
+ t: function (key, _values) {
9
+ return "".concat(key);
10
+ },
11
+ };
12
+ var EnumObject = /** @class */ (function () {
13
+ function EnumObject(options) {
14
+ var _this = this;
15
+ /** 源 */
16
+ this.__source = {};
17
+ /** 反向源 */
18
+ this.__reverseSource = {};
19
+ if (options.i18n) {
20
+ this.__i18n = options.i18n;
21
+ }
22
+ this.sourceName = options.sourceName;
23
+ this.source = options.source;
24
+ Object.entries(options.source).forEach(function (_a) {
25
+ var key = _a[0], value = _a[1];
26
+ /** 如果是纯数字,则判断对应key的值是否一致 */
27
+ if (!/^[0-9]*$/.test(key) || "".concat(Reflect.get(options.source, value)) !== key) {
28
+ Reflect.set(_this.__source, key, value);
29
+ Reflect.set(_this.__reverseSource, value, key);
30
+ }
31
+ });
32
+ }
33
+ /** 选择的项目 */
34
+ EnumObject.prototype.getSelectOptions = function () {
35
+ var _this = this;
36
+ var options = [];
37
+ Object.entries(this.__source).forEach(function (_a) {
38
+ var key = _a[0], value = _a[1];
39
+ options.push({
40
+ label: _this.getText(key),
41
+ key: key,
42
+ value: value,
43
+ });
44
+ });
45
+ return options;
46
+ };
47
+ /** 根据key获取对应的翻译 */
48
+ EnumObject.prototype.getText = function (key) {
49
+ return this.i18n.t("enum.".concat(this.sourceName, ".").concat(key));
50
+ };
51
+ /** 根据value获取对应的翻译 */
52
+ EnumObject.prototype.getValueText = function (value) {
53
+ return this.i18n.t("enum.".concat(this.sourceName, ".").concat(this.getKey(value)));
54
+ };
55
+ /** 根据key获取对应的值 */
56
+ EnumObject.prototype.getValue = function (key) {
57
+ return Reflect.get(this.__source, key);
58
+ };
59
+ /** 根据value获取对应的key */
60
+ EnumObject.prototype.getKey = function (value) {
61
+ return Reflect.get(this.__reverseSource, "".concat(value));
62
+ };
63
+ EnumObject.prototype.toJSON = function () {
64
+ return Object.assign({}, this, {});
65
+ };
66
+ Object.defineProperty(EnumObject.prototype, "i18n", {
67
+ get: function () {
68
+ return this.__i18n || general_1.default.getDefault(DEFAULT_I18N_KEY) || i18n;
69
+ },
70
+ enumerable: false,
71
+ configurable: true
72
+ });
73
+ /** 设置默认的i18n对象 */
74
+ EnumObject.prototype.setI18n = function (i18n) {
75
+ this.__i18n = i18n;
76
+ };
77
+ /** 设置默认的i18n对象 */
78
+ EnumObject.setDefaultI18n = function (i18n) {
79
+ general_1.default.setDefault(DEFAULT_I18N_KEY, i18n);
80
+ };
81
+ return EnumObject;
82
+ }());
83
+ exports.EnumObject = EnumObject;
84
+ //# sourceMappingURL=enum-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum-object.js","sourceRoot":"","sources":["../../src/common/enum-object.ts"],"names":[],"mappings":";;;;AAAA,mEAAgC;AAKhC,IAAM,gBAAgB,GAAG,uCAAuC,CAAC;AAEjE,IAAM,IAAI,GAAG;IACX,CAAC,EAAE,UAAC,GAAW,EAAE,OAAoB;QACnC,OAAO,UAAG,GAAG,CAAE,CAAC;IAClB,CAAC;CACF,CAAC;AAsBF;IAsDE,oBAAY,OAA2B;QAAvC,iBAeC;QAlED,QAAQ;QACA,aAAQ,GAAoC,EAAE,CAAC;QACvD,UAAU;QACF,oBAAe,GAA2B,EAAE,CAAC;QAiDnD,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;SAC5B;QAED,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAW,CAAC;QAElC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YACjD,4BAA4B;YAC5B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAE,KAAK,GAAG,EAAE;gBAC5E,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAI,CAAC,eAAe,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IA1DD,YAAY;IACZ,qCAAgB,GAAhB;QAAA,iBAYC;QAXC,IAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAChD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxB,GAAG,KAAA;gBACH,KAAK,OAAA;aACN,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,mBAAmB;IACnB,4BAAO,GAAP,UAAQ,GAAW;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAQ,IAAI,CAAC,UAAU,cAAI,GAAG,CAAE,CAAC,CAAC;IACvD,CAAC;IAED,qBAAqB;IACrB,iCAAY,GAAZ,UAAa,KAAsB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAQ,IAAI,CAAC,UAAU,cAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAE,CAAC,CAAC;IACtE,CAAC;IAED,kBAAkB;IAClB,6BAAQ,GAAR,UAAS,GAAW;QAClB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;IACtB,2BAAM,GAAN,UAAO,KAAsB;QAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,UAAG,KAAK,CAAE,CAAC,CAAC;IACvD,CAAC;IAED,2BAAM,GAAN;QACE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,sBAAI,4BAAI;aAAR;YACE,OAAO,IAAI,CAAC,MAAM,IAAI,iBAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC;QACrE,CAAC;;;OAAA;IAmBD,kBAAkB;IAClB,4BAAO,GAAP,UAAQ,IAA4B;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,kBAAkB;IACX,yBAAc,GAArB,UAAsB,IAA4B;QAChD,iBAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IACH,iBAAC;AAAD,CAAC,AAhFD,IAgFC;AAhFY,gCAAU"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="node" />
2
+ import { Stream } from 'stream';
3
+ import { IGeneralOptionsWithT, IGeneralResult, IGenerateRandomStringParams } from '../interfaces/common/general';
4
+ declare const _default: {
5
+ /** 获取全局 */
6
+ getGlobal(): Object;
7
+ /** 设置默认值 */
8
+ setDefault<T>(key: string, value: T): void;
9
+ /** 获取默认值 */
10
+ getDefault<T_1>(key: string): T_1;
11
+ /** 获取有效值 */
12
+ getValidValue(inputValue: number, minValue: number, maxValue: number): number;
13
+ /** 获取md5 */
14
+ md5(value: string | Buffer | Stream): string;
15
+ /** 生成安全的随机字符串 */
16
+ generateSecureRandom(bytes?: number): string;
17
+ /** 获取时间的字符串 */
18
+ getUtcTimeString(dateTime?: Date | null): string;
19
+ /** 生成随机的字符串 */
20
+ generateRandomString(options?: IGenerateRandomStringParams): string;
21
+ /** 生成击穿缓存参数 */
22
+ generateIjt(): string;
23
+ /** 缓存抓取 */
24
+ cacheFetch<T_2 extends IGeneralResult>(options?: IGeneralOptionsWithT<T_2>): Promise<T_2 | null>;
25
+ /** 版本比较 */
26
+ compareVersion(v01: string, v02: string): 0 | 1 | -1;
27
+ };
28
+ export default _default;