dev4fun-utils 0.0.1 → 0.0.2
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/README.md +0 -98
- package/dist/common/base/base.exception.d.ts +16 -0
- package/dist/common/base/base.exception.js +24 -0
- package/dist/common/base/base.exception.js.map +1 -0
- package/dist/common/common.module.d.ts +2 -0
- package/dist/common/common.module.js +21 -0
- package/dist/common/common.module.js.map +1 -0
- package/dist/common/decorators/common.decorator.d.ts +7 -0
- package/dist/common/decorators/common.decorator.js +94 -0
- package/dist/common/decorators/common.decorator.js.map +1 -0
- package/dist/common/dto/id.dto.d.ts +3 -0
- package/dist/common/dto/id.dto.js +31 -0
- package/dist/common/dto/id.dto.js.map +1 -0
- package/dist/common/dto/page.dto.d.ts +6 -0
- package/dist/common/dto/page.dto.js +69 -0
- package/dist/common/dto/page.dto.js.map +1 -0
- package/dist/common/dto/time.dto.d.ts +4 -0
- package/dist/common/dto/time.dto.js +43 -0
- package/dist/common/dto/time.dto.js.map +1 -0
- package/dist/common/struct/batch.struct.d.ts +7 -0
- package/dist/common/struct/batch.struct.js +37 -0
- package/dist/common/struct/batch.struct.js.map +1 -0
- package/dist/common/struct/list/batch.struct.d.ts +7 -0
- package/dist/common/struct/list/batch.struct.js +41 -0
- package/dist/common/struct/list/batch.struct.js.map +1 -0
- package/dist/common/struct/list/queue.struct.d.ts +10 -0
- package/dist/common/struct/list/queue.struct.js +39 -0
- package/dist/common/struct/list/queue.struct.js.map +1 -0
- package/dist/common/struct/list/stack.struct.d.ts +9 -0
- package/dist/common/struct/list/stack.struct.js +36 -0
- package/dist/common/struct/list/stack.struct.js.map +1 -0
- package/dist/common/struct/list/tree.struct.d.ts +15 -0
- package/dist/common/struct/list/tree.struct.js +39 -0
- package/dist/common/struct/list/tree.struct.js.map +1 -0
- package/dist/common/struct/page.struct.d.ts +17 -0
- package/dist/common/struct/page.struct.js +96 -0
- package/dist/common/struct/page.struct.js.map +1 -0
- package/dist/common/struct/queue.struct.d.ts +10 -0
- package/dist/common/struct/queue.struct.js +33 -0
- package/dist/common/struct/queue.struct.js.map +1 -0
- package/dist/common/struct/stack.struct.d.ts +9 -0
- package/dist/common/struct/stack.struct.js +32 -0
- package/dist/common/struct/stack.struct.js.map +1 -0
- package/dist/common/utils/method.util.d.ts +6 -0
- package/dist/common/utils/method.util.js +38 -0
- package/dist/common/utils/method.util.js.map +1 -0
- package/dist/common/utils/number.util.d.ts +5 -0
- package/dist/common/utils/number.util.js +16 -0
- package/dist/common/utils/number.util.js.map +1 -0
- package/dist/common/utils/string.util.d.ts +5 -0
- package/dist/common/utils/string.util.js +17 -0
- package/dist/common/utils/string.util.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -15
package/README.md
CHANGED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
|
|
6
|
-
[circleci-url]: https://circleci.com/gh/nestjs/nest
|
|
7
|
-
|
|
8
|
-
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
|
|
9
|
-
<p align="center">
|
|
10
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
|
11
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
|
12
|
-
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
|
|
13
|
-
<a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
|
|
14
|
-
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
|
|
15
|
-
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
|
16
|
-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
|
17
|
-
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
|
|
18
|
-
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
|
|
19
|
-
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
|
|
20
|
-
</p>
|
|
21
|
-
<!--[](https://opencollective.com/nest#backer)
|
|
22
|
-
[](https://opencollective.com/nest#sponsor)-->
|
|
23
|
-
|
|
24
|
-
## Description
|
|
25
|
-
|
|
26
|
-
[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
|
|
27
|
-
|
|
28
|
-
## Project setup
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
$ yarn install
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Compile and run the project
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
# development
|
|
38
|
-
$ yarn run start
|
|
39
|
-
|
|
40
|
-
# watch mode
|
|
41
|
-
$ yarn run start:dev
|
|
42
|
-
|
|
43
|
-
# production mode
|
|
44
|
-
$ yarn run start:prod
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## Run tests
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# unit tests
|
|
51
|
-
$ yarn run test
|
|
52
|
-
|
|
53
|
-
# e2e tests
|
|
54
|
-
$ yarn run test:e2e
|
|
55
|
-
|
|
56
|
-
# test coverage
|
|
57
|
-
$ yarn run test:cov
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Deployment
|
|
61
|
-
|
|
62
|
-
When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
|
|
63
|
-
|
|
64
|
-
If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
$ yarn install -g @nestjs/mau
|
|
68
|
-
$ mau deploy
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
|
|
72
|
-
|
|
73
|
-
## Resources
|
|
74
|
-
|
|
75
|
-
Check out a few resources that may come in handy when working with NestJS:
|
|
76
|
-
|
|
77
|
-
- Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
|
|
78
|
-
- For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
|
|
79
|
-
- To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
|
|
80
|
-
- Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
|
|
81
|
-
- Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
|
|
82
|
-
- Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
|
|
83
|
-
- To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
|
|
84
|
-
- Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
|
|
85
|
-
|
|
86
|
-
## Support
|
|
87
|
-
|
|
88
|
-
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
|
89
|
-
|
|
90
|
-
## Stay in touch
|
|
91
|
-
|
|
92
|
-
- Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
|
|
93
|
-
- Website - [https://nestjs.com](https://nestjs.com/)
|
|
94
|
-
- Twitter - [@nestframework](https://twitter.com/nestframework)
|
|
95
|
-
|
|
96
|
-
## License
|
|
97
|
-
|
|
98
|
-
Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { HttpException } from "@nestjs/common";
|
|
2
|
+
export declare class BaseException extends HttpException {
|
|
3
|
+
constructor(message: string, statusCode: number, code: string);
|
|
4
|
+
code: string;
|
|
5
|
+
static NOT_FOUND: BaseException;
|
|
6
|
+
static BAD_REQUEST: BaseException;
|
|
7
|
+
static UNAUTHORIZED: BaseException;
|
|
8
|
+
static FORBIDDEN: BaseException;
|
|
9
|
+
static INTERNAL_SERVER_ERROR: BaseException;
|
|
10
|
+
static SERVICE_UNAVAILABLE: BaseException;
|
|
11
|
+
static GATEWAY_TIMEOUT: BaseException;
|
|
12
|
+
static PRECONDITION_FAILED: BaseException;
|
|
13
|
+
static PAYLOAD_TOO_LARGE: BaseException;
|
|
14
|
+
static UNPROCESSABLE_ENTITY: BaseException;
|
|
15
|
+
static TOO_MANY_REQUESTS: BaseException;
|
|
16
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseException = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
class BaseException extends common_1.HttpException {
|
|
6
|
+
constructor(message, statusCode, code) {
|
|
7
|
+
super(message, statusCode);
|
|
8
|
+
this.code = code;
|
|
9
|
+
}
|
|
10
|
+
code;
|
|
11
|
+
static NOT_FOUND = new BaseException('Not found', 404, 'NOT_FOUND');
|
|
12
|
+
static BAD_REQUEST = new BaseException('Bad request', 400, 'BAD_REQUEST');
|
|
13
|
+
static UNAUTHORIZED = new BaseException('Unauthorized', 401, 'UNAUTHORIZED');
|
|
14
|
+
static FORBIDDEN = new BaseException('Forbidden', 403, 'FORBIDDEN');
|
|
15
|
+
static INTERNAL_SERVER_ERROR = new BaseException('Internal server error', 500, 'INTERNAL_SERVER_ERROR');
|
|
16
|
+
static SERVICE_UNAVAILABLE = new BaseException('Service unavailable', 503, 'SERVICE_UNAVAILABLE');
|
|
17
|
+
static GATEWAY_TIMEOUT = new BaseException('Gateway timeout', 504, 'GATEWAY_TIMEOUT');
|
|
18
|
+
static PRECONDITION_FAILED = new BaseException('Precondition failed', 412, 'PRECONDITION_FAILED');
|
|
19
|
+
static PAYLOAD_TOO_LARGE = new BaseException('Payload too large', 413, 'PAYLOAD_TOO_LARGE');
|
|
20
|
+
static UNPROCESSABLE_ENTITY = new BaseException('Unprocessable entity', 422, 'UNPROCESSABLE_ENTITY');
|
|
21
|
+
static TOO_MANY_REQUESTS = new BaseException('Too many requests', 429, 'TOO_MANY_REQUESTS');
|
|
22
|
+
}
|
|
23
|
+
exports.BaseException = BaseException;
|
|
24
|
+
//# sourceMappingURL=base.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.exception.js","sourceRoot":"","sources":["../../../src/common/base/base.exception.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAE/C,MAAa,aAAc,SAAQ,sBAAa;IAC5C,YAAY,OAAe,EAAE,UAAkB,EAAE,IAAY;QACzD,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,CAAS;IACb,MAAM,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,aAAa,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,cAAc,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IAC7E,MAAM,CAAC,SAAS,GAAG,IAAI,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,CAAC,qBAAqB,GAAG,IAAI,aAAa,CAAC,uBAAuB,EAAE,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACxG,MAAM,CAAC,mBAAmB,GAAG,IAAI,aAAa,CAAC,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAClG,MAAM,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;IACtF,MAAM,CAAC,mBAAmB,GAAG,IAAI,aAAa,CAAC,qBAAqB,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC;IAClG,MAAM,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC5F,MAAM,CAAC,oBAAoB,GAAG,IAAI,aAAa,CAAC,sBAAsB,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;IACrG,MAAM,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,mBAAmB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;;AAhBhG,sCAiBC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.CommonModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let CommonModule = class CommonModule {
|
|
12
|
+
};
|
|
13
|
+
exports.CommonModule = CommonModule;
|
|
14
|
+
exports.CommonModule = CommonModule = __decorate([
|
|
15
|
+
(0, common_1.Module)({
|
|
16
|
+
imports: [],
|
|
17
|
+
exports: [],
|
|
18
|
+
providers: [],
|
|
19
|
+
})
|
|
20
|
+
], CommonModule);
|
|
21
|
+
//# sourceMappingURL=common.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.module.js","sourceRoot":"","sources":["../../src/common/common.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAOjC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IALxB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;KAChB,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
export declare function Retry(retries?: number, delay?: number): MethodDecorator;
|
|
3
|
+
export declare function Timeout(timeout?: number): MethodDecorator;
|
|
4
|
+
export declare function Cache(ttl?: number): MethodDecorator;
|
|
5
|
+
export declare function Watch(): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
|
|
6
|
+
export declare function NonNull(target: any, propertyKey: string | symbol, index: number): void;
|
|
7
|
+
export declare function Validate(): MethodDecorator;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Retry = Retry;
|
|
4
|
+
exports.Timeout = Timeout;
|
|
5
|
+
exports.Cache = Cache;
|
|
6
|
+
exports.Watch = Watch;
|
|
7
|
+
exports.NonNull = NonNull;
|
|
8
|
+
exports.Validate = Validate;
|
|
9
|
+
const method_util_1 = require("../utils/method.util");
|
|
10
|
+
require("reflect-metadata");
|
|
11
|
+
function Retry(retries = 3, delay = 1000) {
|
|
12
|
+
return function (target, propertyKey, descriptor) {
|
|
13
|
+
const originalMethod = descriptor.value;
|
|
14
|
+
descriptor.value = async function (...args) {
|
|
15
|
+
let lastError = null;
|
|
16
|
+
for (let i = 0; i < retries; i++) {
|
|
17
|
+
try {
|
|
18
|
+
return originalMethod.apply(this, args);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
lastError = error;
|
|
22
|
+
if (target['logger'] && target['logger'].error) {
|
|
23
|
+
target['logger'].error(`Error in ${propertyKey}: ${error.message} on attempt ${i + 1} of ${retries}`);
|
|
24
|
+
}
|
|
25
|
+
if (delay > 0) {
|
|
26
|
+
await method_util_1.MethodUtil.delay(delay);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw lastError;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function Timeout(timeout = 10000) {
|
|
35
|
+
return function (target, propertyKey, descriptor) {
|
|
36
|
+
const originalMethod = descriptor.value;
|
|
37
|
+
descriptor.value = async function (...args) {
|
|
38
|
+
return await method_util_1.MethodUtil.executeWithTimeout(originalMethod.apply(this, args), timeout);
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function Cache(ttl = 60000) {
|
|
43
|
+
return function (target, propertyKey, descriptor) {
|
|
44
|
+
const cache = new Map();
|
|
45
|
+
descriptor.value = async function (...args) {
|
|
46
|
+
const key = JSON.stringify(args);
|
|
47
|
+
if (cache.has(key)) {
|
|
48
|
+
return cache.get(key);
|
|
49
|
+
}
|
|
50
|
+
const result = await descriptor.value.apply(this, args);
|
|
51
|
+
cache.set(key, result);
|
|
52
|
+
if (ttl > 0) {
|
|
53
|
+
setTimeout(() => {
|
|
54
|
+
cache.delete(key);
|
|
55
|
+
}, ttl);
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function Watch() {
|
|
62
|
+
return function (target, propertyKey, descriptor) {
|
|
63
|
+
const originalMethod = descriptor.value;
|
|
64
|
+
descriptor.value = async function (...args) {
|
|
65
|
+
const result = await originalMethod.apply(this, args);
|
|
66
|
+
if (target['logger'] && target['logger'].info) {
|
|
67
|
+
target['logger'].info(`${propertyKey} called with args: ${JSON.stringify(args)} and result: ${JSON.stringify(result)}`);
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function NonNull(target, propertyKey, index) {
|
|
74
|
+
Reflect.defineMetadata('nonNull', {
|
|
75
|
+
index: index,
|
|
76
|
+
type: 'nonNull',
|
|
77
|
+
}, target, propertyKey);
|
|
78
|
+
}
|
|
79
|
+
function Validate() {
|
|
80
|
+
return function (target, propertyKey, descriptor) {
|
|
81
|
+
const originalMethod = descriptor.value;
|
|
82
|
+
descriptor.value = async function (...args) {
|
|
83
|
+
const result = await originalMethod.apply(this, args);
|
|
84
|
+
const nonNulls = Reflect.getMetadata('nonNull', target, propertyKey);
|
|
85
|
+
for (const nonNull of nonNulls) {
|
|
86
|
+
if (result[nonNull.index] === null || result[nonNull.index] === undefined) {
|
|
87
|
+
throw new Error('Parameter is null or undefined of type ' + nonNull.type + ' at index ' + nonNull.index);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=common.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/common.decorator.ts"],"names":[],"mappings":";;AAGA,sBAqBC;AAED,0BAOC;AAED,sBAkBC;AACD,sBAWC;AAED,0BAMC;AAED,4BAcC;AAxFD,sDAAkD;AAClD,4BAA0B;AAC1B,SAAgB,KAAK,CAAC,UAAkB,CAAC,EAAE,QAAgB,IAAI;IAC3D,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,IAAI,SAAS,GAAiB,IAAI,CAAC;YACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,SAAS,GAAG,KAAc,CAAC;oBAC3B,IAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;wBAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,YAAY,WAAW,KAAK,KAAK,CAAC,OAAO,eAAe,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;oBAC1G,CAAC;oBACD,IAAG,KAAK,GAAG,CAAC,EAAE,CAAC;wBACX,MAAM,wBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;YACL,CAAC;YACD,MAAM,SAAS,CAAC;QACpB,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,OAAO,CAAC,UAAkB,KAAK;IAC3C,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,OAAO,MAAM,wBAAU,CAAC,kBAAkB,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1F,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,KAAK,CAAC,MAAc,KAAK;IACrC,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;QACrC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACvB,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACV,UAAU,CAAC,GAAG,EAAE;oBACZ,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtB,CAAC,EAAE,GAAG,CAAC,CAAC;YACZ,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AACD,SAAgB,KAAK;IACjB,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,IAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,WAAW,sBAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5H,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC;AAED,SAAgB,OAAO,CAAC,MAAW,EAAE,WAA4B,EAAE,KAAa;IAE5E,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE;QAC9B,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,SAAS;KAClB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAC5B,CAAC;AAED,SAAgB,QAAQ;IACpB,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QACxC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAW;YAC7C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAsC,CAAC;YAC1G,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,IAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;oBACvE,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC7G,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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.IdDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
const class_validator_2 = require("class-validator");
|
|
17
|
+
class IdDto {
|
|
18
|
+
id;
|
|
19
|
+
}
|
|
20
|
+
exports.IdDto = IdDto;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsNumber)(),
|
|
23
|
+
(0, class_validator_2.Min)(0),
|
|
24
|
+
(0, swagger_1.ApiProperty)({
|
|
25
|
+
description: 'The id',
|
|
26
|
+
example: 1,
|
|
27
|
+
}),
|
|
28
|
+
(0, class_transformer_1.Transform)(({ value }) => Number(value)),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], IdDto.prototype, "id", void 0);
|
|
31
|
+
//# sourceMappingURL=id.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.dto.js","sourceRoot":"","sources":["../../../src/common/dto/id.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAA8C;AAC9C,qDAA2C;AAC3C,qDAAsC;AAEtC,MAAa,KAAK;IAQd,EAAE,CAAS;CACd;AATD,sBASC;AADG;IAPC,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,CAAC;KACb,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;iCAC7B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
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.PageDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
const class_validator_2 = require("class-validator");
|
|
17
|
+
class PageDto {
|
|
18
|
+
page;
|
|
19
|
+
size;
|
|
20
|
+
search;
|
|
21
|
+
sort;
|
|
22
|
+
}
|
|
23
|
+
exports.PageDto = PageDto;
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_validator_1.IsNumber)(),
|
|
26
|
+
(0, class_validator_2.Min)(0),
|
|
27
|
+
(0, swagger_1.ApiProperty)({
|
|
28
|
+
description: 'The page number',
|
|
29
|
+
example: 1,
|
|
30
|
+
}),
|
|
31
|
+
__metadata("design:type", Number)
|
|
32
|
+
], PageDto.prototype, "page", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, class_validator_1.IsNumber)(),
|
|
35
|
+
(0, class_validator_2.Min)(1),
|
|
36
|
+
(0, class_validator_1.Max)(100),
|
|
37
|
+
(0, swagger_1.ApiProperty)({
|
|
38
|
+
description: 'The page size',
|
|
39
|
+
example: 10,
|
|
40
|
+
}),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], PageDto.prototype, "size", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, class_validator_1.IsString)(),
|
|
45
|
+
(0, class_validator_1.IsOptional)(),
|
|
46
|
+
(0, swagger_1.ApiProperty)({
|
|
47
|
+
description: 'The search query',
|
|
48
|
+
example: 'search',
|
|
49
|
+
}),
|
|
50
|
+
(0, class_transformer_1.Transform)(({ value }) => value ? value.toLowerCase() : null),
|
|
51
|
+
__metadata("design:type", String)
|
|
52
|
+
], PageDto.prototype, "search", void 0);
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, class_validator_1.IsString)(),
|
|
55
|
+
(0, class_validator_1.IsOptional)(),
|
|
56
|
+
(0, swagger_1.ApiProperty)({
|
|
57
|
+
description: 'The sort order',
|
|
58
|
+
example: 'createdAt:DESC',
|
|
59
|
+
}),
|
|
60
|
+
(0, class_transformer_1.Transform)(({ value }) => value ? value.split(',').reduce((acc, curr) => {
|
|
61
|
+
let split = curr.split(':');
|
|
62
|
+
if (split.length === 2) {
|
|
63
|
+
acc[split[0]] = split[1];
|
|
64
|
+
}
|
|
65
|
+
return acc;
|
|
66
|
+
}, {}) : null),
|
|
67
|
+
__metadata("design:type", Object)
|
|
68
|
+
], PageDto.prototype, "sort", void 0);
|
|
69
|
+
//# sourceMappingURL=page.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page.dto.js","sourceRoot":"","sources":["../../../src/common/dto/page.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAA8C;AAC9C,qDAAsE;AACtE,qDAAsC;AAItC,MAAa,OAAO;IAOhB,IAAI,CAAS;IASb,IAAI,CAAS;IASb,MAAM,CAAU;IAehB,IAAI,CAAyC;CAChD;AAzCD,0BAyCC;AAlCG;IANC,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,CAAC;KACb,CAAC;;qCACW;AASb;IAPC,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,GAAG,CAAC;IACR,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,EAAE;KACd,CAAC;;qCACW;AASb;IAPC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;uCAC7C;AAehB;IAbC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,gBAAgB;KAC5B,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACpE,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAmB,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;qCAC+B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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.TimeDto = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const class_validator_1 = require("class-validator");
|
|
16
|
+
class TimeDto {
|
|
17
|
+
startDate;
|
|
18
|
+
endDate;
|
|
19
|
+
}
|
|
20
|
+
exports.TimeDto = TimeDto;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, class_validator_1.IsDate)(),
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
(0, swagger_1.ApiProperty)({
|
|
25
|
+
description: 'The start date',
|
|
26
|
+
example: Date.now(),
|
|
27
|
+
type: Number,
|
|
28
|
+
}),
|
|
29
|
+
(0, class_transformer_1.Transform)(({ value }) => value ? new Date(Number(value)) : null),
|
|
30
|
+
__metadata("design:type", Object)
|
|
31
|
+
], TimeDto.prototype, "startDate", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, class_validator_1.IsDate)(),
|
|
34
|
+
(0, class_validator_1.IsOptional)(),
|
|
35
|
+
(0, swagger_1.ApiProperty)({
|
|
36
|
+
description: 'The end date',
|
|
37
|
+
example: Date.now(),
|
|
38
|
+
type: Number,
|
|
39
|
+
}),
|
|
40
|
+
(0, class_transformer_1.Transform)(({ value }) => value ? new Date(Number(value)) : null),
|
|
41
|
+
__metadata("design:type", Object)
|
|
42
|
+
], TimeDto.prototype, "endDate", void 0);
|
|
43
|
+
//# sourceMappingURL=time.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.dto.js","sourceRoot":"","sources":["../../../src/common/dto/time.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,yDAA8C;AAC9C,qDAAqD;AAErD,MAAa,OAAO;IAShB,SAAS,CAAe;IAUxB,OAAO,CAAe;CACzB;AApBD,0BAoBC;AAXG;IARC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,IAAI,EAAE,MAAM;KACf,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;0CACzC;AAUxB;IARC,IAAA,wBAAM,GAAE;IACR,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,IAAI,EAAE,MAAM;KACf,CAAC;IACD,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;;wCAC3C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class Batch<T> extends Array<T> {
|
|
2
|
+
private size;
|
|
3
|
+
constructor(items: T[], size?: number);
|
|
4
|
+
static fromArray<T>(items: T[], size?: number): Batch<T>;
|
|
5
|
+
private chunk;
|
|
6
|
+
runAsync(callback: (item: T[]) => Promise<void>, runParallel?: boolean): Promise<this>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Batch = void 0;
|
|
4
|
+
class Batch extends Array {
|
|
5
|
+
size;
|
|
6
|
+
constructor(items, size = 10) {
|
|
7
|
+
super(...items);
|
|
8
|
+
this.size = size;
|
|
9
|
+
}
|
|
10
|
+
static fromArray(items, size = 10) {
|
|
11
|
+
return new Batch(items, size);
|
|
12
|
+
}
|
|
13
|
+
chunk() {
|
|
14
|
+
return this.reduce((acc, item, index) => {
|
|
15
|
+
const chunkIndex = Math.floor(index / this.size);
|
|
16
|
+
if (!acc[chunkIndex]) {
|
|
17
|
+
acc[chunkIndex] = [];
|
|
18
|
+
}
|
|
19
|
+
acc[chunkIndex].push(item);
|
|
20
|
+
return acc;
|
|
21
|
+
}, []);
|
|
22
|
+
}
|
|
23
|
+
async runAsync(callback, runParallel = false) {
|
|
24
|
+
const chunks = this.chunk();
|
|
25
|
+
if (runParallel) {
|
|
26
|
+
await Promise.all(chunks.map(async (chunk) => callback(chunk)));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
for (const chunk of chunks) {
|
|
30
|
+
await callback(chunk);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.Batch = Batch;
|
|
37
|
+
//# sourceMappingURL=batch.struct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.struct.js","sourceRoot":"","sources":["../../../src/common/struct/batch.struct.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAS,SAAQ,KAAQ;IAC1B,IAAI,CAAS;IACrB,YAAY,KAAU,EAAE,OAAe,EAAE;QACrC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAU,EAAE,OAAe,EAAE;QAC7C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAW,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAsC,EAAC,cAAuB,KAAK;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AAjCD,sBAiCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class Batch<T> extends Array<T> {
|
|
2
|
+
private size;
|
|
3
|
+
constructor(items: T[], size?: number);
|
|
4
|
+
static fromArray<T>(items: T[], size?: number): Batch<T>;
|
|
5
|
+
private chunk;
|
|
6
|
+
runAsync(callback: (item: T[], index: number) => Promise<void>, runParallel?: boolean, delay?: number): Promise<this>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Batch = void 0;
|
|
4
|
+
const method_util_1 = require("../../utils/method.util");
|
|
5
|
+
class Batch extends Array {
|
|
6
|
+
size;
|
|
7
|
+
constructor(items, size = 10) {
|
|
8
|
+
super(...items);
|
|
9
|
+
this.size = size;
|
|
10
|
+
}
|
|
11
|
+
static fromArray(items, size = 10) {
|
|
12
|
+
return new Batch(items, size);
|
|
13
|
+
}
|
|
14
|
+
chunk() {
|
|
15
|
+
return this.reduce((acc, item, index) => {
|
|
16
|
+
const chunkIndex = Math.floor(index / this.size);
|
|
17
|
+
if (!acc[chunkIndex]) {
|
|
18
|
+
acc[chunkIndex] = [];
|
|
19
|
+
}
|
|
20
|
+
acc[chunkIndex].push(item);
|
|
21
|
+
return acc;
|
|
22
|
+
}, []);
|
|
23
|
+
}
|
|
24
|
+
async runAsync(callback, runParallel = false, delay = 0) {
|
|
25
|
+
const chunks = this.chunk();
|
|
26
|
+
if (runParallel) {
|
|
27
|
+
await Promise.all(chunks.map(async (chunk, index) => callback(chunk, index)));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
for (const [index, chunk] of chunks.entries()) {
|
|
31
|
+
await callback(chunk, index);
|
|
32
|
+
if (delay > 0) {
|
|
33
|
+
await method_util_1.MethodUtil.delay(delay);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return this;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Batch = Batch;
|
|
41
|
+
//# sourceMappingURL=batch.struct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.struct.js","sourceRoot":"","sources":["../../../../src/common/struct/list/batch.struct.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAErD,MAAa,KAAS,SAAQ,KAAQ;IAC1B,IAAI,CAAS;IACrB,YAAY,KAAU,EAAE,OAAe,EAAE;QACrC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAU,EAAE,OAAe,EAAE;QAC7C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACnB,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;YACD,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAW,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoD,EAAC,cAAuB,KAAK,EAAC,QAAgB,CAAC;QAC9G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACJ,KAAK,MAAM,CAAC,KAAK,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,MAAM,QAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;oBACZ,MAAM,wBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ;AApCD,sBAoCC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class Queue<T> extends Array<T> {
|
|
2
|
+
constructor(items: T[]);
|
|
3
|
+
static fromArray<T>(items: T[]): Queue<T>;
|
|
4
|
+
enqueue(item: T): void;
|
|
5
|
+
dequeue(): T | undefined;
|
|
6
|
+
peek(): T;
|
|
7
|
+
isEmpty(): boolean;
|
|
8
|
+
size(): number;
|
|
9
|
+
runAsync(callback: (item: T) => Promise<void>, delay?: number): Promise<this>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Queue = void 0;
|
|
4
|
+
const method_util_1 = require("../../utils/method.util");
|
|
5
|
+
class Queue extends Array {
|
|
6
|
+
constructor(items) {
|
|
7
|
+
super(...items);
|
|
8
|
+
}
|
|
9
|
+
static fromArray(items) {
|
|
10
|
+
return new Queue(items);
|
|
11
|
+
}
|
|
12
|
+
enqueue(item) {
|
|
13
|
+
this.push(item);
|
|
14
|
+
}
|
|
15
|
+
dequeue() {
|
|
16
|
+
return this.shift();
|
|
17
|
+
}
|
|
18
|
+
peek() {
|
|
19
|
+
return this[0];
|
|
20
|
+
}
|
|
21
|
+
isEmpty() {
|
|
22
|
+
return this.length === 0;
|
|
23
|
+
}
|
|
24
|
+
size() {
|
|
25
|
+
return this.length;
|
|
26
|
+
}
|
|
27
|
+
async runAsync(callback, delay = 0) {
|
|
28
|
+
const items = [...this];
|
|
29
|
+
while (items.length > 0) {
|
|
30
|
+
await callback(items.shift());
|
|
31
|
+
if (delay > 0) {
|
|
32
|
+
await method_util_1.MethodUtil.delay(delay);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Queue = Queue;
|
|
39
|
+
//# sourceMappingURL=queue.struct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.struct.js","sourceRoot":"","sources":["../../../../src/common/struct/list/queue.struct.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAGrD,MAAa,KAAS,SAAQ,KAAQ;IAClC,YAAY,KAAU;QAClB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,SAAS,CAAI,KAAU;QAC1B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,CAAC,IAAO;QACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAoC,EAAC,QAAgB,CAAC;QACjE,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACxB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAO,CAAC,CAAC;YACnC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACZ,MAAM,wBAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CAGJ;AAzCD,sBAyCC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class Stack<T> extends Array<T> {
|
|
2
|
+
constructor(items: T[]);
|
|
3
|
+
static fromArray<T>(items: T[]): Stack<T>;
|
|
4
|
+
top(): T;
|
|
5
|
+
bottom(): T;
|
|
6
|
+
isEmpty(): boolean;
|
|
7
|
+
size(): number;
|
|
8
|
+
runAsync(callback: (item: T) => Promise<void>, delay?: number): Promise<this>;
|
|
9
|
+
}
|