@koalarx/nest 1.10.1 → 1.11.0
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/core/health-check/health-check.controller.d.ts +5 -0
- package/core/health-check/health-check.controller.js +27 -0
- package/core/health-check/health-check.module.d.ts +2 -0
- package/core/health-check/health-check.module.js +18 -0
- package/core/koala-app.js +1 -0
- package/core/koala-nest.module.d.ts +1 -0
- package/core/koala-nest.module.js +3 -0
- package/filters/global-exception.filter.js +3 -0
- package/package.json +1 -1
- package/tsconfig.lib.tsbuildinfo +1 -1
- package/core/backgroud-services/cron-service/cron-job.handler.spec.d.ts +0 -8
- package/core/backgroud-services/cron-service/cron-job.handler.spec.js +0 -33
- package/core/backgroud-services/event-service/event-queue.spec.d.ts +0 -1
- package/core/backgroud-services/event-service/event-queue.spec.js +0 -34
- package/core/database/entity.decorator.spec.d.ts +0 -17
- package/core/database/entity.decorator.spec.js +0 -102
- package/core/request-overflow/request-result.spec.d.ts +0 -1
- package/core/request-overflow/request-result.spec.js +0 -21
- package/core/utils/list.spec.d.ts +0 -1
- package/core/utils/list.spec.js +0 -60
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { CronJobHandlerBase, CronJobResponse } from './cron-job.handler.base';
|
|
2
|
-
export declare class CronJobTest extends CronJobHandlerBase {
|
|
3
|
-
constructor();
|
|
4
|
-
static isCalled(): Promise<CronJobResponse>;
|
|
5
|
-
protected run(): Promise<CronJobResponse>;
|
|
6
|
-
protected isActive(): Promise<boolean>;
|
|
7
|
-
protected defineTimeInMinutes(): number;
|
|
8
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CronJobTest = void 0;
|
|
4
|
-
const delay_1 = require("@koalarx/utils/operators/delay");
|
|
5
|
-
const vitest_1 = require("vitest");
|
|
6
|
-
const fake_logging_service_1 = require("../../../test/services/fake-logging.service");
|
|
7
|
-
const fake_red_lock_service_1 = require("../../../test/services/fake-red-lock.service");
|
|
8
|
-
const request_result_1 = require("../../request-overflow/request-result");
|
|
9
|
-
const cron_job_handler_base_1 = require("./cron-job.handler.base");
|
|
10
|
-
class CronJobTest extends cron_job_handler_base_1.CronJobHandlerBase {
|
|
11
|
-
constructor() {
|
|
12
|
-
super(new fake_red_lock_service_1.FakeRedLockService(), new fake_logging_service_1.FakeLoggingService());
|
|
13
|
-
}
|
|
14
|
-
static async isCalled() {
|
|
15
|
-
return (0, request_result_1.ok)(null);
|
|
16
|
-
}
|
|
17
|
-
run() {
|
|
18
|
-
return CronJobTest.isCalled();
|
|
19
|
-
}
|
|
20
|
-
async isActive() {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
defineTimeInMinutes() {
|
|
24
|
-
return 0.01;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
exports.CronJobTest = CronJobTest;
|
|
28
|
-
test('cron job', async () => {
|
|
29
|
-
const callbackSpy = vitest_1.vi.spyOn(CronJobTest, 'isCalled');
|
|
30
|
-
new CronJobTest().start();
|
|
31
|
-
await (0, delay_1.klDelay)(100);
|
|
32
|
-
expect(callbackSpy).toHaveBeenCalled();
|
|
33
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const vitest_1 = require("vitest");
|
|
4
|
-
const event_class_1 = require("./event-class");
|
|
5
|
-
const event_handler_base_1 = require("./event-handler.base");
|
|
6
|
-
const event_job_1 = require("./event-job");
|
|
7
|
-
const event_queue_1 = require("./event-queue");
|
|
8
|
-
class CustomEvent extends event_class_1.EventClass {
|
|
9
|
-
}
|
|
10
|
-
class CustomEventHandler extends event_handler_base_1.EventHandlerBase {
|
|
11
|
-
static async isCalled() {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
async handleEvent(event) {
|
|
15
|
-
await CustomEventHandler.isCalled();
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
class CustomEventJob extends event_job_1.EventJob {
|
|
19
|
-
defineHandlers() {
|
|
20
|
-
return [CustomEventHandler];
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
describe('event queue', () => {
|
|
24
|
-
it('should be able to dispatch and listen to events', () => {
|
|
25
|
-
const callbackSpy = vitest_1.vi.spyOn(CustomEventHandler, 'isCalled');
|
|
26
|
-
new CustomEventHandler().setupSubscriptions();
|
|
27
|
-
const jobs = new CustomEventJob();
|
|
28
|
-
jobs.addEvent(new CustomEvent());
|
|
29
|
-
expect(jobs.eventQueue).toHaveLength(1);
|
|
30
|
-
event_queue_1.EventQueue.dispatchEventsForAggregate(jobs._id);
|
|
31
|
-
expect(callbackSpy).toHaveBeenCalled();
|
|
32
|
-
expect(jobs.eventQueue).toHaveLength(0);
|
|
33
|
-
});
|
|
34
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { List } from '../utils/list';
|
|
2
|
-
import { EntityBase } from './entity.base';
|
|
3
|
-
export declare class PersonAddress extends EntityBase<PersonAddress> {
|
|
4
|
-
id: number;
|
|
5
|
-
address: string;
|
|
6
|
-
}
|
|
7
|
-
export declare class PersonPhone extends EntityBase<PersonPhone> {
|
|
8
|
-
id: number;
|
|
9
|
-
phone: string;
|
|
10
|
-
}
|
|
11
|
-
export declare class Person extends EntityBase<Person> {
|
|
12
|
-
id: number;
|
|
13
|
-
name: string;
|
|
14
|
-
phones: List<PersonPhone>;
|
|
15
|
-
address: PersonAddress;
|
|
16
|
-
active: boolean;
|
|
17
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
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.Person = exports.PersonPhone = exports.PersonAddress = void 0;
|
|
13
|
-
const faker_1 = require("@faker-js/faker");
|
|
14
|
-
const auto_mapping_decorator_1 = require("../mapping/auto-mapping.decorator");
|
|
15
|
-
const list_1 = require("../utils/list");
|
|
16
|
-
const entity_base_1 = require("./entity.base");
|
|
17
|
-
const entity_decorator_1 = require("./entity.decorator");
|
|
18
|
-
let PersonAddress = exports.PersonAddress = class PersonAddress extends entity_base_1.EntityBase {
|
|
19
|
-
id;
|
|
20
|
-
address;
|
|
21
|
-
};
|
|
22
|
-
__decorate([
|
|
23
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
24
|
-
__metadata("design:type", Number)
|
|
25
|
-
], PersonAddress.prototype, "id", void 0);
|
|
26
|
-
__decorate([
|
|
27
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
28
|
-
__metadata("design:type", String)
|
|
29
|
-
], PersonAddress.prototype, "address", void 0);
|
|
30
|
-
exports.PersonAddress = PersonAddress = __decorate([
|
|
31
|
-
(0, entity_decorator_1.Entity)()
|
|
32
|
-
], PersonAddress);
|
|
33
|
-
let PersonPhone = exports.PersonPhone = class PersonPhone extends entity_base_1.EntityBase {
|
|
34
|
-
id;
|
|
35
|
-
phone;
|
|
36
|
-
};
|
|
37
|
-
__decorate([
|
|
38
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
39
|
-
__metadata("design:type", Number)
|
|
40
|
-
], PersonPhone.prototype, "id", void 0);
|
|
41
|
-
__decorate([
|
|
42
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
43
|
-
__metadata("design:type", String)
|
|
44
|
-
], PersonPhone.prototype, "phone", void 0);
|
|
45
|
-
exports.PersonPhone = PersonPhone = __decorate([
|
|
46
|
-
(0, entity_decorator_1.Entity)()
|
|
47
|
-
], PersonPhone);
|
|
48
|
-
let Person = exports.Person = class Person extends entity_base_1.EntityBase {
|
|
49
|
-
id;
|
|
50
|
-
name;
|
|
51
|
-
phones = new list_1.List(PersonPhone);
|
|
52
|
-
address;
|
|
53
|
-
active;
|
|
54
|
-
};
|
|
55
|
-
__decorate([
|
|
56
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
57
|
-
__metadata("design:type", Number)
|
|
58
|
-
], Person.prototype, "id", void 0);
|
|
59
|
-
__decorate([
|
|
60
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
61
|
-
__metadata("design:type", String)
|
|
62
|
-
], Person.prototype, "name", void 0);
|
|
63
|
-
__decorate([
|
|
64
|
-
(0, auto_mapping_decorator_1.AutoMap)({ type: list_1.List }),
|
|
65
|
-
__metadata("design:type", Object)
|
|
66
|
-
], Person.prototype, "phones", void 0);
|
|
67
|
-
__decorate([
|
|
68
|
-
(0, auto_mapping_decorator_1.AutoMap)({ type: PersonAddress }),
|
|
69
|
-
__metadata("design:type", PersonAddress)
|
|
70
|
-
], Person.prototype, "address", void 0);
|
|
71
|
-
__decorate([
|
|
72
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
73
|
-
__metadata("design:type", Boolean)
|
|
74
|
-
], Person.prototype, "active", void 0);
|
|
75
|
-
exports.Person = Person = __decorate([
|
|
76
|
-
(0, entity_decorator_1.Entity)()
|
|
77
|
-
], Person);
|
|
78
|
-
describe('Entity decorator', () => {
|
|
79
|
-
it('should create an instance of Person', () => {
|
|
80
|
-
const person = new Person({
|
|
81
|
-
name: faker_1.faker.person.fullName(),
|
|
82
|
-
phones: [
|
|
83
|
-
{ phone: faker_1.faker.phone.number() },
|
|
84
|
-
{ phone: faker_1.faker.phone.number() },
|
|
85
|
-
],
|
|
86
|
-
address: { address: faker_1.faker.location.streetAddress() },
|
|
87
|
-
active: true,
|
|
88
|
-
});
|
|
89
|
-
expect(person).toBeInstanceOf(Person);
|
|
90
|
-
expect(person).toBeInstanceOf(entity_base_1.EntityBase);
|
|
91
|
-
expect(person.constructor.name).toBe('Person');
|
|
92
|
-
expect(person.phones).toBeInstanceOf(list_1.List);
|
|
93
|
-
expect(person.phones.toArray()[0]).toBeInstanceOf(PersonPhone);
|
|
94
|
-
expect(person.phones.toArray()[1]).toBeInstanceOf(PersonPhone);
|
|
95
|
-
expect(person.phones.toArray()[0].phone).toBeDefined();
|
|
96
|
-
expect(person.phones.toArray()[1].phone).toBeDefined();
|
|
97
|
-
expect(person.address.constructor.name).equal(PersonAddress.name);
|
|
98
|
-
expect(person.address.address).toBeDefined();
|
|
99
|
-
expect(person.name).toBeDefined();
|
|
100
|
-
expect(person.active).toBe(true);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const request_result_1 = require("./request-result");
|
|
4
|
-
function doSometing(shouldSuccess) {
|
|
5
|
-
if (shouldSuccess) {
|
|
6
|
-
return (0, request_result_1.ok)(10);
|
|
7
|
-
}
|
|
8
|
-
else {
|
|
9
|
-
return (0, request_result_1.failure)('error');
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
test('success result', () => {
|
|
13
|
-
const result = doSometing(true);
|
|
14
|
-
expect(result.isOk()).toBe(true);
|
|
15
|
-
expect(result.isFailure()).toBe(false);
|
|
16
|
-
});
|
|
17
|
-
test('error result', () => {
|
|
18
|
-
const result = doSometing(false);
|
|
19
|
-
expect(result.isFailure()).toBe(true);
|
|
20
|
-
expect(result.isOk()).toBe(false);
|
|
21
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/core/utils/list.spec.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
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
|
-
const entity_base_1 = require("../database/entity.base");
|
|
13
|
-
const entity_decorator_1 = require("../database/entity.decorator");
|
|
14
|
-
const auto_mapping_decorator_1 = require("../mapping/auto-mapping.decorator");
|
|
15
|
-
const list_1 = require("./list");
|
|
16
|
-
let EntityTest = class EntityTest extends entity_base_1.EntityBase {
|
|
17
|
-
id;
|
|
18
|
-
value;
|
|
19
|
-
};
|
|
20
|
-
__decorate([
|
|
21
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
22
|
-
__metadata("design:type", Number)
|
|
23
|
-
], EntityTest.prototype, "id", void 0);
|
|
24
|
-
__decorate([
|
|
25
|
-
(0, auto_mapping_decorator_1.AutoMap)(),
|
|
26
|
-
__metadata("design:type", Number)
|
|
27
|
-
], EntityTest.prototype, "value", void 0);
|
|
28
|
-
EntityTest = __decorate([
|
|
29
|
-
(0, entity_decorator_1.Entity)()
|
|
30
|
-
], EntityTest);
|
|
31
|
-
describe('List test', () => {
|
|
32
|
-
let entity;
|
|
33
|
-
beforeEach(() => {
|
|
34
|
-
entity = new EntityTest({ id: 1, value: 1 });
|
|
35
|
-
});
|
|
36
|
-
it('should add item on list', () => {
|
|
37
|
-
const list = new list_1.List();
|
|
38
|
-
list.add(1);
|
|
39
|
-
expect(list.toArray('added').length).toBe(1);
|
|
40
|
-
expect(list.toArray('added')[0]).toEqual(1);
|
|
41
|
-
});
|
|
42
|
-
it('should update item on list', () => {
|
|
43
|
-
const list = new list_1.List(EntityTest).setList([entity]);
|
|
44
|
-
entity.value = 2;
|
|
45
|
-
list.add(entity);
|
|
46
|
-
expect(list.toArray('updated').length).toBe(1);
|
|
47
|
-
expect(list.toArray('updated')[0].value).toEqual(2);
|
|
48
|
-
});
|
|
49
|
-
it('should remove item on list', () => {
|
|
50
|
-
const list = new list_1.List(EntityTest).setList([entity]);
|
|
51
|
-
list.remove(entity);
|
|
52
|
-
expect(list.toArray().length).toBe(0);
|
|
53
|
-
expect(list.toArray('removed').length).toBe(1);
|
|
54
|
-
expect(list.toArray('removed')[0].value).toEqual(1);
|
|
55
|
-
});
|
|
56
|
-
it('should get item by id', () => {
|
|
57
|
-
const list = new list_1.List(EntityTest).setList([entity]);
|
|
58
|
-
expect(list.findById(entity.id)).toEqual(entity);
|
|
59
|
-
});
|
|
60
|
-
});
|