@decaf-ts/core 0.7.59 → 0.7.61
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 +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/lib/esm/identity/decorators.js +3 -3
- package/lib/esm/identity/decorators.js.map +1 -1
- package/lib/esm/index.d.ts +2 -2
- package/lib/esm/index.js +6 -3
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/migrations/Migration.d.ts +19 -0
- package/lib/esm/migrations/Migration.js +73 -0
- package/lib/esm/migrations/Migration.js.map +1 -0
- package/lib/esm/migrations/MigrationService.d.ts +25 -0
- package/lib/esm/migrations/MigrationService.js +206 -0
- package/lib/esm/migrations/MigrationService.js.map +1 -0
- package/lib/esm/migrations/constants.d.ts +2 -0
- package/lib/esm/migrations/constants.js +5 -0
- package/lib/esm/migrations/constants.js.map +1 -0
- package/lib/esm/migrations/decorators.d.ts +7 -0
- package/lib/esm/migrations/decorators.js +49 -0
- package/lib/esm/migrations/decorators.js.map +1 -0
- package/lib/esm/migrations/index.d.ts +5 -0
- package/lib/esm/migrations/index.js +6 -0
- package/lib/esm/migrations/index.js.map +1 -0
- package/lib/esm/migrations/types.d.ts +23 -0
- package/lib/esm/migrations/types.js +2 -0
- package/lib/esm/migrations/types.js.map +1 -0
- package/lib/esm/model/SequenceModel.js +1 -1
- package/lib/esm/model/SequenceModel.js.map +1 -1
- package/lib/esm/model/construction.js +4 -3
- package/lib/esm/model/construction.js.map +1 -1
- package/lib/esm/model/decorators.d.ts +0 -1
- package/lib/esm/model/decorators.js +3 -8
- package/lib/esm/model/decorators.js.map +1 -1
- package/lib/esm/overrides/Metadata.d.ts +6 -1
- package/lib/esm/overrides/Model.d.ts +0 -1
- package/lib/esm/overrides/index.d.ts +0 -1
- package/lib/esm/overrides/index.js +0 -1
- package/lib/esm/overrides/index.js.map +1 -1
- package/lib/esm/overrides/injectables.d.ts +1 -1
- package/lib/esm/overrides/overrides.js +17 -9
- package/lib/esm/overrides/overrides.js.map +1 -1
- package/lib/esm/persistence/Adapter.d.ts +11 -18
- package/lib/esm/persistence/Adapter.js +74 -54
- package/lib/esm/persistence/Adapter.js.map +1 -1
- package/lib/esm/persistence/Context.d.ts +3 -3
- package/lib/esm/persistence/Context.js +2 -2
- package/lib/esm/persistence/Context.js.map +1 -1
- package/lib/esm/persistence/Dispatch.d.ts +7 -3
- package/lib/esm/persistence/Dispatch.js +34 -13
- package/lib/esm/persistence/Dispatch.js.map +1 -1
- package/lib/esm/persistence/ObserverHandler.js +1 -1
- package/lib/esm/persistence/ObserverHandler.js.map +1 -1
- package/lib/esm/persistence/Sequence.d.ts +9 -5
- package/lib/esm/persistence/Sequence.js +19 -15
- package/lib/esm/persistence/Sequence.js.map +1 -1
- package/lib/esm/persistence/constants.d.ts +11 -1
- package/lib/esm/persistence/constants.js +26 -3
- package/lib/esm/persistence/constants.js.map +1 -1
- package/lib/esm/persistence/decorators.d.ts +24 -0
- package/lib/esm/persistence/decorators.js +50 -0
- package/lib/esm/persistence/decorators.js.map +1 -0
- package/lib/esm/persistence/errors.d.ts +3 -3
- package/lib/esm/persistence/errors.js.map +1 -1
- package/lib/esm/persistence/event-filters.d.ts +20 -0
- package/lib/esm/persistence/event-filters.js +60 -0
- package/lib/esm/persistence/event-filters.js.map +1 -0
- package/lib/esm/persistence/index.d.ts +1 -1
- package/lib/esm/persistence/index.js +1 -1
- package/lib/esm/persistence/index.js.map +1 -1
- package/lib/esm/persistence/types.d.ts +9 -6
- package/lib/esm/query/Paginator.d.ts +4 -4
- package/lib/esm/query/Paginator.js +17 -8
- package/lib/esm/query/Paginator.js.map +1 -1
- package/lib/esm/query/Statement.d.ts +6 -4
- package/lib/esm/query/Statement.js +24 -18
- package/lib/esm/query/Statement.js.map +1 -1
- package/lib/esm/query/selectors.d.ts +4 -1
- package/lib/esm/ram/RamAdapter.d.ts +6 -5
- package/lib/esm/ram/RamAdapter.js +20 -16
- package/lib/esm/ram/RamAdapter.js.map +1 -1
- package/lib/esm/ram/RamPaginator.d.ts +1 -1
- package/lib/esm/ram/RamPaginator.js +6 -2
- package/lib/esm/ram/RamPaginator.js.map +1 -1
- package/lib/esm/ram/types.d.ts +2 -0
- package/lib/esm/repository/Repository.d.ts +10 -8
- package/lib/esm/repository/Repository.js +107 -76
- package/lib/esm/repository/Repository.js.map +1 -1
- package/lib/esm/repository/decorators.d.ts +1 -1
- package/lib/esm/repository/decorators.js +1 -1
- package/lib/esm/repository/decorators.js.map +1 -1
- package/lib/esm/repository/injectables.d.ts +2 -1
- package/lib/esm/repository/injectables.js.map +1 -1
- package/lib/esm/services/ModelService.d.ts +42 -0
- package/lib/esm/services/ModelService.js +236 -0
- package/lib/esm/services/ModelService.js.map +1 -0
- package/lib/esm/services/PersistenceService.d.ts +16 -0
- package/lib/esm/services/PersistenceService.js +34 -0
- package/lib/esm/services/PersistenceService.js.map +1 -0
- package/lib/esm/services/index.d.ts +3 -0
- package/lib/esm/services/index.js +4 -0
- package/lib/esm/services/index.js.map +1 -0
- package/lib/esm/services/services.d.ts +93 -0
- package/lib/esm/services/services.js +241 -0
- package/lib/esm/services/services.js.map +1 -0
- package/lib/esm/tasks/TaskContext.d.ts +10 -0
- package/lib/esm/tasks/TaskContext.js +22 -0
- package/lib/esm/tasks/TaskContext.js.map +1 -0
- package/lib/esm/tasks/TaskEngine.d.ts +64 -0
- package/lib/esm/tasks/TaskEngine.js +341 -0
- package/lib/esm/tasks/TaskEngine.js.map +1 -0
- package/lib/esm/tasks/TaskEventBus.d.ts +6 -0
- package/lib/esm/tasks/TaskEventBus.js +14 -0
- package/lib/esm/tasks/TaskEventBus.js.map +1 -0
- package/lib/esm/tasks/TaskEventRepository.d.ts +10 -0
- package/lib/esm/tasks/TaskEventRepository.js +35 -0
- package/lib/esm/tasks/TaskEventRepository.js.map +1 -0
- package/lib/esm/tasks/TaskHandler.d.ts +11 -0
- package/lib/esm/tasks/TaskHandler.js +28 -0
- package/lib/esm/tasks/TaskHandler.js.map +1 -0
- package/lib/esm/tasks/TaskHandlerRegistry.d.ts +8 -0
- package/lib/esm/tasks/TaskHandlerRegistry.js +32 -0
- package/lib/esm/tasks/TaskHandlerRegistry.js.map +1 -0
- package/lib/esm/tasks/TaskService.d.ts +11 -0
- package/lib/esm/tasks/TaskService.js +25 -0
- package/lib/esm/tasks/TaskService.js.map +1 -0
- package/lib/esm/tasks/constants.d.ts +26 -0
- package/lib/esm/tasks/constants.js +32 -0
- package/lib/esm/tasks/constants.js.map +1 -0
- package/lib/esm/tasks/decorators.d.ts +4 -0
- package/lib/esm/tasks/decorators.js +20 -0
- package/lib/esm/tasks/decorators.js.map +1 -0
- package/lib/esm/tasks/index.d.ts +3 -0
- package/lib/esm/tasks/index.js +4 -0
- package/lib/esm/tasks/index.js.map +1 -0
- package/lib/esm/tasks/models/TaskBackoffModel.d.ts +10 -0
- package/lib/esm/tasks/models/TaskBackoffModel.js +47 -0
- package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskBaseModel.d.ts +14 -0
- package/lib/esm/tasks/models/TaskBaseModel.js +30 -0
- package/lib/esm/tasks/models/TaskBaseModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskErrorModel.d.ts +9 -0
- package/lib/esm/tasks/models/TaskErrorModel.js +43 -0
- package/lib/esm/tasks/models/TaskErrorModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskEventModel.d.ts +11 -0
- package/lib/esm/tasks/models/TaskEventModel.js +60 -0
- package/lib/esm/tasks/models/TaskEventModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskLogEntryModel.d.ts +9 -0
- package/lib/esm/tasks/models/TaskLogEntryModel.js +41 -0
- package/lib/esm/tasks/models/TaskLogEntryModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskModel.d.ts +28 -0
- package/lib/esm/tasks/models/TaskModel.js +114 -0
- package/lib/esm/tasks/models/TaskModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskStepResultModel.d.ts +10 -0
- package/lib/esm/tasks/models/TaskStepResultModel.js +40 -0
- package/lib/esm/tasks/models/TaskStepResultModel.js.map +1 -0
- package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +7 -0
- package/lib/esm/tasks/models/TaskStepSpecModel.js +32 -0
- package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -0
- package/lib/esm/tasks/models/index.d.ts +1 -0
- package/lib/esm/tasks/models/index.js +2 -0
- package/lib/esm/tasks/models/index.js.map +1 -0
- package/lib/esm/tasks/types.d.ts +22 -0
- package/lib/esm/tasks/types.js +2 -0
- package/lib/esm/tasks/types.js.map +1 -0
- package/lib/esm/tasks/utils.d.ts +5 -0
- package/lib/esm/tasks/utils.js +24 -0
- package/lib/esm/tasks/utils.js.map +1 -0
- package/lib/esm/utils/ContextualLoggedClass.d.ts +28 -7
- package/lib/esm/utils/ContextualLoggedClass.js +100 -22
- package/lib/esm/utils/ContextualLoggedClass.js.map +1 -1
- package/lib/esm/utils/decorators.d.ts +4 -4
- package/lib/esm/utils/decorators.js +1 -1
- package/lib/esm/utils/decorators.js.map +1 -1
- package/lib/esm/utils/index.d.ts +0 -1
- package/lib/esm/utils/index.js +0 -1
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/utils.d.ts +1 -0
- package/lib/esm/utils/utils.js +24 -0
- package/lib/esm/utils/utils.js.map +1 -1
- package/lib/identity/decorators.cjs +2 -2
- package/lib/identity/decorators.js.map +1 -1
- package/lib/index.cjs +6 -3
- package/lib/index.d.ts +2 -2
- package/lib/index.js.map +1 -1
- package/lib/migrations/Migration.cjs +77 -0
- package/lib/migrations/Migration.d.ts +19 -0
- package/lib/migrations/Migration.js.map +1 -0
- package/lib/migrations/MigrationService.cjs +210 -0
- package/lib/migrations/MigrationService.d.ts +25 -0
- package/lib/migrations/MigrationService.js.map +1 -0
- package/lib/migrations/constants.cjs +8 -0
- package/lib/migrations/constants.d.ts +2 -0
- package/lib/migrations/constants.js.map +1 -0
- package/lib/migrations/decorators.cjs +52 -0
- package/lib/migrations/decorators.d.ts +7 -0
- package/lib/migrations/decorators.js.map +1 -0
- package/lib/migrations/index.cjs +22 -0
- package/lib/migrations/index.d.ts +5 -0
- package/lib/migrations/index.js.map +1 -0
- package/lib/migrations/types.cjs +3 -0
- package/lib/migrations/types.d.ts +23 -0
- package/lib/migrations/types.js.map +1 -0
- package/lib/model/SequenceModel.cjs +1 -1
- package/lib/model/SequenceModel.js.map +1 -1
- package/lib/model/construction.cjs +4 -3
- package/lib/model/construction.js.map +1 -1
- package/lib/model/decorators.cjs +2 -8
- package/lib/model/decorators.d.ts +0 -1
- package/lib/model/decorators.js.map +1 -1
- package/lib/overrides/Metadata.d.ts +6 -1
- package/lib/overrides/Model.d.ts +0 -1
- package/lib/overrides/index.cjs +0 -1
- package/lib/overrides/index.d.ts +0 -1
- package/lib/overrides/index.js.map +1 -1
- package/lib/overrides/injectables.d.ts +1 -1
- package/lib/overrides/overrides.cjs +17 -9
- package/lib/overrides/overrides.js.map +1 -1
- package/lib/persistence/Adapter.cjs +72 -52
- package/lib/persistence/Adapter.d.ts +11 -18
- package/lib/persistence/Adapter.js.map +1 -1
- package/lib/persistence/Context.cjs +2 -2
- package/lib/persistence/Context.d.ts +3 -3
- package/lib/persistence/Context.js.map +1 -1
- package/lib/persistence/Dispatch.cjs +34 -13
- package/lib/persistence/Dispatch.d.ts +7 -3
- package/lib/persistence/Dispatch.js.map +1 -1
- package/lib/persistence/ObserverHandler.cjs +1 -1
- package/lib/persistence/ObserverHandler.js.map +1 -1
- package/lib/persistence/Sequence.cjs +19 -15
- package/lib/persistence/Sequence.d.ts +9 -5
- package/lib/persistence/Sequence.js.map +1 -1
- package/lib/persistence/constants.cjs +26 -3
- package/lib/persistence/constants.d.ts +11 -1
- package/lib/persistence/constants.js.map +1 -1
- package/lib/persistence/decorators.cjs +54 -0
- package/lib/persistence/decorators.d.ts +24 -0
- package/lib/persistence/decorators.js.map +1 -0
- package/lib/persistence/errors.d.ts +3 -3
- package/lib/persistence/errors.js.map +1 -1
- package/lib/persistence/event-filters.cjs +71 -0
- package/lib/persistence/event-filters.d.ts +20 -0
- package/lib/persistence/event-filters.js.map +1 -0
- package/lib/persistence/index.cjs +1 -1
- package/lib/persistence/index.d.ts +1 -1
- package/lib/persistence/index.js.map +1 -1
- package/lib/persistence/types.d.ts +9 -6
- package/lib/query/Paginator.cjs +20 -11
- package/lib/query/Paginator.d.ts +4 -4
- package/lib/query/Paginator.js.map +1 -1
- package/lib/query/Statement.cjs +48 -42
- package/lib/query/Statement.d.ts +6 -4
- package/lib/query/Statement.js.map +1 -1
- package/lib/query/selectors.d.ts +4 -1
- package/lib/ram/RamAdapter.cjs +20 -16
- package/lib/ram/RamAdapter.d.ts +6 -5
- package/lib/ram/RamAdapter.js.map +1 -1
- package/lib/ram/RamPaginator.cjs +6 -2
- package/lib/ram/RamPaginator.d.ts +1 -1
- package/lib/ram/RamPaginator.js.map +1 -1
- package/lib/ram/types.d.ts +2 -0
- package/lib/repository/Repository.cjs +106 -75
- package/lib/repository/Repository.d.ts +10 -8
- package/lib/repository/Repository.js.map +1 -1
- package/lib/repository/decorators.d.ts +1 -1
- package/lib/repository/decorators.js.map +1 -1
- package/lib/repository/injectables.d.ts +2 -1
- package/lib/repository/injectables.js.map +1 -1
- package/lib/services/ModelService.cjs +240 -0
- package/lib/services/ModelService.d.ts +42 -0
- package/lib/services/ModelService.js.map +1 -0
- package/lib/services/PersistenceService.cjs +38 -0
- package/lib/services/PersistenceService.d.ts +16 -0
- package/lib/services/PersistenceService.js.map +1 -0
- package/lib/services/index.cjs +20 -0
- package/lib/services/index.d.ts +3 -0
- package/lib/services/index.js.map +1 -0
- package/lib/services/services.cjs +246 -0
- package/lib/services/services.d.ts +93 -0
- package/lib/services/services.js.map +1 -0
- package/lib/tasks/TaskContext.cjs +26 -0
- package/lib/tasks/TaskContext.d.ts +10 -0
- package/lib/tasks/TaskContext.js.map +1 -0
- package/lib/tasks/TaskEngine.cjs +345 -0
- package/lib/tasks/TaskEngine.d.ts +64 -0
- package/lib/tasks/TaskEngine.js.map +1 -0
- package/lib/tasks/TaskEventBus.cjs +18 -0
- package/lib/tasks/TaskEventBus.d.ts +6 -0
- package/lib/tasks/TaskEventBus.js.map +1 -0
- package/lib/tasks/TaskEventRepository.cjs +38 -0
- package/lib/tasks/TaskEventRepository.d.ts +10 -0
- package/lib/tasks/TaskEventRepository.js.map +1 -0
- package/lib/tasks/TaskHandler.cjs +32 -0
- package/lib/tasks/TaskHandler.d.ts +11 -0
- package/lib/tasks/TaskHandler.js.map +1 -0
- package/lib/tasks/TaskHandlerRegistry.cjs +36 -0
- package/lib/tasks/TaskHandlerRegistry.d.ts +8 -0
- package/lib/tasks/TaskHandlerRegistry.js.map +1 -0
- package/lib/tasks/TaskService.cjs +29 -0
- package/lib/tasks/TaskService.d.ts +11 -0
- package/lib/tasks/TaskService.js.map +1 -0
- package/lib/tasks/constants.cjs +35 -0
- package/lib/tasks/constants.d.ts +26 -0
- package/lib/tasks/constants.js.map +1 -0
- package/lib/tasks/decorators.cjs +23 -0
- package/lib/tasks/decorators.d.ts +4 -0
- package/lib/tasks/decorators.js.map +1 -0
- package/lib/tasks/index.cjs +20 -0
- package/lib/tasks/index.d.ts +3 -0
- package/lib/tasks/index.js.map +1 -0
- package/lib/tasks/models/TaskBackoffModel.cjs +50 -0
- package/lib/tasks/models/TaskBackoffModel.d.ts +10 -0
- package/lib/tasks/models/TaskBackoffModel.js.map +1 -0
- package/lib/tasks/models/TaskBaseModel.cjs +34 -0
- package/lib/tasks/models/TaskBaseModel.d.ts +14 -0
- package/lib/tasks/models/TaskBaseModel.js.map +1 -0
- package/lib/tasks/models/TaskErrorModel.cjs +46 -0
- package/lib/tasks/models/TaskErrorModel.d.ts +9 -0
- package/lib/tasks/models/TaskErrorModel.js.map +1 -0
- package/lib/tasks/models/TaskEventModel.cjs +63 -0
- package/lib/tasks/models/TaskEventModel.d.ts +11 -0
- package/lib/tasks/models/TaskEventModel.js.map +1 -0
- package/lib/tasks/models/TaskLogEntryModel.cjs +44 -0
- package/lib/tasks/models/TaskLogEntryModel.d.ts +9 -0
- package/lib/tasks/models/TaskLogEntryModel.js.map +1 -0
- package/lib/tasks/models/TaskModel.cjs +117 -0
- package/lib/tasks/models/TaskModel.d.ts +28 -0
- package/lib/tasks/models/TaskModel.js.map +1 -0
- package/lib/tasks/models/TaskStepResultModel.cjs +43 -0
- package/lib/tasks/models/TaskStepResultModel.d.ts +10 -0
- package/lib/tasks/models/TaskStepResultModel.js.map +1 -0
- package/lib/tasks/models/TaskStepSpecModel.cjs +35 -0
- package/lib/tasks/models/TaskStepSpecModel.d.ts +7 -0
- package/lib/tasks/models/TaskStepSpecModel.js.map +1 -0
- package/lib/tasks/models/index.cjs +18 -0
- package/lib/tasks/models/index.d.ts +1 -0
- package/lib/tasks/models/index.js.map +1 -0
- package/lib/tasks/types.cjs +3 -0
- package/lib/tasks/types.d.ts +22 -0
- package/lib/tasks/types.js.map +1 -0
- package/lib/tasks/utils.cjs +29 -0
- package/lib/tasks/utils.d.ts +5 -0
- package/lib/tasks/utils.js.map +1 -0
- package/lib/utils/ContextualLoggedClass.cjs +100 -21
- package/lib/utils/ContextualLoggedClass.d.ts +28 -7
- package/lib/utils/ContextualLoggedClass.js.map +1 -1
- package/lib/utils/decorators.cjs +2 -2
- package/lib/utils/decorators.d.ts +4 -4
- package/lib/utils/decorators.js.map +1 -1
- package/lib/utils/index.cjs +0 -1
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/utils.cjs +25 -0
- package/lib/utils/utils.d.ts +1 -0
- package/lib/utils/utils.js.map +1 -1
- package/package.json +12 -2
- package/lib/esm/overrides/decoration.d.ts +0 -1
- package/lib/esm/overrides/decoration.js +0 -6
- package/lib/esm/overrides/decoration.js.map +0 -1
- package/lib/esm/persistence/migrations.d.ts +0 -21
- package/lib/esm/persistence/migrations.js +0 -103
- package/lib/esm/persistence/migrations.js.map +0 -1
- package/lib/esm/utils/Services.d.ts +0 -83
- package/lib/esm/utils/Services.js +0 -392
- package/lib/esm/utils/Services.js.map +0 -1
- package/lib/overrides/decoration.cjs +0 -8
- package/lib/overrides/decoration.d.ts +0 -1
- package/lib/overrides/decoration.js.map +0 -1
- package/lib/persistence/migrations.cjs +0 -109
- package/lib/persistence/migrations.d.ts +0 -21
- package/lib/persistence/migrations.js.map +0 -1
- package/lib/utils/Services.cjs +0 -398
- package/lib/utils/Services.d.ts +0 -83
- package/lib/utils/Services.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { PersistenceKeys } from "./constants.js";
|
|
2
|
+
import { required } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { generated, onCreate, onUpdate, readonly, } from "@decaf-ts/db-decorators";
|
|
4
|
+
import { apply, Decoration } from "@decaf-ts/decoration";
|
|
5
|
+
import { UUID } from "./generators.js";
|
|
6
|
+
/**
|
|
7
|
+
* @description Handler function that sets a timestamp property to the current timestamp.
|
|
8
|
+
* @summary Updates a model property with the current timestamp from the repository context.
|
|
9
|
+
* @template M - The model type extending Model
|
|
10
|
+
* @template R - The repository type extending IRepository
|
|
11
|
+
* @template V - The data type for the operation
|
|
12
|
+
* @template F - The repository flags type
|
|
13
|
+
* @template C - The context type
|
|
14
|
+
* @param {C} context - The repository context containing the current timestamp
|
|
15
|
+
* @param {V} data - The data being processed
|
|
16
|
+
* @param key - The property key to update
|
|
17
|
+
* @param {M} model - The model instance being updated
|
|
18
|
+
* @return {Promise<void>} A promise that resolves when the timestamp has been set
|
|
19
|
+
* @function uuidCreateUpdateHandler
|
|
20
|
+
*/
|
|
21
|
+
export async function uuidCreateUpdateHandler(context, data, key, model) {
|
|
22
|
+
if (context.get("allowGenerationOverride") &&
|
|
23
|
+
typeof model[key] !== "undefined") {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
model[key] = UUID.instance.generate(...(data.args || []));
|
|
27
|
+
}
|
|
28
|
+
export function uuid(update = false, ...args) {
|
|
29
|
+
const decorationKey = PersistenceKeys.UUID;
|
|
30
|
+
function uuid(update, ...args) {
|
|
31
|
+
const meta = { update: update, args: args };
|
|
32
|
+
const decorators = [
|
|
33
|
+
required(),
|
|
34
|
+
generated(PersistenceKeys.UUID),
|
|
35
|
+
onCreate(uuidCreateUpdateHandler, meta),
|
|
36
|
+
];
|
|
37
|
+
if (update)
|
|
38
|
+
decorators.push(onUpdate(uuidCreateUpdateHandler, meta));
|
|
39
|
+
if (!update)
|
|
40
|
+
decorators.push(readonly());
|
|
41
|
+
return apply(...decorators);
|
|
42
|
+
}
|
|
43
|
+
return Decoration.for(decorationKey)
|
|
44
|
+
.define({
|
|
45
|
+
decorator: uuid,
|
|
46
|
+
args: [update, ...args],
|
|
47
|
+
})
|
|
48
|
+
.apply();
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=decorators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/persistence/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAS,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,wBAAqB;AAEpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,OAAqB,EACrB,IAAkB,EAClB,GAAY,EACZ,KAAQ;IAER,IACE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EACjC,CAAC;QACD,OAAO;IACT,CAAC;IACA,KAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAMD,MAAM,UAAU,IAAI,CAAC,SAAkB,KAAK,EAAE,GAAG,IAAW;IAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IAE3C,SAAS,IAAI,CAAC,MAAe,EAAE,GAAG,IAAW;QAC3C,MAAM,IAAI,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAU;YACxB,QAAQ,EAAE;YACV,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/B,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;SACxC,CAAC;QACF,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;KACxB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
|
|
@@ -23,11 +23,11 @@ import { InternalError } from "@decaf-ts/db-decorators";
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
export declare class UnsupportedError extends InternalError {
|
|
26
|
-
constructor(msg: string | Error);
|
|
26
|
+
constructor(msg: string | Error | unknown);
|
|
27
27
|
}
|
|
28
28
|
export declare class MigrationError extends InternalError {
|
|
29
|
-
constructor(msg: string | Error, name?: string);
|
|
29
|
+
constructor(msg: string | Error | unknown, name?: string);
|
|
30
30
|
}
|
|
31
31
|
export declare class MigrationRuleError extends MigrationError {
|
|
32
|
-
constructor(msg: string | Error);
|
|
32
|
+
constructor(msg: string | Error | unknown);
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/persistence/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/persistence/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,GAA6B,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI;QACnE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AllOperationKeys, ObserverFilter } from "./types";
|
|
2
|
+
import { Model, ModelConstructor } from "@decaf-ts/decorator-validation";
|
|
3
|
+
import { Repo } from "../repository/index";
|
|
4
|
+
export declare function onlyOnCreate(clazz: ModelConstructor<any>): ObserverFilter;
|
|
5
|
+
export declare function onlyOnUpdate(clazz: ModelConstructor<any>): ObserverFilter;
|
|
6
|
+
export declare function onlyOnDelete(clazz: ModelConstructor<any>): ObserverFilter;
|
|
7
|
+
export declare function onlyOnTransactional(clazz: ModelConstructor<any>): ObserverFilter;
|
|
8
|
+
export declare function onlyOnSingle(clazz: ModelConstructor<any>): ObserverFilter;
|
|
9
|
+
export declare function onlyOnBulk(clazz: ModelConstructor<any>): ObserverFilter;
|
|
10
|
+
export declare function onlyOnFilter(clazz: ModelConstructor<any>, ops: AllOperationKeys[]): ObserverFilter;
|
|
11
|
+
export type AvailableFilters = typeof DefaultRepositoryFilters;
|
|
12
|
+
export declare const DefaultRepositoryFilters: {
|
|
13
|
+
onlyOnCreate: typeof onlyOnCreate;
|
|
14
|
+
onlyOnUpdate: typeof onlyOnUpdate;
|
|
15
|
+
onlyOnDelete: typeof onlyOnDelete;
|
|
16
|
+
onlyOnTransactional: typeof onlyOnTransactional;
|
|
17
|
+
onlyOnSingle: typeof onlyOnSingle;
|
|
18
|
+
onlyOnBulk: typeof onlyOnBulk;
|
|
19
|
+
};
|
|
20
|
+
export declare function getFilters<M extends Model>(repo: Repo<M>): Record<keyof typeof DefaultRepositoryFilters, ObserverFilter>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Metadata } from "@decaf-ts/decoration";
|
|
2
|
+
import { BulkCrudOperationKeys, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
|
|
3
|
+
import { Model } from "@decaf-ts/decorator-validation";
|
|
4
|
+
import { ContextualLoggedClass, } from "./../utils/ContextualLoggedClass.js";
|
|
5
|
+
import { TransactionOperationKeys } from "./constants.js";
|
|
6
|
+
export function onlyOnCreate(clazz) {
|
|
7
|
+
return onlyOnFilter(clazz, [
|
|
8
|
+
OperationKeys.CREATE,
|
|
9
|
+
BulkCrudOperationKeys.CREATE_ALL,
|
|
10
|
+
]);
|
|
11
|
+
}
|
|
12
|
+
export function onlyOnUpdate(clazz) {
|
|
13
|
+
return onlyOnFilter(clazz, [
|
|
14
|
+
OperationKeys.UPDATE,
|
|
15
|
+
BulkCrudOperationKeys.UPDATE_ALL,
|
|
16
|
+
]);
|
|
17
|
+
}
|
|
18
|
+
export function onlyOnDelete(clazz) {
|
|
19
|
+
return onlyOnFilter(clazz, [
|
|
20
|
+
OperationKeys.DELETE,
|
|
21
|
+
BulkCrudOperationKeys.DELETE_ALL,
|
|
22
|
+
]);
|
|
23
|
+
}
|
|
24
|
+
export function onlyOnTransactional(clazz) {
|
|
25
|
+
return onlyOnFilter(clazz, TransactionOperationKeys);
|
|
26
|
+
}
|
|
27
|
+
export function onlyOnSingle(clazz) {
|
|
28
|
+
return onlyOnFilter(clazz, Object.values(OperationKeys));
|
|
29
|
+
}
|
|
30
|
+
export function onlyOnBulk(clazz) {
|
|
31
|
+
return onlyOnFilter(clazz, Object.values(BulkCrudOperationKeys));
|
|
32
|
+
}
|
|
33
|
+
export function onlyOnFilter(clazz, ops) {
|
|
34
|
+
return (table, event, id, ...args) => {
|
|
35
|
+
if (typeof clazz === "string")
|
|
36
|
+
throw new InternalError(`clazz cannot be string. This should be impossible`);
|
|
37
|
+
const { log } = ContextualLoggedClass.prototype["logCtx"](args, onlyOnFilter);
|
|
38
|
+
log.silly(`filtering ${event} event for${table ? ` ${Model.tableName(table) || table}` : ``} ${id}`);
|
|
39
|
+
return ((typeof table === "string"
|
|
40
|
+
? table === Model.tableName(clazz) || table === clazz.constructor.name
|
|
41
|
+
: Metadata.constr(clazz) === Metadata.constr(table)) &&
|
|
42
|
+
ops.includes(event));
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export const DefaultRepositoryFilters = {
|
|
46
|
+
onlyOnCreate,
|
|
47
|
+
onlyOnUpdate,
|
|
48
|
+
onlyOnDelete,
|
|
49
|
+
onlyOnTransactional,
|
|
50
|
+
onlyOnSingle,
|
|
51
|
+
onlyOnBulk,
|
|
52
|
+
};
|
|
53
|
+
export function getFilters(repo) {
|
|
54
|
+
const filters = Object.assign({}, DefaultRepositoryFilters);
|
|
55
|
+
Object.entries(filters).forEach(([key, value]) => {
|
|
56
|
+
filters[key] = value(repo.class);
|
|
57
|
+
});
|
|
58
|
+
return filters;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=event-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-filters.js","sourceRoot":"","sources":["../../../src/persistence/event-filters.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export * from "./constants";
|
|
|
3
3
|
export * from "./Context";
|
|
4
4
|
export * from "./errors";
|
|
5
5
|
export * from "./generators";
|
|
6
|
-
export * from "./
|
|
6
|
+
export * from "./event-filters";
|
|
7
7
|
export * from "./ObserverHandler";
|
|
8
8
|
export * from "./Sequence";
|
|
9
9
|
export * from "./types";
|
|
@@ -4,7 +4,7 @@ export * from "./constants.js";
|
|
|
4
4
|
export * from "./Context.js";
|
|
5
5
|
export * from "./errors.js";
|
|
6
6
|
export * from "./generators.js";
|
|
7
|
-
export * from "./
|
|
7
|
+
export * from "./event-filters.js";
|
|
8
8
|
export * from "./ObserverHandler.js";
|
|
9
9
|
export * from "./Sequence.js";
|
|
10
10
|
export * from "./types.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,4BAAyB;AACzB,gCAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,4BAAyB;AACzB,gCAA6B;AAC7B,mCAAgC;AAChC,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
|
|
@@ -7,15 +7,19 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
7
7
|
import { ContextualArgs } from "../utils";
|
|
8
8
|
import { Context } from "./Context";
|
|
9
9
|
import { Repository } from "../repository/Repository";
|
|
10
|
+
import { PersistenceKeys } from "./constants";
|
|
11
|
+
import { PreparedStatementKeys } from "../query/index";
|
|
10
12
|
export type FlagsOfContext<C extends Context<any>> = C extends Context<infer F> ? F : never;
|
|
11
13
|
export type LoggerOfContext<C extends Context<any>> = LoggerOfFlags<FlagsOfContext<C>>;
|
|
12
14
|
export type ContextOfRepository<R extends Repository<any, any>> = R extends Repository<any, infer A> ? ContextOf<A> : never;
|
|
13
15
|
export type FlagsOfRepository<R extends Repository<any, any>> = FlagsOfContext<ContextOfRepository<R>>;
|
|
14
16
|
export type LoggerOfRepository<R extends Repository<any, any>> = LoggerOfContext<ContextOfRepository<R>>;
|
|
15
17
|
export type ContextOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any>> = OBJ extends Adapter<any, any, any, infer C> ? C : OBJ extends Repository<any, any> ? ContextOfRepository<OBJ> : never;
|
|
18
|
+
export type ConfigOf<OBJ extends Adapter<any, any, any, any>> = OBJ extends Adapter<infer C, any, any, any> ? C : never;
|
|
16
19
|
export type LoggerOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? LoggerOfContext<C> : never;
|
|
17
20
|
export type FlagsOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? FlagsOfContext<C> : never;
|
|
18
21
|
export type LoggerOf<OBJ extends AdapterFlags<any> | Context<any> | Adapter<any, any, any> | Repository<any, any>> = OBJ extends AdapterFlags<any> ? LoggerOfFlags<OBJ> : OBJ extends Context<any> ? LoggerOfContext<OBJ> : OBJ extends Repository<any, any> ? LoggerOfRepository<OBJ> : OBJ extends Adapter<any, any, any> ? LoggerOfAdapter<OBJ> : Logger;
|
|
22
|
+
export type ConfOf<A extends Adapter<any, any, any, any>> = A extends Adapter<infer C, any, any> ? C : never;
|
|
19
23
|
export type FlagsOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any> | Context<any>> = OBJ extends Context<any> ? FlagsOfContext<OBJ> : OBJ extends Repository<any, any> ? FlagsOfRepository<OBJ> : OBJ extends Adapter<any, any, any, any> ? FlagsOfAdapter<OBJ> : never;
|
|
20
24
|
export type PersistenceObservable<CONTEXT extends Context<any>> = Observable<[
|
|
21
25
|
Observer,
|
|
@@ -40,17 +44,12 @@ export type PersistenceObserver<CONTEXT extends Context<any>> = Observer<[
|
|
|
40
44
|
* @memberOf module:core
|
|
41
45
|
*/
|
|
42
46
|
export type EventIds = string | number | bigint | string[] | number[] | bigint[];
|
|
43
|
-
export type ObserverFilter = (table:
|
|
47
|
+
export type ObserverFilter = (table: Constructor | string, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<any>) => boolean;
|
|
44
48
|
export type InferredAdapterConfig<A> = A extends Adapter<infer CONF, any, any> ? CONF : never;
|
|
45
49
|
export interface AdapterDispatch<A extends Adapter<any, any, any, any>> extends PersistenceObservable<ContextOf<A>> {
|
|
46
50
|
close(): Promise<void>;
|
|
47
51
|
updateObservers<M extends Model>(table: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<ContextOf<A>>): Promise<void>;
|
|
48
52
|
}
|
|
49
|
-
export interface Migration<QUERYRUNNER, A extends Adapter<any, any, any, any>> {
|
|
50
|
-
transaction: boolean;
|
|
51
|
-
up(qr: QUERYRUNNER, adapter?: A, ctx?: ContextOf<A>): Promise<void>;
|
|
52
|
-
down(qr: QUERYRUNNER, adapter?: A, ctx?: ContextOf<A>): Promise<void>;
|
|
53
|
-
}
|
|
54
53
|
export type RepositoryFor<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, any> ? ReturnType<A["repository"]> : never;
|
|
55
54
|
export type PreparedModel = {
|
|
56
55
|
record: Record<string, any>;
|
|
@@ -64,8 +63,12 @@ export type AdapterFlags<LOG extends Logger = Logger> = RepositoryFlags<LOG> & {
|
|
|
64
63
|
forcePrepareSimpleQueries: boolean;
|
|
65
64
|
forcePrepareComplexQueries: boolean;
|
|
66
65
|
cacheForPopulate: Record<string, any>;
|
|
66
|
+
observeFullResult: boolean;
|
|
67
|
+
paginateByBookmark: boolean;
|
|
68
|
+
dryRun: boolean;
|
|
67
69
|
};
|
|
68
70
|
export type RawResult<R, D extends boolean> = D extends true ? R : {
|
|
69
71
|
data: R;
|
|
70
72
|
count?: number;
|
|
71
73
|
};
|
|
74
|
+
export type AllOperationKeys = OperationKeys | BulkCrudOperationKeys | PersistenceKeys | PreparedStatementKeys | string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Adapter } from "../persistence";
|
|
1
|
+
import { Adapter } from "../persistence/Adapter";
|
|
2
2
|
import { Model } from "@decaf-ts/decorator-validation";
|
|
3
3
|
import { Constructor } from "@decaf-ts/decoration";
|
|
4
4
|
import { LoggedClass } from "@decaf-ts/logging";
|
|
5
|
-
import { ContextualArgs, MaybeContextualArg } from "../utils/
|
|
5
|
+
import { ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass";
|
|
6
6
|
import { PreparedStatement } from "./types";
|
|
7
7
|
/**
|
|
8
8
|
* @description Handles pagination for database queries
|
|
@@ -78,7 +78,7 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
|
|
|
78
78
|
protected constructor(adapter: Adapter<any, any, Q, any>, query: Q | PreparedStatement<M>, size: number, clazz: Constructor<M>);
|
|
79
79
|
protected isPreparedStatement(): "" | RegExpMatchArray | null;
|
|
80
80
|
protected pagePrefix(page?: number, ...args: MaybeContextualArg<any>): Promise<any[]>;
|
|
81
|
-
protected pagePrepared(page
|
|
81
|
+
protected pagePrepared(page: number, bookmark?: any, ...argz: ContextualArgs<any>): Promise<M[]>;
|
|
82
82
|
/**
|
|
83
83
|
* @description Prepares a statement for pagination
|
|
84
84
|
* @summary Modifies the raw query statement to include pagination parameters.
|
|
@@ -90,7 +90,7 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
|
|
|
90
90
|
next(...args: MaybeContextualArg<any>): Promise<R>;
|
|
91
91
|
previous(...args: MaybeContextualArg<any>): Promise<R>;
|
|
92
92
|
protected validatePage(page: number): number;
|
|
93
|
-
page(page?: number, ...args: MaybeContextualArg<any>): Promise<R>;
|
|
93
|
+
page(page?: number, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<R>;
|
|
94
94
|
serialize(data: M[], toString?: boolean): string | SerializedPage<M>;
|
|
95
95
|
apply(serialization: string | SerializedPage<M>): M[];
|
|
96
96
|
static deserialize<M extends Model>(str: string): SerializedPage<M>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PagingError } from "./errors.js";
|
|
2
|
-
import { Context
|
|
2
|
+
import { Context } from "./../persistence/Context.js";
|
|
3
|
+
import { prefixMethod } from "./../utils/utils.js";
|
|
4
|
+
import { UnsupportedError } from "./../persistence/errors.js";
|
|
3
5
|
import { LoggedClass } from "@decaf-ts/logging";
|
|
4
6
|
import { PreparedStatementKeys } from "./constants.js";
|
|
5
7
|
import { Repository } from "./../repository/Repository.js";
|
|
@@ -89,10 +91,17 @@ export class Paginator extends LoggedClass {
|
|
|
89
91
|
query.method.match(new RegExp(`${PreparedStatementKeys.FIND_BY}|${PreparedStatementKeys.LIST_BY}`, "gi")));
|
|
90
92
|
}
|
|
91
93
|
async pagePrefix(page, ...args) {
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
const { ctxArgs } = (await this.adapter["logCtx"]([this.clazz, ...args], PreparedStatementKeys.PAGE_BY, true)).for(this.pagePrefix);
|
|
95
|
+
ctxArgs.shift();
|
|
96
|
+
return [page, ...ctxArgs];
|
|
97
|
+
}
|
|
98
|
+
async pagePrepared(page, bookmark, ...argz) {
|
|
99
|
+
const { log, ctxArgs } = this.adapter["logCtx"](bookmark && !(bookmark instanceof Context)
|
|
100
|
+
? [...argz]
|
|
101
|
+
: [bookmark, ...argz], this.pagePrepared);
|
|
102
|
+
log.debug(`Running paged prepared statement ${page} page${bookmark ? ` - bookmark ${bookmark}` : ""}`);
|
|
103
|
+
if (bookmark && !(bookmark instanceof Context))
|
|
104
|
+
this._bookmark = bookmark;
|
|
96
105
|
const repo = Repository.forModel(this.clazz, this.adapter.alias);
|
|
97
106
|
const statement = this.query;
|
|
98
107
|
const { method, args, params } = statement;
|
|
@@ -120,7 +129,7 @@ export class Paginator extends LoggedClass {
|
|
|
120
129
|
};
|
|
121
130
|
}
|
|
122
131
|
preparedArgs.push(preparedParams);
|
|
123
|
-
const result = await repo.statement(...preparedArgs, ...
|
|
132
|
+
const result = await repo.statement(...preparedArgs, ...ctxArgs);
|
|
124
133
|
return this.apply(result);
|
|
125
134
|
}
|
|
126
135
|
async next(...args) {
|
|
@@ -136,8 +145,8 @@ export class Paginator extends LoggedClass {
|
|
|
136
145
|
throw new PagingError(`Only ${this._totalPages} are available. Cannot go to page ${page}`);
|
|
137
146
|
return page;
|
|
138
147
|
}
|
|
139
|
-
async page(page = 1, ...args) {
|
|
140
|
-
const { ctxArgs } = this.adapter["logCtx"](args, this.page);
|
|
148
|
+
async page(page = 1, bookmark, ...args) {
|
|
149
|
+
const { ctxArgs } = this.adapter["logCtx"]([bookmark, ...args], this.page);
|
|
141
150
|
if (this.isPreparedStatement())
|
|
142
151
|
return (await this.pagePrepared(page, ...ctxArgs));
|
|
143
152
|
throw new UnsupportedError("Raw support not available without subclassing this");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAiB;
|
|
1
|
+
{"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,14 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
2
2
|
import type { Executor, RawExecutor } from "../interfaces";
|
|
3
3
|
import type { FromSelector, GroupBySelector, OrderBySelector, SelectSelector } from "./selectors";
|
|
4
4
|
import { Condition } from "./Condition";
|
|
5
|
+
import { Logger } from "@decaf-ts/logging";
|
|
5
6
|
import type { CountOption, DistinctOption, LimitOption, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, PreparableStatementExecutor, SelectOption, StatementExecutor, WhereOption } from "./options";
|
|
6
7
|
import { Paginatable } from "../interfaces/Paginatable";
|
|
7
8
|
import { Paginator } from "./Paginator";
|
|
8
|
-
import { Adapter
|
|
9
|
-
import {
|
|
9
|
+
import { Adapter } from "../persistence/Adapter";
|
|
10
|
+
import type { AdapterFlags, ContextOf } from "../persistence/types";
|
|
10
11
|
import { Constructor } from "@decaf-ts/decoration";
|
|
11
|
-
import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/
|
|
12
|
+
import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/ContextualLoggedClass";
|
|
12
13
|
import { PreparedStatement } from "./types";
|
|
13
14
|
/**
|
|
14
15
|
* @description Base class for database query statements
|
|
@@ -77,6 +78,7 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
|
|
|
77
78
|
protected offsetSelector?: number;
|
|
78
79
|
protected prepared?: PreparedStatement<M>;
|
|
79
80
|
protected constructor(adapter: Adapter<any, any, Q, any>, overrides?: Partial<AdapterFlags> | undefined);
|
|
81
|
+
protected executionPrefix(method: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[Constructor<M>, ...any[], any]>;
|
|
80
82
|
protected get log(): Logger;
|
|
81
83
|
select<S extends readonly SelectSelector<M>[]>(): SelectOption<M, M[]>;
|
|
82
84
|
select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): SelectOption<M, Pick<M, S[number]>[]>;
|
|
@@ -91,7 +93,7 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
|
|
|
91
93
|
limit(value: number): OffsetOption<M, R>;
|
|
92
94
|
offset(value: number): PreparableStatementExecutor<M, R>;
|
|
93
95
|
execute(...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
|
|
94
|
-
protected executePrepared(...argz:
|
|
96
|
+
protected executePrepared(...argz: ContextualArgs<ContextOf<A>>): Promise<R>;
|
|
95
97
|
raw<R>(rawInput: Q, ...args: ContextualArgs<ContextOf<A>>): Promise<R>;
|
|
96
98
|
protected prepareCondition(condition: Condition<any>, ctx: ContextOf<A>): PreparedStatement<any>;
|
|
97
99
|
protected squash(ctx: ContextOf<A>): PreparedStatement<any> | undefined;
|
|
@@ -12,10 +12,10 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
12
12
|
import { Condition } from "./Condition.js";
|
|
13
13
|
import { prefixMethod } from "@decaf-ts/db-decorators";
|
|
14
14
|
import { final, toCamelCase } from "@decaf-ts/logging";
|
|
15
|
-
import {
|
|
15
|
+
import { PersistenceKeys } from "./../persistence/constants.js";
|
|
16
|
+
import { UnsupportedError } from "./../persistence/errors.js";
|
|
16
17
|
import { QueryError } from "./errors.js";
|
|
17
|
-
import { ContextualLoggedClass, } from "./../utils/
|
|
18
|
-
import { Context } from "./../persistence/Context.js";
|
|
18
|
+
import { ContextualLoggedClass, } from "./../utils/ContextualLoggedClass.js";
|
|
19
19
|
import { QueryClause } from "./types.js";
|
|
20
20
|
import { GroupOperator, Operator, PreparedStatementKeys } from "./constants.js";
|
|
21
21
|
import { OrderDirection } from "./../repository/constants.js";
|
|
@@ -77,23 +77,26 @@ export class Statement extends ContextualLoggedClass {
|
|
|
77
77
|
this.adapter = adapter;
|
|
78
78
|
this.overrides = overrides;
|
|
79
79
|
[this.execute, this.paginate].forEach((m) => {
|
|
80
|
-
prefixMethod(this, m,
|
|
81
|
-
|
|
82
|
-
if ((!execArgs.length ||
|
|
83
|
-
!(execArgs[execArgs.length - 1] instanceof Context)) &&
|
|
84
|
-
this.fromSelector) {
|
|
85
|
-
const ctx = await this.adapter.context(PersistenceKeys.QUERY, this.overrides || {}, this.fromSelector);
|
|
86
|
-
execArgs = [...execArgs, ctx];
|
|
87
|
-
}
|
|
88
|
-
const { ctx, ctxArgs } = Adapter.logCtx(execArgs, m.name);
|
|
89
|
-
const forceSimple = ctx.get("forcePrepareSimpleQueries");
|
|
90
|
-
const forceComplex = ctx.get("forcePrepareComplexQueries");
|
|
91
|
-
if ((forceSimple && this.isSimpleQuery()) || forceComplex)
|
|
92
|
-
await this.prepare(ctx);
|
|
93
|
-
return ctxArgs;
|
|
80
|
+
prefixMethod(this, m, (...args) => {
|
|
81
|
+
return this.executionPrefix(m, ...args);
|
|
94
82
|
}, m.name);
|
|
95
83
|
});
|
|
96
84
|
}
|
|
85
|
+
async executionPrefix(method, ...args) {
|
|
86
|
+
const { ctx, ctxArgs, log } = (await this.adapter["logCtx"]([this.fromSelector, ...args], method.name === this.paginate.name
|
|
87
|
+
? PreparedStatementKeys.PAGE_BY
|
|
88
|
+
: PersistenceKeys.QUERY, true, this.overrides || {})).for(method);
|
|
89
|
+
ctxArgs.shift();
|
|
90
|
+
const forceSimple = ctx.get("forcePrepareSimpleQueries");
|
|
91
|
+
const forceComplex = ctx.get("forcePrepareComplexQueries");
|
|
92
|
+
log.silly(`statement force simple ${forceSimple}, forceComplex: ${forceComplex}`);
|
|
93
|
+
if ((forceSimple && this.isSimpleQuery()) || forceComplex) {
|
|
94
|
+
log.silly(`squashing ${!forceComplex ? "simple" : "complex"} query to prepared statement`);
|
|
95
|
+
await this.prepare(ctx);
|
|
96
|
+
log.silly(`squashed ${!forceComplex ? "simple" : "complex"} query to ${JSON.stringify(this.prepared, null, 2)}`);
|
|
97
|
+
}
|
|
98
|
+
return ctxArgs;
|
|
99
|
+
}
|
|
97
100
|
get log() {
|
|
98
101
|
return this.adapter.log.for(Statement);
|
|
99
102
|
}
|
|
@@ -147,11 +150,14 @@ export class Statement extends ContextualLoggedClass {
|
|
|
147
150
|
return this;
|
|
148
151
|
}
|
|
149
152
|
async execute(...args) {
|
|
153
|
+
const { log, ctxArgs } = this.logCtx(args, this.execute);
|
|
150
154
|
try {
|
|
151
155
|
if (this.prepared)
|
|
152
156
|
return this.executePrepared(...args);
|
|
157
|
+
log.silly(`Building raw statement...`);
|
|
153
158
|
const query = this.build();
|
|
154
|
-
|
|
159
|
+
log.silly(`executing raw statement`);
|
|
160
|
+
return (await this.raw(query, ...ctxArgs));
|
|
155
161
|
}
|
|
156
162
|
catch (e) {
|
|
157
163
|
throw new QueryError(e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,10 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
10
10
|
*/
|
|
11
11
|
export type FromSelector<M extends Model> = Constructor<M> | string;
|
|
12
12
|
export type GroupBySelector<M extends Model> = keyof M;
|
|
13
|
-
export type OrderBySelector<M extends Model> = [
|
|
13
|
+
export type OrderBySelector<M extends Model> = [
|
|
14
|
+
keyof M,
|
|
15
|
+
OrderDirection | "asc" | "desc"
|
|
16
|
+
];
|
|
14
17
|
/**
|
|
15
18
|
* @description Type for limiting query results
|
|
16
19
|
* @summary Defines the type for specifying the maximum number of results to return
|
|
@@ -7,6 +7,7 @@ import { Model } from "@decaf-ts/decorator-validation";
|
|
|
7
7
|
import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
|
|
8
8
|
import type { Constructor } from "@decaf-ts/decoration";
|
|
9
9
|
import { RamPaginator } from "./RamPaginator";
|
|
10
|
+
import { ContextualArgs } from "../utils/ContextualLoggedClass";
|
|
10
11
|
/**
|
|
11
12
|
* @description In-memory adapter for data persistence
|
|
12
13
|
* @summary The RamAdapter provides an in-memory implementation of the persistence layer.
|
|
@@ -136,7 +137,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
136
137
|
* RamAdapter->>RamAdapter: lock.release()
|
|
137
138
|
* RamAdapter-->>Caller: model
|
|
138
139
|
*/
|
|
139
|
-
create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>,
|
|
140
|
+
create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
|
|
140
141
|
/**
|
|
141
142
|
* @description Retrieves a record from in-memory storage
|
|
142
143
|
* @summary Fetches a record with the specified ID from the given table.
|
|
@@ -163,7 +164,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
163
164
|
* Storage-->>RamAdapter: record
|
|
164
165
|
* RamAdapter-->>Caller: record
|
|
165
166
|
*/
|
|
166
|
-
read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType,
|
|
167
|
+
read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
|
|
167
168
|
/**
|
|
168
169
|
* @description Updates an existing record in the in-memory storage
|
|
169
170
|
* @summary Updates a record with the specified ID in the given table.
|
|
@@ -193,7 +194,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
193
194
|
* RamAdapter->>RamAdapter: lock.release()
|
|
194
195
|
* RamAdapter-->>Caller: model
|
|
195
196
|
*/
|
|
196
|
-
update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>,
|
|
197
|
+
update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
|
|
197
198
|
/**
|
|
198
199
|
* @description Deletes a record from the in-memory storage
|
|
199
200
|
* @summary Removes a record with the specified ID from the given table.
|
|
@@ -224,7 +225,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
224
225
|
* RamAdapter->>RamAdapter: lock.release()
|
|
225
226
|
* RamAdapter-->>Caller: record
|
|
226
227
|
*/
|
|
227
|
-
delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType,
|
|
228
|
+
delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
|
|
228
229
|
/**
|
|
229
230
|
* @description Gets or creates a table in the in-memory storage
|
|
230
231
|
* @summary Retrieves the Map representing a table for a given model or table name.
|
|
@@ -278,7 +279,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
|
|
|
278
279
|
* end
|
|
279
280
|
* RamAdapter-->>Caller: result
|
|
280
281
|
*/
|
|
281
|
-
raw<R, D extends boolean>(rawInput: RawRamQuery<any>, docsOnly
|
|
282
|
+
raw<R, D extends boolean>(rawInput: RawRamQuery<any>, docsOnly?: D, ...args: ContextualArgs<RamContext>): Promise<RawResult<R, D>>;
|
|
282
283
|
/**
|
|
283
284
|
* @description Parses and converts errors to appropriate types
|
|
284
285
|
* @summary Ensures that errors are of the correct type for consistent error handling.
|