@quadnix/octo 0.0.22 → 0.0.23
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/dist/app.type.d.ts +121 -26
- package/dist/app.type.js +71 -1
- package/dist/app.type.js.map +1 -1
- package/dist/decorators/action.decorator.d.ts +4 -5
- package/dist/decorators/action.decorator.js +42 -41
- package/dist/decorators/action.decorator.js.map +1 -1
- package/dist/decorators/anchor.decorator.d.ts +2 -2
- package/dist/decorators/anchor.decorator.js +16 -11
- package/dist/decorators/anchor.decorator.js.map +1 -1
- package/dist/decorators/enable-hook.decorator.js +2 -2
- package/dist/decorators/enable-hook.decorator.js.map +1 -1
- package/dist/decorators/event-source.decorator.d.ts +1 -1
- package/dist/decorators/event-source.decorator.js +7 -2
- package/dist/decorators/event-source.decorator.js.map +1 -1
- package/dist/decorators/factory.decorator.d.ts +14 -2
- package/dist/decorators/factory.decorator.js +12 -3
- package/dist/decorators/factory.decorator.js.map +1 -1
- package/dist/decorators/model.decorator.d.ts +3 -2
- package/dist/decorators/model.decorator.js +24 -11
- package/dist/decorators/model.decorator.js.map +1 -1
- package/dist/decorators/module.decorator.d.ts +4 -75
- package/dist/decorators/module.decorator.js +18 -58
- package/dist/decorators/module.decorator.js.map +1 -1
- package/dist/decorators/on-event.decorator.d.ts +1 -1
- package/dist/decorators/on-event.decorator.js +7 -2
- package/dist/decorators/on-event.decorator.js.map +1 -1
- package/dist/decorators/overlay.decorator.d.ts +3 -2
- package/dist/decorators/overlay.decorator.js +23 -11
- package/dist/decorators/overlay.decorator.js.map +1 -1
- package/dist/decorators/resource.decorator.d.ts +3 -2
- package/dist/decorators/resource.decorator.js +23 -11
- package/dist/decorators/resource.decorator.js.map +1 -1
- package/dist/decorators/validate.decorator.d.ts +4 -4
- package/dist/decorators/validate.decorator.js +16 -2
- package/dist/decorators/validate.decorator.js.map +1 -1
- package/dist/errors/container.error.d.ts +11 -0
- package/dist/errors/container.error.js +20 -0
- package/dist/errors/container.error.js.map +1 -0
- package/dist/errors/index.d.ts +6 -0
- package/dist/errors/index.js +7 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/input.error.d.ts +11 -0
- package/dist/errors/input.error.js +21 -0
- package/dist/errors/input.error.js.map +1 -0
- package/dist/errors/module.error.d.ts +4 -0
- package/dist/errors/module.error.js +8 -0
- package/dist/errors/module.error.js.map +1 -0
- package/dist/errors/node.error.d.ts +36 -0
- package/dist/errors/node.error.js +60 -0
- package/dist/errors/node.error.js.map +1 -0
- package/dist/errors/schema.error.d.ts +4 -0
- package/dist/errors/schema.error.js +8 -0
- package/dist/errors/schema.error.js.map +1 -0
- package/dist/errors/transaction.error.d.ts +35 -0
- package/dist/errors/transaction.error.js +58 -0
- package/dist/errors/transaction.error.js.map +1 -0
- package/dist/events/action.event.d.ts +13 -0
- package/dist/events/action.event.js +11 -0
- package/dist/events/action.event.js.map +1 -0
- package/dist/events/event.model.d.ts +6 -12
- package/dist/events/event.model.js +5 -11
- package/dist/events/event.model.js.map +1 -1
- package/dist/events/hook/commit.hook.event.d.ts +25 -0
- package/dist/events/hook/commit.hook.event.js +26 -0
- package/dist/events/hook/commit.hook.event.js.map +1 -0
- package/dist/events/hook/hook.event.d.ts +9 -0
- package/dist/events/hook/hook.event.js +10 -0
- package/dist/events/hook/hook.event.js.map +1 -0
- package/dist/events/hook/index.d.ts +4 -0
- package/dist/events/hook/index.js +5 -0
- package/dist/events/hook/index.js.map +1 -0
- package/dist/events/hook/model.hook.event.d.ts +25 -0
- package/dist/events/hook/model.hook.event.js +26 -0
- package/dist/events/hook/model.hook.event.js.map +1 -0
- package/dist/events/hook/resource.hook.event.d.ts +25 -0
- package/dist/events/hook/resource.hook.event.js +26 -0
- package/dist/events/hook/resource.hook.event.js.map +1 -0
- package/dist/events/index.d.ts +7 -0
- package/dist/events/index.js +8 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/module.event.d.ts +1 -6
- package/dist/events/module.event.js +0 -5
- package/dist/events/module.event.js.map +1 -1
- package/dist/events/registration.event.d.ts +9 -51
- package/dist/events/registration.event.js +16 -64
- package/dist/events/registration.event.js.map +1 -1
- package/dist/events/serialization.event.d.ts +24 -37
- package/dist/events/serialization.event.js +49 -33
- package/dist/events/serialization.event.js.map +1 -1
- package/dist/events/transaction.event.d.ts +45 -26
- package/dist/events/transaction.event.js +43 -25
- package/dist/events/transaction.event.js.map +1 -1
- package/dist/functions/container/container.d.ts +54 -9
- package/dist/functions/container/container.js +106 -19
- package/dist/functions/container/container.js.map +1 -1
- package/dist/functions/container/test-container.d.ts +9 -13
- package/dist/functions/container/test-container.js +33 -38
- package/dist/functions/container/test-container.js.map +1 -1
- package/dist/functions/dependency/dependency.js +4 -3
- package/dist/functions/dependency/dependency.js.map +1 -1
- package/dist/functions/diff/diff-metadata.d.ts +3 -5
- package/dist/functions/diff/diff-metadata.js +3 -2
- package/dist/functions/diff/diff-metadata.js.map +1 -1
- package/dist/functions/diff/diff.d.ts +10 -5
- package/dist/functions/diff/diff.js +5 -4
- package/dist/functions/diff/diff.js.map +1 -1
- package/dist/functions/diff/diff.utility.d.ts +2 -2
- package/dist/functions/diff/diff.utility.js +23 -2
- package/dist/functions/diff/diff.utility.js.map +1 -1
- package/dist/functions/hook/commit.hook.d.ts +14 -3
- package/dist/functions/hook/commit.hook.js +16 -16
- package/dist/functions/hook/commit.hook.js.map +1 -1
- package/dist/functions/hook/hook.interface.d.ts +7 -6
- package/dist/functions/hook/model-action.hook.d.ts +17 -5
- package/dist/functions/hook/model-action.hook.js +20 -39
- package/dist/functions/hook/model-action.hook.js.map +1 -1
- package/dist/functions/hook/resource-action.hook.d.ts +17 -5
- package/dist/functions/hook/resource-action.hook.js +18 -18
- package/dist/functions/hook/resource-action.hook.js.map +1 -1
- package/dist/functions/node/node-action.abstract.d.ts +7 -0
- package/dist/functions/node/node-action.abstract.js +20 -0
- package/dist/functions/node/node-action.abstract.js.map +1 -0
- package/dist/functions/node/node.abstract.d.ts +18 -9
- package/dist/functions/node/node.abstract.js +99 -32
- package/dist/functions/node/node.abstract.js.map +1 -1
- package/dist/functions/node/node.interface.d.ts +18 -18
- package/dist/functions/schema/schema.d.ts +4 -0
- package/dist/functions/schema/schema.js +38 -0
- package/dist/functions/schema/schema.js.map +1 -0
- package/dist/index.d.ts +31 -32
- package/dist/index.js +29 -12
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +29 -15
- package/dist/main.js +62 -50
- package/dist/main.js.map +1 -1
- package/dist/models/account/account.model.d.ts +23 -0
- package/dist/models/account/account.model.js +67 -0
- package/dist/models/account/account.model.js.map +1 -0
- package/dist/models/account/account.schema.d.ts +7 -0
- package/dist/models/account/account.schema.js +12 -0
- package/dist/models/account/account.schema.js.map +1 -0
- package/dist/models/app/app.model.d.ts +6 -13
- package/dist/models/app/app.model.js +24 -26
- package/dist/models/app/app.model.js.map +1 -1
- package/dist/models/app/app.schema.d.ts +3 -0
- package/dist/models/app/app.schema.js +21 -0
- package/dist/models/app/app.schema.js.map +1 -0
- package/dist/models/deployment/deployment.model.d.ts +6 -11
- package/dist/models/deployment/deployment.model.js +8 -10
- package/dist/models/deployment/deployment.model.js.map +1 -1
- package/dist/models/deployment/deployment.schema.d.ts +7 -0
- package/dist/models/deployment/deployment.schema.js +25 -0
- package/dist/models/deployment/deployment.schema.js.map +1 -0
- package/dist/models/environment/environment.model.d.ts +5 -13
- package/dist/models/environment/environment.model.js +7 -21
- package/dist/models/environment/environment.model.js.map +1 -1
- package/dist/models/environment/environment.schema.d.ts +13 -0
- package/dist/models/environment/environment.schema.js +38 -0
- package/dist/models/environment/environment.schema.js.map +1 -0
- package/dist/models/execution/execution.model.d.ts +6 -12
- package/dist/models/execution/execution.model.js +15 -24
- package/dist/models/execution/execution.model.js.map +1 -1
- package/dist/models/execution/execution.schema.d.ts +14 -0
- package/dist/models/execution/execution.schema.js +34 -0
- package/dist/models/execution/execution.schema.js.map +1 -0
- package/dist/models/filesystem/filesystem.model.d.ts +10 -0
- package/dist/models/filesystem/filesystem.model.js +43 -0
- package/dist/models/filesystem/filesystem.model.js.map +1 -0
- package/dist/models/filesystem/filesystem.schema.d.ts +3 -0
- package/dist/models/filesystem/filesystem.schema.js +21 -0
- package/dist/models/filesystem/filesystem.schema.js.map +1 -0
- package/dist/models/image/image.model.d.ts +7 -39
- package/dist/models/image/image.model.js +14 -26
- package/dist/models/image/image.model.js.map +1 -1
- package/dist/models/image/image.schema.d.ts +9 -0
- package/dist/models/image/image.schema.js +31 -0
- package/dist/models/image/image.schema.js.map +1 -0
- package/dist/models/model-action.interface.d.ts +3 -13
- package/dist/models/model.abstract.d.ts +25 -13
- package/dist/models/model.abstract.js +176 -13
- package/dist/models/model.abstract.js.map +1 -1
- package/dist/models/model.interface.d.ts +12 -6
- package/dist/models/pipeline/pipeline.model.d.ts +5 -6
- package/dist/models/pipeline/pipeline.model.js +7 -9
- package/dist/models/pipeline/pipeline.model.js.map +1 -1
- package/dist/models/pipeline/pipeline.schema.d.ts +4 -0
- package/dist/models/pipeline/pipeline.schema.js +22 -0
- package/dist/models/pipeline/pipeline.schema.js.map +1 -0
- package/dist/models/region/region.model.d.ts +8 -7
- package/dist/models/region/region.model.js +22 -11
- package/dist/models/region/region.model.js.map +1 -1
- package/dist/models/region/region.schema.d.ts +3 -0
- package/dist/models/region/region.schema.js +21 -0
- package/dist/models/region/region.schema.js.map +1 -0
- package/dist/models/server/server.model.d.ts +5 -9
- package/dist/models/server/server.model.js +10 -10
- package/dist/models/server/server.model.js.map +1 -1
- package/dist/models/server/server.schema.d.ts +6 -0
- package/dist/models/server/server.schema.js +24 -0
- package/dist/models/server/server.schema.js.map +1 -0
- package/dist/models/service/service.model.d.ts +4 -8
- package/dist/models/service/service.model.js +12 -12
- package/dist/models/service/service.model.js.map +1 -1
- package/dist/models/service/service.schema.d.ts +6 -0
- package/dist/models/service/service.schema.js +24 -0
- package/dist/models/service/service.schema.js.map +1 -0
- package/dist/models/subnet/subnet.model.d.ts +8 -32
- package/dist/models/subnet/subnet.model.js +11 -33
- package/dist/models/subnet/subnet.model.js.map +1 -1
- package/dist/models/subnet/subnet.schema.d.ts +33 -0
- package/dist/models/subnet/subnet.schema.js +48 -0
- package/dist/models/subnet/subnet.schema.js.map +1 -0
- package/dist/modules/module.abstract.d.ts +21 -0
- package/dist/modules/module.abstract.js +14 -0
- package/dist/modules/module.abstract.js.map +1 -0
- package/dist/modules/module.container.d.ts +32 -18
- package/dist/modules/module.container.js +134 -81
- package/dist/modules/module.container.js.map +1 -1
- package/dist/modules/module.interface.d.ts +15 -2
- package/dist/modules/test-module.container.d.ts +33 -15
- package/dist/modules/test-module.container.js +257 -26
- package/dist/modules/test-module.container.js.map +1 -1
- package/dist/overlays/anchor.abstract.d.ts +13 -8
- package/dist/overlays/anchor.abstract.js.map +1 -1
- package/dist/overlays/anchor.interface.d.ts +5 -8
- package/dist/overlays/anchor.schema.d.ts +8 -0
- package/dist/overlays/anchor.schema.js +9 -0
- package/dist/overlays/anchor.schema.js.map +1 -0
- package/dist/overlays/overlay-data.repository.d.ts +3 -4
- package/dist/overlays/overlay-data.repository.js +14 -10
- package/dist/overlays/overlay-data.repository.js.map +1 -1
- package/dist/overlays/overlay.abstract.d.ts +12 -13
- package/dist/overlays/overlay.abstract.js +16 -8
- package/dist/overlays/overlay.abstract.js.map +1 -1
- package/dist/overlays/overlay.interface.d.ts +3 -7
- package/dist/overlays/overlay.schema.d.ts +8 -0
- package/dist/overlays/overlay.schema.js +9 -0
- package/dist/overlays/overlay.schema.js.map +1 -0
- package/dist/resources/resource-action.interface.d.ts +4 -3
- package/dist/resources/resource-data.repository.d.ts +2 -3
- package/dist/resources/resource-data.repository.js +58 -82
- package/dist/resources/resource-data.repository.js.map +1 -1
- package/dist/resources/resource.abstract.d.ts +50 -27
- package/dist/resources/resource.abstract.js +230 -57
- package/dist/resources/resource.abstract.js.map +1 -1
- package/dist/resources/resource.interface.d.ts +39 -8
- package/dist/resources/resource.schema.d.ts +14 -0
- package/dist/resources/resource.schema.js +11 -0
- package/dist/resources/resource.schema.js.map +1 -0
- package/dist/services/capture/capture.service.d.ts +6 -6
- package/dist/services/capture/capture.service.js +8 -5
- package/dist/services/capture/capture.service.js.map +1 -1
- package/dist/services/event/event.service.d.ts +3 -4
- package/dist/services/event/event.service.js +7 -9
- package/dist/services/event/event.service.js.map +1 -1
- package/dist/services/input/input.service.d.ts +62 -6
- package/dist/services/input/input.service.js +290 -14
- package/dist/services/input/input.service.js.map +1 -1
- package/dist/services/schema-translation/schema-translation.service.d.ts +13 -0
- package/dist/services/schema-translation/schema-translation.service.js +42 -0
- package/dist/services/schema-translation/schema-translation.service.js.map +1 -0
- package/dist/services/serialization/model/model-serialization.service.d.ts +1 -4
- package/dist/services/serialization/model/model-serialization.service.js +36 -25
- package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.d.ts +1 -1
- package/dist/services/serialization/resource/resource-serialization.service.js +58 -80
- package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
- package/dist/services/state-management/local.state-provider.d.ts +0 -1
- package/dist/services/state-management/local.state-provider.js +5 -7
- package/dist/services/state-management/local.state-provider.js.map +1 -1
- package/dist/services/state-management/state-management.service.d.ts +2 -3
- package/dist/services/state-management/state-management.service.js +19 -8
- package/dist/services/state-management/state-management.service.js.map +1 -1
- package/dist/services/state-management/state-provider.interface.d.ts +0 -1
- package/dist/services/state-management/test.state-provider.d.ts +0 -1
- package/dist/services/state-management/test.state-provider.js +2 -1
- package/dist/services/state-management/test.state-provider.js.map +1 -1
- package/dist/services/transaction/transaction.service.d.ts +16 -11
- package/dist/services/transaction/transaction.service.js +197 -66
- package/dist/services/transaction/transaction.service.js.map +1 -1
- package/dist/services/validation/validation.service.d.ts +2 -3
- package/dist/services/validation/validation.service.js +27 -12
- package/dist/services/validation/validation.service.js.map +1 -1
- package/dist/utilities/node/node.utility.d.ts +4 -0
- package/dist/utilities/node/node.utility.js +22 -0
- package/dist/utilities/node/node.utility.js.map +1 -0
- package/dist/utilities/object/object.utility.d.ts +3 -0
- package/dist/utilities/object/object.utility.js +33 -0
- package/dist/utilities/object/object.utility.js.map +1 -1
- package/dist/utilities/test-helpers/test-classes.d.ts +57 -0
- package/dist/utilities/test-helpers/test-classes.js +76 -0
- package/dist/utilities/test-helpers/test-classes.js.map +1 -0
- package/dist/utilities/test-helpers/test-models.d.ts +41 -0
- package/dist/utilities/test-helpers/test-models.js +224 -0
- package/dist/utilities/test-helpers/test-models.js.map +1 -0
- package/dist/utilities/test-helpers/test-overlays.d.ts +10 -0
- package/dist/utilities/test-helpers/test-overlays.js +53 -0
- package/dist/utilities/test-helpers/test-overlays.js.map +1 -0
- package/dist/utilities/test-helpers/test-resources.d.ts +22 -0
- package/dist/utilities/test-helpers/test-resources.js +162 -0
- package/dist/utilities/test-helpers/test-resources.js.map +1 -0
- package/dist/utilities/validation/validation.utility.d.ts +31 -3
- package/dist/utilities/validation/validation.utility.js +121 -2
- package/dist/utilities/validation/validation.utility.js.map +1 -1
- package/package.json +6 -6
- package/dist/events/error.event.d.ts +0 -35
- package/dist/events/error.event.js +0 -36
- package/dist/events/error.event.js.map +0 -1
- package/dist/events/hook.event.d.ts +0 -194
- package/dist/events/hook.event.js +0 -195
- package/dist/events/hook.event.js.map +0 -1
- package/dist/models/app/app.interface.d.ts +0 -9
- package/dist/models/app/app.interface.js +0 -2
- package/dist/models/app/app.interface.js.map +0 -1
- package/dist/models/deployment/deployment.interface.d.ts +0 -9
- package/dist/models/deployment/deployment.interface.js +0 -2
- package/dist/models/deployment/deployment.interface.js.map +0 -1
- package/dist/models/environment/environment.interface.d.ts +0 -12
- package/dist/models/environment/environment.interface.js +0 -2
- package/dist/models/environment/environment.interface.js.map +0 -1
- package/dist/models/execution/execution.interface.d.ts +0 -14
- package/dist/models/execution/execution.interface.js +0 -2
- package/dist/models/execution/execution.interface.js.map +0 -1
- package/dist/models/image/image.interface.d.ts +0 -12
- package/dist/models/image/image.interface.js +0 -2
- package/dist/models/image/image.interface.js.map +0 -1
- package/dist/models/pipeline/pipeline.interface.d.ts +0 -10
- package/dist/models/pipeline/pipeline.interface.js +0 -2
- package/dist/models/pipeline/pipeline.interface.js.map +0 -1
- package/dist/models/region/region.interface.d.ts +0 -9
- package/dist/models/region/region.interface.js +0 -2
- package/dist/models/region/region.interface.js.map +0 -1
- package/dist/models/server/server.interface.d.ts +0 -9
- package/dist/models/server/server.interface.js +0 -2
- package/dist/models/server/server.interface.js.map +0 -1
- package/dist/models/service/service.interface.d.ts +0 -9
- package/dist/models/service/service.interface.js +0 -2
- package/dist/models/service/service.interface.js.map +0 -1
- package/dist/models/subnet/subnet.interface.d.ts +0 -13
- package/dist/models/subnet/subnet.interface.js +0 -2
- package/dist/models/subnet/subnet.interface.js.map +0 -1
- package/dist/overlays/overlay.service.d.ts +0 -17
- package/dist/overlays/overlay.service.js +0 -41
- package/dist/overlays/overlay.service.js.map +0 -1
- package/dist/resources/shared-resource.abstract.d.ts +0 -13
- package/dist/resources/shared-resource.abstract.js +0 -47
- package/dist/resources/shared-resource.abstract.js.map +0 -1
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { ModuleContainer } from '../../modules/module.container.js';
|
|
2
|
+
import { OverlayDataRepository } from '../../overlays/overlay-data.repository.js';
|
|
3
|
+
import { ResourceDataRepository, } from '../../resources/resource-data.repository.js';
|
|
4
|
+
import { CaptureService } from '../../services/capture/capture.service.js';
|
|
5
|
+
import { InputService } from '../../services/input/input.service.js';
|
|
1
6
|
import { Container } from './container.js';
|
|
2
7
|
/**
|
|
3
8
|
* The TestContainer class is an isolated {@link Container} for tests.
|
|
@@ -14,14 +19,16 @@ import { Container } from './container.js';
|
|
|
14
19
|
* Once tests are done executing, the `afterAll()` block cleans up the Container.
|
|
15
20
|
*/
|
|
16
21
|
export class TestContainer {
|
|
17
|
-
static
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
22
|
+
static async bootstrap(container) {
|
|
23
|
+
await container.get(OverlayDataRepository, {
|
|
24
|
+
args: [true, []],
|
|
25
|
+
});
|
|
26
|
+
await container.get(ResourceDataRepository, {
|
|
27
|
+
args: [true, [], [], []],
|
|
28
|
+
});
|
|
29
|
+
await container.get(CaptureService, { args: [true] });
|
|
30
|
+
await container.get(InputService, { args: [true] });
|
|
31
|
+
await container.get(ModuleContainer, { args: [true] });
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
34
|
* The `TestContainer.create()` method allows you to mock factories.
|
|
@@ -30,50 +37,41 @@ export class TestContainer {
|
|
|
30
37
|
* ```ts
|
|
31
38
|
* beforeAll(async () => {
|
|
32
39
|
* await TestContainer.create({
|
|
33
|
-
* importFrom: [OctoAwsCdkPackageMock],
|
|
34
40
|
* mocks: [
|
|
35
41
|
* { type: MyClass, value: jest.fn() },
|
|
36
|
-
* { type: AnotherClass, value: new AnotherClass() },
|
|
42
|
+
* { metadata: { key: 'value' }, type: AnotherClass, value: new AnotherClass() },
|
|
37
43
|
* ],
|
|
38
44
|
* }, { factoryTimeoutInMs: 500 });
|
|
39
45
|
* });
|
|
40
46
|
*
|
|
41
47
|
* ```
|
|
42
48
|
* @param subjects The subjects being mocked.
|
|
43
|
-
* - `importFrom` is an array of {@link IPackageMock} classes, to import custom mocks,
|
|
44
|
-
* such as from octo-aws-cdk package - [OctoAwsCdkPackageMock](/api/octo-aws-cdk/class/OctoAwsCdkPackageMock).
|
|
45
49
|
* - `mocks` is an array of objects, to override the default factories.
|
|
50
|
+
* - Use `metadata?: { [key: string]: string }` to identify the factory being mocked.
|
|
46
51
|
* - Use `type: Constructable<T> | string` to identify the class being mocked.
|
|
47
52
|
* - Use `value: T` to provide the mocked value.
|
|
48
53
|
* @param options Options to configure TestContainer.
|
|
49
54
|
* - `factoryTimeoutInMs?: number` is to override the default container timeout.
|
|
50
55
|
*/
|
|
51
56
|
static async create(subjects, options) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (options?.factoryTimeoutInMs) {
|
|
55
|
-
Container.setFactoryTimeout(options.factoryTimeoutInMs);
|
|
56
|
-
}
|
|
57
|
-
const importedMocks = [];
|
|
58
|
-
for (const mockClass of subjects.importFrom || []) {
|
|
59
|
-
const mock = new mockClass();
|
|
60
|
-
await mock.init();
|
|
61
|
-
importedMocks.push(...mock.getMocks());
|
|
62
|
-
this.packageMocks.push(mock);
|
|
57
|
+
if (!TestContainer.originalFactories) {
|
|
58
|
+
TestContainer.originalFactories = Container.getInstance().copyFactories();
|
|
63
59
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
60
|
+
const container = Container.getInstance();
|
|
61
|
+
// Load container with previous factories.
|
|
62
|
+
container.setFactories(this.originalFactories);
|
|
63
|
+
// Reset state of eligible factories.
|
|
64
|
+
// A factory is eligible if it has an internal structure and should be reset on every test.
|
|
65
|
+
await this.bootstrap(container);
|
|
66
|
+
if (options?.factoryTimeoutInMs) {
|
|
67
|
+
container.setFactoryTimeout(options.factoryTimeoutInMs);
|
|
73
68
|
}
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
// Override new container with mock factories as instructed.
|
|
70
|
+
for (const mock of subjects.mocks || []) {
|
|
71
|
+
container.unRegisterFactory(mock.type, { metadata: mock.metadata });
|
|
72
|
+
container.registerValue(mock.type, mock.value, { metadata: mock.metadata });
|
|
76
73
|
}
|
|
74
|
+
return container;
|
|
77
75
|
}
|
|
78
76
|
/**
|
|
79
77
|
* The `TestContainer.reset()` method will completely destroy all factories from the Container.
|
|
@@ -88,10 +86,7 @@ export class TestContainer {
|
|
|
88
86
|
* ```
|
|
89
87
|
*/
|
|
90
88
|
static async reset() {
|
|
91
|
-
|
|
92
|
-
await mock.destroy();
|
|
93
|
-
}
|
|
94
|
-
Container.reset();
|
|
89
|
+
Container.getInstance().reset();
|
|
95
90
|
}
|
|
96
91
|
}
|
|
97
92
|
//# sourceMappingURL=test-container.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-container.js","sourceRoot":"","sources":["../../../src/functions/container/test-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test-container.js","sourceRoot":"","sources":["../../../src/functions/container/test-container.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA+B,MAAM,mCAAmC,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAqC,MAAM,2CAA2C,CAAC;AACrH,OAAO,EACL,sBAAsB,GAEvB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,cAAc,EAA8B,MAAM,2CAA2C,CAAC;AACvG,OAAO,EAAE,YAAY,EAA4B,MAAM,uCAAuC,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAa3C;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,aAAa;IAGhB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,SAAoB;QACjD,MAAM,SAAS,CAAC,GAAG,CAA6D,qBAAqB,EAAE;YACrG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;SACjB,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,GAAG,CAA+D,sBAAsB,EAAE;YACxG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;SACzB,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,GAAG,CAA+C,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEpG,MAAM,SAAS,CAAC,GAAG,CAA2C,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9F,MAAM,SAAS,CAAC,GAAG,CAAiD,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAA+B,EAAE,OAA8B;QACjF,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACrC,aAAa,CAAC,iBAAiB,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;QAC5E,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAE1C,0CAA0C;QAC1C,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/C,qCAAqC;QACrC,2FAA2F;QAC3F,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEhC,IAAI,OAAO,EAAE,kBAAkB,EAAE,CAAC;YAChC,SAAS,CAAC,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC1D,CAAC;QAED,4DAA4D;QAC5D,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACxC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpE,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,KAAK,CAAC,KAAK;QAChB,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DependencyError } from '../../errors/index.js';
|
|
1
2
|
class DependencyBehavior {
|
|
2
3
|
constructor(onField, onAction, toField, forAction) {
|
|
3
4
|
this.onField = onField;
|
|
@@ -27,13 +28,13 @@ export class Dependency {
|
|
|
27
28
|
}
|
|
28
29
|
addChildRelationship(onField, toField) {
|
|
29
30
|
if (this.relationship) {
|
|
30
|
-
throw new
|
|
31
|
+
throw new DependencyError('Dependency relationship already exists!', this);
|
|
31
32
|
}
|
|
32
33
|
this.relationship = { onField, toField, type: DependencyRelationship.CHILD };
|
|
33
34
|
}
|
|
34
35
|
addParentRelationship(onField, toField) {
|
|
35
36
|
if (this.relationship) {
|
|
36
|
-
throw new
|
|
37
|
+
throw new DependencyError('Dependency relationship already exists!', this);
|
|
37
38
|
}
|
|
38
39
|
this.relationship = { onField, toField, type: DependencyRelationship.PARENT };
|
|
39
40
|
}
|
|
@@ -61,7 +62,7 @@ export class Dependency {
|
|
|
61
62
|
removeBehavior(onField, onAction, toField, forAction) {
|
|
62
63
|
const index = this.getBehaviorIndex(onField, onAction, toField, forAction);
|
|
63
64
|
if (index === -1) {
|
|
64
|
-
throw new
|
|
65
|
+
throw new DependencyError('Dependency behavior not found!', this);
|
|
65
66
|
}
|
|
66
67
|
this.behaviors.splice(index, 1);
|
|
67
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../../src/functions/dependency/dependency.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependency.js","sourceRoot":"","sources":["../../../src/functions/dependency/dependency.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import type { ActionInputs, ActionOutputs, UnknownNode } from '../../app.type.js';
|
|
2
|
-
import type { IModelAction } from '../../models/model-action.interface.js';
|
|
3
|
-
import type { IResourceAction } from '../../resources/resource-action.interface.js';
|
|
1
|
+
import type { ActionInputs, ActionOutputs, IUnknownModelAction, IUnknownResourceAction, UnknownNode } from '../../app.type.js';
|
|
4
2
|
import type { Diff, DiffAction } from './diff.js';
|
|
5
3
|
export declare class DiffMetadata {
|
|
6
|
-
readonly actions:
|
|
4
|
+
readonly actions: IUnknownModelAction[] | IUnknownResourceAction[];
|
|
7
5
|
applied: boolean;
|
|
8
6
|
applyOrder: number;
|
|
9
7
|
readonly diff: Diff;
|
|
@@ -13,7 +11,7 @@ export declare class DiffMetadata {
|
|
|
13
11
|
readonly value: unknown;
|
|
14
12
|
readonly inputs: ActionInputs;
|
|
15
13
|
readonly outputs: ActionOutputs;
|
|
16
|
-
constructor(diff: Diff, actions:
|
|
14
|
+
constructor(diff: Diff, actions: IUnknownModelAction[] | IUnknownResourceAction[]);
|
|
17
15
|
/**
|
|
18
16
|
* Overrides JSON.serialize() to output a more succinct model of diff-metadata.
|
|
19
17
|
*/
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { NoMatchingActionFoundTransactionError } from '../../errors/index.js';
|
|
1
2
|
export class DiffMetadata {
|
|
2
3
|
constructor(diff, actions) {
|
|
3
|
-
this.inputs = {};
|
|
4
|
+
this.inputs = { inputs: {}, metadata: {}, models: {}, overlays: {}, resources: {} };
|
|
4
5
|
this.outputs = {};
|
|
5
6
|
if (!actions?.length) {
|
|
6
|
-
throw new
|
|
7
|
+
throw new NoMatchingActionFoundTransactionError('No matching action given for diff!', diff);
|
|
7
8
|
}
|
|
8
9
|
this.actions = actions;
|
|
9
10
|
this.applied = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-metadata.js","sourceRoot":"","sources":["../../../src/functions/diff/diff-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff-metadata.js","sourceRoot":"","sources":["../../../src/functions/diff/diff-metadata.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qCAAqC,EAAE,MAAM,uBAAuB,CAAC;AAG9E,MAAM,OAAO,YAAY;IAcvB,YAAY,IAAU,EAAE,OAAyD;QAHxE,WAAM,GAAiB,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC7F,YAAO,GAAkB,EAAE,CAAC;QAGnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,qCAAqC,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,YAAY,CAAC,MAAoB;QAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,aAAa,CAAC,OAAsB;QAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -5,14 +5,19 @@ export declare enum DiffAction {
|
|
|
5
5
|
REPLACE = "replace",
|
|
6
6
|
UPDATE = "update"
|
|
7
7
|
}
|
|
8
|
-
export declare class Diff {
|
|
8
|
+
export declare class Diff<N extends UnknownNode = UnknownNode, V = unknown> {
|
|
9
9
|
readonly action: DiffAction;
|
|
10
10
|
readonly field: string;
|
|
11
|
-
readonly node:
|
|
12
|
-
readonly value:
|
|
13
|
-
constructor(node: Diff['node'], action: Diff['action'], field: Diff['field'], value: Diff['value']);
|
|
11
|
+
readonly node: N;
|
|
12
|
+
readonly value: V;
|
|
13
|
+
constructor(node: Diff<N, V>['node'], action: Diff['action'], field: Diff['field'], value: Diff<N, V>['value']);
|
|
14
14
|
/**
|
|
15
15
|
* Overrides JSON.serialize() to output a more succinct representation of diff.
|
|
16
16
|
*/
|
|
17
|
-
toJSON():
|
|
17
|
+
toJSON(): {
|
|
18
|
+
action: string;
|
|
19
|
+
field: string;
|
|
20
|
+
node: string;
|
|
21
|
+
value: V | string;
|
|
22
|
+
};
|
|
18
23
|
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { AAnchor } from '../../overlays/anchor.abstract.js';
|
|
2
|
-
import { ANode } from '../node/node.abstract.js';
|
|
3
1
|
export var DiffAction;
|
|
4
2
|
(function (DiffAction) {
|
|
5
3
|
DiffAction["ADD"] = "add";
|
|
@@ -19,12 +17,15 @@ export class Diff {
|
|
|
19
17
|
*/
|
|
20
18
|
toJSON() {
|
|
21
19
|
let value = this.value;
|
|
22
|
-
if (value
|
|
20
|
+
if (value.getContext) {
|
|
23
21
|
value = value.getContext();
|
|
24
22
|
}
|
|
25
|
-
else if (value
|
|
23
|
+
else if (value.anchorId) {
|
|
26
24
|
value = `anchorId=${value.anchorId}`;
|
|
27
25
|
}
|
|
26
|
+
else {
|
|
27
|
+
value = JSON.parse(JSON.stringify(value));
|
|
28
|
+
}
|
|
28
29
|
return {
|
|
29
30
|
action: this.action,
|
|
30
31
|
field: this.field,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,OAAO,IAAI;IASf,YAAY,IAAwB,EAAE,MAAsB,EAAE,KAAoB,EAAE,KAA0B;QAC5G,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,IAAI,KAAK,GAAe,IAAI,CAAC,KAAK,CAAC;QACnC,IAAK,KAAqB,CAAC,UAAU,EAAE,CAAC;YACtC,KAAK,GAAI,KAAqB,CAAC,UAAU,EAAE,CAAC;QAC9C,CAAC;aAAM,IAAK,KAAuB,CAAC,QAAQ,EAAE,CAAC;YAC7C,KAAK,GAAG,YAAa,KAAuB,CAAC,QAAQ,EAAE,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK;SACN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import type { UnknownNode } from '../../app.type.js';
|
|
|
2
2
|
import { Diff } from './diff.js';
|
|
3
3
|
export declare class DiffUtility {
|
|
4
4
|
private static generateDeleteDiff;
|
|
5
|
-
static isObjectDeepEquals(x:
|
|
5
|
+
static isObjectDeepEquals(x: unknown, y: unknown, excludePaths?: string[], currentPath?: string[]): boolean;
|
|
6
6
|
/**
|
|
7
7
|
* Generate a deep diff of an array of basic types from the previous node vs the latest node.
|
|
8
8
|
* @param a previous node.
|
|
@@ -17,7 +17,7 @@ export declare class DiffUtility {
|
|
|
17
17
|
* @param field string representing the field parent uses to reference the array.
|
|
18
18
|
* @param compare function to check if two objects are equal.
|
|
19
19
|
*/
|
|
20
|
-
static diffArrayOfObjects(a: UnknownNode, b: UnknownNode, field: string, compare: (object1:
|
|
20
|
+
static diffArrayOfObjects(a: UnknownNode, b: UnknownNode, field: string, compare: (object1: unknown, object2: unknown) => boolean): Diff[];
|
|
21
21
|
/**
|
|
22
22
|
* Generate a deep diff of a map of basic types from the previous node vs the latest node.
|
|
23
23
|
* @param a previous node.
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { AAnchor } from '../../overlays/anchor.abstract.js';
|
|
2
|
+
import { Dependency } from '../dependency/dependency.js';
|
|
3
|
+
import { ANode } from '../node/node.abstract.js';
|
|
1
4
|
import { Diff, DiffAction } from './diff.js';
|
|
2
5
|
export class DiffUtility {
|
|
3
6
|
static generateDeleteDiff(node, field) {
|
|
@@ -14,10 +17,28 @@ export class DiffUtility {
|
|
|
14
17
|
return diff;
|
|
15
18
|
}
|
|
16
19
|
// Source: https://stackoverflow.com/a/32922084/1834562
|
|
17
|
-
static isObjectDeepEquals(x, y) {
|
|
20
|
+
static isObjectDeepEquals(x, y, excludePaths = [], currentPath = []) {
|
|
21
|
+
if (x instanceof AAnchor && y instanceof AAnchor) {
|
|
22
|
+
return this.isObjectDeepEquals(x.synth(), y.synth(), excludePaths, currentPath);
|
|
23
|
+
}
|
|
24
|
+
else if (x instanceof ANode && y instanceof ANode) {
|
|
25
|
+
return this.isObjectDeepEquals(x.synth(), y.synth(), excludePaths, currentPath);
|
|
26
|
+
}
|
|
27
|
+
else if (x instanceof Dependency && y instanceof Dependency) {
|
|
28
|
+
return this.isObjectDeepEquals(x.synth(), y.synth(), excludePaths, currentPath);
|
|
29
|
+
}
|
|
30
|
+
else if (x instanceof Diff && y instanceof Diff) {
|
|
31
|
+
return this.isObjectDeepEquals(x.toJSON(), y.toJSON(), excludePaths, currentPath);
|
|
32
|
+
}
|
|
18
33
|
const ok = Object.keys, tx = typeof x, ty = typeof y;
|
|
19
34
|
return x && y && tx === 'object' && tx === ty
|
|
20
|
-
? ok(x).length === ok(y).length &&
|
|
35
|
+
? ok(x).length === ok(y).length &&
|
|
36
|
+
ok(x).every((key) => {
|
|
37
|
+
if (excludePaths.includes([...currentPath, key].join('.'))) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
return this.isObjectDeepEquals(x[key], y[key], excludePaths, [...currentPath, key]);
|
|
41
|
+
})
|
|
21
42
|
: x === y;
|
|
22
43
|
}
|
|
23
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff.utility.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.utility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,OAAO,WAAW;IACd,MAAM,CAAC,kBAAkB,CAAC,IAAiB,EAAE,KAAa;QAChE,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAG,CAAC,OAAO,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"diff.utility.js","sourceRoot":"","sources":["../../../src/functions/diff/diff.utility.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,OAAO,WAAW;IACd,MAAM,CAAC,kBAAkB,CAAC,IAAiB,EAAE,KAAa;QAChE,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAG,CAAC,OAAO,CAAC;gBACzD,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uDAAuD;IACvD,MAAM,CAAC,kBAAkB,CAAC,CAAU,EAAE,CAAU,EAAE,eAAyB,EAAE,EAAE,cAAwB,EAAE;QACvG,IAAI,CAAC,YAAY,OAAO,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,YAAY,UAAU,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAClF,CAAC;aAAM,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EACpB,EAAE,GAAG,OAAO,CAAC,EACb,EAAE,GAAG,OAAO,CAAC,CAAC;QAEhB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;gBAC3B,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClB,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC3D,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACtF,CAAC,CAAC;YACN,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,CAAc,EAAE,CAAc,EAAE,KAAa;QAC5D,MAAM,IAAI,GAAW,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/B,mFAAmF;QACnF,oDAAoD;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CACvB,CAAc,EACd,CAAc,EACd,KAAa,EACb,OAAwD;QAExD,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,mFAAmF;QACnF,oDAAoD;QACpD,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;gBACpE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAc,EAAE,CAAc,EAAE,KAAa;QAC1D,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,iFAAiF;QACjF,oDAAoD;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAgB,EAAE,CAAgB,EAAE,KAAa;QACtE,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,oGAAoG;QACpG,oDAAoD;QACpD,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,EAAE,CAAC;gBACN,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,qCAAqC;QACrC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAc,EAAE,CAAc,EAAE,KAAa;QAC7D,MAAM,IAAI,GAAW,EAAE,CAAC;QAExB,iFAAiF;QACjF,oDAAoD;QACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACtC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;wBAC1D,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;wBAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAClF,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,kFAAkF;QAClF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Octo } from '../../main.js';
|
|
2
2
|
import type { IHook } from './hook.interface.js';
|
|
3
|
-
|
|
3
|
+
type PostHookSignature = {
|
|
4
|
+
handle: Octo['commitTransaction'];
|
|
5
|
+
};
|
|
6
|
+
type PreHookSignature = {
|
|
7
|
+
handle: Octo['commitTransaction'];
|
|
8
|
+
};
|
|
9
|
+
export declare class CommitHook implements IHook<PreHookSignature, PostHookSignature> {
|
|
4
10
|
private static instance;
|
|
5
11
|
private readonly postCommitHooks;
|
|
6
12
|
private readonly preCommitHooks;
|
|
7
|
-
|
|
13
|
+
private constructor();
|
|
14
|
+
collectHooks(hooks: {
|
|
15
|
+
postHooks?: PostHookSignature[];
|
|
16
|
+
preHooks?: PreHookSignature[];
|
|
17
|
+
}): void;
|
|
8
18
|
static getInstance(): CommitHook;
|
|
9
19
|
registrar(descriptor: PropertyDescriptor): void;
|
|
10
20
|
reset(): void;
|
|
11
21
|
}
|
|
22
|
+
export {};
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PostCommitHookCallbackDoneEvent, PreCommitHookCallbackDoneEvent } from '../../events/index.js';
|
|
2
2
|
import { EventService } from '../../services/event/event.service.js';
|
|
3
|
+
import { Container } from '../container/container.js';
|
|
3
4
|
export class CommitHook {
|
|
4
5
|
constructor() {
|
|
5
6
|
this.postCommitHooks = [];
|
|
6
7
|
this.preCommitHooks = [];
|
|
7
8
|
}
|
|
8
|
-
collectHooks(
|
|
9
|
-
for (const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
this.preCommitHooks.push(callback);
|
|
15
|
-
}
|
|
9
|
+
collectHooks(hooks) {
|
|
10
|
+
for (const { handle } of hooks.postHooks || []) {
|
|
11
|
+
this.postCommitHooks.push({ handle });
|
|
12
|
+
}
|
|
13
|
+
for (const { handle } of hooks.preHooks || []) {
|
|
14
|
+
this.preCommitHooks.push({ handle });
|
|
16
15
|
}
|
|
17
16
|
}
|
|
18
17
|
static getInstance() {
|
|
@@ -27,15 +26,16 @@ export class CommitHook {
|
|
|
27
26
|
const self = this;
|
|
28
27
|
const originalMethod = descriptor.value;
|
|
29
28
|
descriptor.value = async function (...args) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const container = Container.getInstance();
|
|
30
|
+
const eventService = await container.get(EventService);
|
|
31
|
+
for (const { handle } of self.preCommitHooks) {
|
|
32
|
+
await handle.apply(this, args);
|
|
33
|
+
eventService.emit(new PreCommitHookCallbackDoneEvent());
|
|
33
34
|
}
|
|
34
35
|
await originalMethod.apply(this, args);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
EventService.getInstance().emit(new PostCommitHookCallbackDoneEvent());
|
|
36
|
+
for (const { handle } of self.postCommitHooks) {
|
|
37
|
+
await handle.apply(this, args);
|
|
38
|
+
eventService.emit(new PostCommitHookCallbackDoneEvent());
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"commit.hook.js","sourceRoot":"","sources":["../../../src/functions/hook/commit.hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAExG,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAMtD,MAAM,OAAO,UAAU;IAMrB;QAHiB,oBAAe,GAAwB,EAAE,CAAC;QAC1C,mBAAc,GAAuB,EAAE,CAAC;IAElC,CAAC;IAExB,YAAY,CAAC,KAAyE;QACpF,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;QACnC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,UAA8B;QACtC,+EAA+E;QAC/E,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAA2C;YAC/E,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAEvD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC7C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,8BAA8B,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEvC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,IAAI,+BAA+B,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { IUnknownModelAction, IUnknownResourceAction } from '../../app.type.js';
|
|
2
|
+
export interface IHook<PreHookSignature, PostHookSignature> {
|
|
3
|
+
collectHooks(hooks: {
|
|
4
|
+
postHooks?: PostHookSignature[];
|
|
5
|
+
preHooks?: PreHookSignature[];
|
|
6
|
+
}): void;
|
|
7
|
+
registrar(descriptor: PropertyDescriptor | IUnknownModelAction | IUnknownResourceAction): void;
|
|
7
8
|
reset(): void;
|
|
8
9
|
}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ModuleContainer } from '../../modules/module.container.js';
|
|
1
|
+
import type { IUnknownModelAction } from '../../app.type.js';
|
|
3
2
|
import type { IHook } from './hook.interface.js';
|
|
4
|
-
|
|
3
|
+
type PostHookSignature = {
|
|
4
|
+
action: IUnknownModelAction;
|
|
5
|
+
handle: IUnknownModelAction['handle'];
|
|
6
|
+
};
|
|
7
|
+
type PreHookSignature = {
|
|
8
|
+
action: IUnknownModelAction;
|
|
9
|
+
handle: IUnknownModelAction['handle'];
|
|
10
|
+
};
|
|
11
|
+
export declare class ModelActionHook implements IHook<PreHookSignature, PostHookSignature> {
|
|
5
12
|
private static instance;
|
|
6
13
|
private readonly postModelActionHooks;
|
|
7
14
|
private readonly preModelActionHooks;
|
|
8
|
-
|
|
15
|
+
private constructor();
|
|
16
|
+
collectHooks(hooks: {
|
|
17
|
+
postHooks?: PostHookSignature[];
|
|
18
|
+
preHooks?: PreHookSignature[];
|
|
19
|
+
}): void;
|
|
9
20
|
static getInstance(): ModelActionHook;
|
|
10
|
-
registrar(modelAction:
|
|
21
|
+
registrar(modelAction: IUnknownModelAction): void;
|
|
11
22
|
reset(): void;
|
|
12
23
|
}
|
|
24
|
+
export {};
|
|
@@ -1,26 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ModelActionHookCallbackDoneEvent, PostModelActionHookCallbackDoneEvent, PreModelActionHookCallbackDoneEvent, } from '../../events/hook.event.js';
|
|
1
|
+
import { PostModelActionHookCallbackDoneEvent, PreModelActionHookCallbackDoneEvent } from '../../events/index.js';
|
|
3
2
|
import { EventService } from '../../services/event/event.service.js';
|
|
4
|
-
import {
|
|
3
|
+
import { Container } from '../container/container.js';
|
|
5
4
|
export class ModelActionHook {
|
|
6
5
|
constructor() {
|
|
7
6
|
this.postModelActionHooks = {};
|
|
8
7
|
this.preModelActionHooks = {};
|
|
9
8
|
}
|
|
10
|
-
collectHooks(
|
|
11
|
-
for (const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
this.postModelActionHooks[ACTION_NAME] = [];
|
|
15
|
-
}
|
|
16
|
-
this.postModelActionHooks[ACTION_NAME].push({ collectInput, handle });
|
|
9
|
+
collectHooks(hooks) {
|
|
10
|
+
for (const { action, handle } of hooks.postHooks || []) {
|
|
11
|
+
if (!this.postModelActionHooks[action.constructor.name]) {
|
|
12
|
+
this.postModelActionHooks[action.constructor.name] = [];
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.preModelActionHooks[
|
|
14
|
+
this.postModelActionHooks[action.constructor.name].push({ handle });
|
|
15
|
+
}
|
|
16
|
+
for (const { action, handle } of hooks.preHooks || []) {
|
|
17
|
+
if (!this.preModelActionHooks[action.constructor.name]) {
|
|
18
|
+
this.preModelActionHooks[action.constructor.name] = [];
|
|
23
19
|
}
|
|
20
|
+
this.preModelActionHooks[action.constructor.name].push({ handle });
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
static getInstance() {
|
|
@@ -35,33 +32,17 @@ export class ModelActionHook {
|
|
|
35
32
|
const self = this;
|
|
36
33
|
const originalHandleMethod = modelAction.handle;
|
|
37
34
|
modelAction.handle = async function (...args) {
|
|
38
|
-
const
|
|
35
|
+
const container = Container.getInstance();
|
|
36
|
+
const eventService = await container.get(EventService);
|
|
39
37
|
let output = args[2] || {};
|
|
40
|
-
for (const {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
accumulator[currentValue] = inputService.getInput(currentValue);
|
|
44
|
-
if (!accumulator[currentValue]) {
|
|
45
|
-
throw new Error('No matching input found to process module!');
|
|
46
|
-
}
|
|
47
|
-
return accumulator;
|
|
48
|
-
}, {});
|
|
49
|
-
output = await handle.apply(this, [args[0], resolvedInputs, output]);
|
|
50
|
-
EventService.getInstance().emit(new PreModelActionHookCallbackDoneEvent());
|
|
38
|
+
for (const { handle } of self.preModelActionHooks[modelAction.constructor.name] || []) {
|
|
39
|
+
output = await handle.apply(this, [args[0], args[1], output]);
|
|
40
|
+
eventService.emit(new PreModelActionHookCallbackDoneEvent(modelAction.constructor.name));
|
|
51
41
|
}
|
|
52
42
|
output = await originalHandleMethod.apply(this, [args[0], args[1], output]);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const resolvedInputs = inputs.reduce((accumulator, currentValue) => {
|
|
57
|
-
accumulator[currentValue] = inputService.getInput(currentValue);
|
|
58
|
-
if (!accumulator[currentValue]) {
|
|
59
|
-
throw new Error('No matching input found to process module!');
|
|
60
|
-
}
|
|
61
|
-
return accumulator;
|
|
62
|
-
}, {});
|
|
63
|
-
output = await handle.apply(this, [args[0], resolvedInputs, output]);
|
|
64
|
-
EventService.getInstance().emit(new PostModelActionHookCallbackDoneEvent());
|
|
43
|
+
for (const { handle } of self.postModelActionHooks[modelAction.constructor.name] || []) {
|
|
44
|
+
output = await handle.apply(this, [args[0], args[1], output]);
|
|
45
|
+
eventService.emit(new PostModelActionHookCallbackDoneEvent(modelAction.constructor.name));
|
|
65
46
|
}
|
|
66
47
|
return output;
|
|
67
48
|
};
|