@warlock.js/cascade 4.0.48 → 4.0.58
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/cjs/context/database-data-source-context.d.ts +29 -0
- package/cjs/context/database-data-source-context.d.ts.map +1 -0
- package/cjs/context/database-data-source-context.js +28 -0
- package/cjs/context/database-data-source-context.js.map +1 -0
- package/cjs/context/database-transaction-context.d.ts +31 -0
- package/cjs/context/database-transaction-context.d.ts.map +1 -0
- package/cjs/context/database-transaction-context.js +34 -0
- package/cjs/context/database-transaction-context.js.map +1 -0
- package/cjs/contracts/database-driver.contract.d.ts +143 -0
- package/cjs/contracts/database-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/database-id-generator.contract.d.ts +109 -0
- package/cjs/contracts/database-id-generator.contract.d.ts.map +1 -0
- package/cjs/contracts/database-remover.contract.d.ts +104 -0
- package/cjs/contracts/database-remover.contract.d.ts.map +1 -0
- package/cjs/contracts/database-restorer.contract.d.ts +143 -0
- package/cjs/contracts/database-restorer.contract.d.ts.map +1 -0
- package/cjs/contracts/database-writer.contract.d.ts +119 -0
- package/cjs/contracts/database-writer.contract.d.ts.map +1 -0
- package/cjs/contracts/driver-blueprint.contract.d.ts +45 -0
- package/cjs/contracts/driver-blueprint.contract.d.ts.map +1 -0
- package/cjs/contracts/index.d.ts +10 -0
- package/cjs/contracts/index.d.ts.map +1 -0
- package/cjs/contracts/migration-driver.contract.d.ts +365 -0
- package/cjs/contracts/migration-driver.contract.d.ts.map +1 -0
- package/cjs/contracts/query-builder.contract.d.ts +1128 -0
- package/cjs/contracts/query-builder.contract.d.ts.map +1 -0
- package/cjs/contracts/sync-adapter.contract.d.ts +58 -0
- package/cjs/contracts/sync-adapter.contract.d.ts.map +1 -0
- package/cjs/data-source/data-source-registry.d.ts +104 -0
- package/cjs/data-source/data-source-registry.d.ts.map +1 -0
- package/cjs/data-source/data-source-registry.js +138 -0
- package/cjs/data-source/data-source-registry.js.map +1 -0
- package/cjs/data-source/data-source.d.ts +106 -0
- package/cjs/data-source/data-source.d.ts.map +1 -0
- package/cjs/data-source/data-source.js +77 -0
- package/cjs/data-source/data-source.js.map +1 -0
- package/cjs/database-dirty-tracker.d.ts +253 -0
- package/cjs/database-dirty-tracker.d.ts.map +1 -0
- package/cjs/database-dirty-tracker.js +389 -0
- package/cjs/database-dirty-tracker.js.map +1 -0
- package/cjs/drivers/mongo/mongo-id-generator.d.ts +116 -0
- package/cjs/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-id-generator.js +149 -0
- package/cjs/drivers/mongo/mongo-id-generator.js.map +1 -0
- package/cjs/drivers/mongo/mongo-migration-driver.d.ts +228 -0
- package/cjs/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-migration-driver.js +524 -0
- package/cjs/drivers/mongo/mongo-migration-driver.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-builder.d.ts +922 -0
- package/cjs/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-builder.js +1740 -0
- package/cjs/drivers/mongo/mongo-query-builder.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-operations.d.ts +226 -0
- package/cjs/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-operations.js +270 -0
- package/cjs/drivers/mongo/mongo-query-operations.js.map +1 -0
- package/cjs/drivers/mongo/mongo-query-parser.d.ts +262 -0
- package/cjs/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-query-parser.js +1351 -0
- package/cjs/drivers/mongo/mongo-query-parser.js.map +1 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.js +146 -0
- package/cjs/drivers/mongo/mongo-sync-adapter.js.map +1 -0
- package/cjs/drivers/mongo/mongodb-blueprint.d.ts +30 -0
- package/cjs/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongodb-blueprint.js +51 -0
- package/cjs/drivers/mongo/mongodb-blueprint.js.map +1 -0
- package/cjs/drivers/mongo/mongodb-driver.d.ts +188 -0
- package/cjs/drivers/mongo/mongodb-driver.d.ts.map +1 -0
- package/cjs/drivers/mongo/mongodb-driver.js +411 -0
- package/cjs/drivers/mongo/mongodb-driver.js.map +1 -0
- package/cjs/drivers/mongo/types.d.ts +43 -0
- package/cjs/drivers/mongo/types.d.ts.map +1 -0
- package/cjs/errors/missing-data-source.error.d.ts +22 -0
- package/cjs/errors/missing-data-source.error.d.ts.map +1 -0
- package/cjs/errors/missing-data-source.error.js +29 -0
- package/cjs/errors/missing-data-source.error.js.map +1 -0
- package/cjs/events/model-events.d.ts +231 -0
- package/cjs/events/model-events.d.ts.map +1 -0
- package/cjs/events/model-events.js +259 -0
- package/cjs/events/model-events.js.map +1 -0
- package/cjs/expressions/aggregate-expressions.d.ts +215 -0
- package/cjs/expressions/aggregate-expressions.d.ts.map +1 -0
- package/cjs/expressions/aggregate-expressions.js +221 -0
- package/cjs/expressions/aggregate-expressions.js.map +1 -0
- package/cjs/expressions/index.d.ts +2 -0
- package/cjs/expressions/index.d.ts.map +1 -0
- package/cjs/index.d.ts +41 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -267
- package/cjs/index.js.map +1 -1
- package/cjs/migration/column-builder.d.ts +167 -0
- package/cjs/migration/column-builder.d.ts.map +1 -0
- package/cjs/migration/column-builder.js +217 -0
- package/cjs/migration/column-builder.js.map +1 -0
- package/cjs/migration/foreign-key-builder.d.ts +110 -0
- package/cjs/migration/foreign-key-builder.d.ts.map +1 -0
- package/cjs/migration/foreign-key-builder.js +129 -0
- package/cjs/migration/foreign-key-builder.js.map +1 -0
- package/cjs/migration/index.d.ts +6 -0
- package/cjs/migration/index.d.ts.map +1 -0
- package/cjs/migration/migration-runner.d.ts +231 -0
- package/cjs/migration/migration-runner.d.ts.map +1 -0
- package/cjs/migration/migration-runner.js +443 -0
- package/cjs/migration/migration-runner.js.map +1 -0
- package/cjs/migration/migration.js +1346 -0
- package/cjs/migration/migration.js.map +1 -0
- package/cjs/migration/types.d.ts +132 -0
- package/cjs/migration/types.d.ts.map +1 -0
- package/cjs/model/model.d.ts +1267 -0
- package/cjs/model/model.d.ts.map +1 -0
- package/cjs/model/model.js +1463 -0
- package/cjs/model/model.js.map +1 -0
- package/cjs/model/register-model.d.ts +80 -0
- package/cjs/model/register-model.d.ts.map +1 -0
- package/cjs/model/register-model.js +91 -0
- package/cjs/model/register-model.js.map +1 -0
- package/cjs/remover/database-remover.d.ts +100 -0
- package/cjs/remover/database-remover.d.ts.map +1 -0
- package/cjs/remover/database-remover.js +209 -0
- package/cjs/remover/database-remover.js.map +1 -0
- package/cjs/restorer/database-restorer.d.ts +131 -0
- package/cjs/restorer/database-restorer.d.ts.map +1 -0
- package/cjs/restorer/database-restorer.js +425 -0
- package/cjs/restorer/database-restorer.js.map +1 -0
- package/cjs/sync/index.d.ts +12 -0
- package/cjs/sync/index.d.ts.map +1 -0
- package/cjs/sync/model-events.d.ts +62 -0
- package/cjs/sync/model-events.d.ts.map +1 -0
- package/cjs/sync/model-events.js +49 -0
- package/cjs/sync/model-events.js.map +1 -0
- package/cjs/sync/model-sync-operation.d.ts +163 -0
- package/cjs/sync/model-sync-operation.d.ts.map +1 -0
- package/cjs/sync/model-sync-operation.js +292 -0
- package/cjs/sync/model-sync-operation.js.map +1 -0
- package/cjs/sync/model-sync.d.ts +130 -0
- package/cjs/sync/model-sync.d.ts.map +1 -0
- package/cjs/sync/model-sync.js +178 -0
- package/cjs/sync/model-sync.js.map +1 -0
- package/cjs/sync/sync-context.d.ts +70 -0
- package/cjs/sync/sync-context.d.ts.map +1 -0
- package/cjs/sync/sync-context.js +101 -0
- package/cjs/sync/sync-context.js.map +1 -0
- package/cjs/sync/sync-manager.d.ts +213 -0
- package/cjs/sync/sync-manager.d.ts.map +1 -0
- package/cjs/sync/sync-manager.js +689 -0
- package/cjs/sync/sync-manager.js.map +1 -0
- package/cjs/sync/types.d.ts +289 -0
- package/cjs/sync/types.d.ts.map +1 -0
- package/cjs/types.d.ts +45 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.d.ts +246 -0
- package/cjs/utils/connect-to-database.d.ts.map +1 -0
- package/cjs/utils/connect-to-database.js +92 -0
- package/cjs/utils/connect-to-database.js.map +1 -0
- package/cjs/utils/database-writer.utils.d.ts +15 -0
- package/cjs/utils/database-writer.utils.d.ts.map +1 -0
- package/cjs/utils/database-writer.utils.js +14 -0
- package/cjs/utils/database-writer.utils.js.map +1 -0
- package/cjs/utils/define-model.js +100 -0
- package/cjs/utils/define-model.js.map +1 -0
- package/cjs/utils/once-connected.d.ts +146 -0
- package/cjs/utils/once-connected.d.ts.map +1 -0
- package/cjs/utils/once-connected.js +252 -0
- package/cjs/utils/once-connected.js.map +1 -0
- package/cjs/validation/database-seal-plugins.d.ts +2 -0
- package/cjs/validation/database-seal-plugins.d.ts.map +1 -0
- package/cjs/validation/database-seal-plugins.js +4 -0
- package/cjs/validation/database-seal-plugins.js.map +1 -0
- package/cjs/validation/database-writer-validation-error.d.ts +97 -0
- package/cjs/validation/database-writer-validation-error.d.ts.map +1 -0
- package/cjs/validation/database-writer-validation-error.js +160 -0
- package/cjs/validation/database-writer-validation-error.js.map +1 -0
- package/cjs/validation/index.d.ts +3 -0
- package/cjs/validation/index.d.ts.map +1 -0
- package/cjs/validation/mutators/embed-mutator.d.ts +9 -0
- package/cjs/validation/mutators/embed-mutator.d.ts.map +1 -0
- package/cjs/validation/mutators/embed-mutator.js +33 -0
- package/cjs/validation/mutators/embed-mutator.js.map +1 -0
- package/cjs/validation/plugins/embed-validator-plugin.d.ts +24 -0
- package/cjs/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
- package/cjs/validation/plugins/embed-validator-plugin.js +18 -0
- package/cjs/validation/plugins/embed-validator-plugin.js.map +1 -0
- package/cjs/validation/rules/database-model-rule.d.ts +7 -0
- package/cjs/validation/rules/database-model-rule.d.ts.map +1 -0
- package/cjs/validation/rules/database-model-rule.js +27 -0
- package/cjs/validation/rules/database-model-rule.js.map +1 -0
- package/cjs/validation/transformers/embed-model-transformer.d.ts +3 -0
- package/cjs/validation/transformers/embed-model-transformer.d.ts.map +1 -0
- package/cjs/validation/transformers/embed-model-transformer.js +18 -0
- package/cjs/validation/transformers/embed-model-transformer.js.map +1 -0
- package/cjs/validation/validators/embed-validator.d.ts +21 -0
- package/cjs/validation/validators/embed-validator.d.ts.map +1 -0
- package/cjs/validation/validators/embed-validator.js +42 -0
- package/cjs/validation/validators/embed-validator.js.map +1 -0
- package/cjs/writer/database-writer.d.ts +181 -0
- package/cjs/writer/database-writer.d.ts.map +1 -0
- package/cjs/writer/database-writer.js +402 -0
- package/cjs/writer/database-writer.js.map +1 -0
- package/esm/context/database-data-source-context.d.ts +29 -0
- package/esm/context/database-data-source-context.d.ts.map +1 -0
- package/esm/context/database-data-source-context.js +28 -0
- package/esm/context/database-data-source-context.js.map +1 -0
- package/esm/context/database-transaction-context.d.ts +31 -0
- package/esm/context/database-transaction-context.d.ts.map +1 -0
- package/esm/context/database-transaction-context.js +34 -0
- package/esm/context/database-transaction-context.js.map +1 -0
- package/esm/contracts/database-driver.contract.d.ts +143 -0
- package/esm/contracts/database-driver.contract.d.ts.map +1 -0
- package/esm/contracts/database-id-generator.contract.d.ts +109 -0
- package/esm/contracts/database-id-generator.contract.d.ts.map +1 -0
- package/esm/contracts/database-remover.contract.d.ts +104 -0
- package/esm/contracts/database-remover.contract.d.ts.map +1 -0
- package/esm/contracts/database-restorer.contract.d.ts +143 -0
- package/esm/contracts/database-restorer.contract.d.ts.map +1 -0
- package/esm/contracts/database-writer.contract.d.ts +119 -0
- package/esm/contracts/database-writer.contract.d.ts.map +1 -0
- package/esm/contracts/driver-blueprint.contract.d.ts +45 -0
- package/esm/contracts/driver-blueprint.contract.d.ts.map +1 -0
- package/esm/contracts/index.d.ts +10 -0
- package/esm/contracts/index.d.ts.map +1 -0
- package/esm/contracts/migration-driver.contract.d.ts +365 -0
- package/esm/contracts/migration-driver.contract.d.ts.map +1 -0
- package/esm/contracts/query-builder.contract.d.ts +1128 -0
- package/esm/contracts/query-builder.contract.d.ts.map +1 -0
- package/esm/contracts/sync-adapter.contract.d.ts +58 -0
- package/esm/contracts/sync-adapter.contract.d.ts.map +1 -0
- package/esm/data-source/data-source-registry.d.ts +104 -0
- package/esm/data-source/data-source-registry.d.ts.map +1 -0
- package/esm/data-source/data-source-registry.js +138 -0
- package/esm/data-source/data-source-registry.js.map +1 -0
- package/esm/data-source/data-source.d.ts +106 -0
- package/esm/data-source/data-source.d.ts.map +1 -0
- package/esm/data-source/data-source.js +77 -0
- package/esm/data-source/data-source.js.map +1 -0
- package/esm/database-dirty-tracker.d.ts +253 -0
- package/esm/database-dirty-tracker.d.ts.map +1 -0
- package/esm/database-dirty-tracker.js +389 -0
- package/esm/database-dirty-tracker.js.map +1 -0
- package/esm/drivers/mongo/mongo-id-generator.d.ts +116 -0
- package/esm/drivers/mongo/mongo-id-generator.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-id-generator.js +149 -0
- package/esm/drivers/mongo/mongo-id-generator.js.map +1 -0
- package/esm/drivers/mongo/mongo-migration-driver.d.ts +228 -0
- package/esm/drivers/mongo/mongo-migration-driver.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-migration-driver.js +524 -0
- package/esm/drivers/mongo/mongo-migration-driver.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-builder.d.ts +922 -0
- package/esm/drivers/mongo/mongo-query-builder.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-builder.js +1740 -0
- package/esm/drivers/mongo/mongo-query-builder.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-operations.d.ts +226 -0
- package/esm/drivers/mongo/mongo-query-operations.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-operations.js +270 -0
- package/esm/drivers/mongo/mongo-query-operations.js.map +1 -0
- package/esm/drivers/mongo/mongo-query-parser.d.ts +262 -0
- package/esm/drivers/mongo/mongo-query-parser.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-query-parser.js +1351 -0
- package/esm/drivers/mongo/mongo-query-parser.js.map +1 -0
- package/esm/drivers/mongo/mongo-sync-adapter.d.ts +79 -0
- package/esm/drivers/mongo/mongo-sync-adapter.d.ts.map +1 -0
- package/esm/drivers/mongo/mongo-sync-adapter.js +146 -0
- package/esm/drivers/mongo/mongo-sync-adapter.js.map +1 -0
- package/esm/drivers/mongo/mongodb-blueprint.d.ts +30 -0
- package/esm/drivers/mongo/mongodb-blueprint.d.ts.map +1 -0
- package/esm/drivers/mongo/mongodb-blueprint.js +51 -0
- package/esm/drivers/mongo/mongodb-blueprint.js.map +1 -0
- package/esm/drivers/mongo/mongodb-driver.d.ts +188 -0
- package/esm/drivers/mongo/mongodb-driver.d.ts.map +1 -0
- package/esm/drivers/mongo/mongodb-driver.js +411 -0
- package/esm/drivers/mongo/mongodb-driver.js.map +1 -0
- package/esm/drivers/mongo/types.d.ts +43 -0
- package/esm/drivers/mongo/types.d.ts.map +1 -0
- package/esm/errors/missing-data-source.error.d.ts +22 -0
- package/esm/errors/missing-data-source.error.d.ts.map +1 -0
- package/esm/errors/missing-data-source.error.js +29 -0
- package/esm/errors/missing-data-source.error.js.map +1 -0
- package/esm/events/model-events.d.ts +231 -0
- package/esm/events/model-events.d.ts.map +1 -0
- package/esm/events/model-events.js +259 -0
- package/esm/events/model-events.js.map +1 -0
- package/esm/expressions/aggregate-expressions.d.ts +215 -0
- package/esm/expressions/aggregate-expressions.d.ts.map +1 -0
- package/esm/expressions/aggregate-expressions.js +221 -0
- package/esm/expressions/aggregate-expressions.js.map +1 -0
- package/esm/expressions/index.d.ts +2 -0
- package/esm/expressions/index.d.ts.map +1 -0
- package/esm/index.d.ts +41 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -40
- package/esm/index.js.map +1 -1
- package/esm/migration/column-builder.d.ts +167 -0
- package/esm/migration/column-builder.d.ts.map +1 -0
- package/esm/migration/column-builder.js +217 -0
- package/esm/migration/column-builder.js.map +1 -0
- package/esm/migration/foreign-key-builder.d.ts +110 -0
- package/esm/migration/foreign-key-builder.d.ts.map +1 -0
- package/esm/migration/foreign-key-builder.js +129 -0
- package/esm/migration/foreign-key-builder.js.map +1 -0
- package/esm/migration/index.d.ts +6 -0
- package/esm/migration/index.d.ts.map +1 -0
- package/esm/migration/migration-runner.d.ts +231 -0
- package/esm/migration/migration-runner.d.ts.map +1 -0
- package/esm/migration/migration-runner.js +443 -0
- package/esm/migration/migration-runner.js.map +1 -0
- package/esm/migration/migration.js +1346 -0
- package/esm/migration/migration.js.map +1 -0
- package/esm/migration/types.d.ts +132 -0
- package/esm/migration/types.d.ts.map +1 -0
- package/esm/model/model.d.ts +1267 -0
- package/esm/model/model.d.ts.map +1 -0
- package/esm/model/model.js +1463 -0
- package/esm/model/model.js.map +1 -0
- package/esm/model/register-model.d.ts +80 -0
- package/esm/model/register-model.d.ts.map +1 -0
- package/esm/model/register-model.js +91 -0
- package/esm/model/register-model.js.map +1 -0
- package/esm/remover/database-remover.d.ts +100 -0
- package/esm/remover/database-remover.d.ts.map +1 -0
- package/esm/remover/database-remover.js +209 -0
- package/esm/remover/database-remover.js.map +1 -0
- package/esm/restorer/database-restorer.d.ts +131 -0
- package/esm/restorer/database-restorer.d.ts.map +1 -0
- package/esm/restorer/database-restorer.js +425 -0
- package/esm/restorer/database-restorer.js.map +1 -0
- package/esm/sync/index.d.ts +12 -0
- package/esm/sync/index.d.ts.map +1 -0
- package/esm/sync/model-events.d.ts +62 -0
- package/esm/sync/model-events.d.ts.map +1 -0
- package/esm/sync/model-events.js +49 -0
- package/esm/sync/model-events.js.map +1 -0
- package/esm/sync/model-sync-operation.d.ts +163 -0
- package/esm/sync/model-sync-operation.d.ts.map +1 -0
- package/esm/sync/model-sync-operation.js +292 -0
- package/esm/sync/model-sync-operation.js.map +1 -0
- package/esm/sync/model-sync.d.ts +130 -0
- package/esm/sync/model-sync.d.ts.map +1 -0
- package/esm/sync/model-sync.js +178 -0
- package/esm/sync/model-sync.js.map +1 -0
- package/esm/sync/sync-context.d.ts +70 -0
- package/esm/sync/sync-context.d.ts.map +1 -0
- package/esm/sync/sync-context.js +101 -0
- package/esm/sync/sync-context.js.map +1 -0
- package/esm/sync/sync-manager.d.ts +213 -0
- package/esm/sync/sync-manager.d.ts.map +1 -0
- package/esm/sync/sync-manager.js +689 -0
- package/esm/sync/sync-manager.js.map +1 -0
- package/esm/sync/types.d.ts +289 -0
- package/esm/sync/types.d.ts.map +1 -0
- package/esm/types.d.ts +45 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/utils/connect-to-database.d.ts +246 -0
- package/esm/utils/connect-to-database.d.ts.map +1 -0
- package/esm/utils/connect-to-database.js +92 -0
- package/esm/utils/connect-to-database.js.map +1 -0
- package/esm/utils/database-writer.utils.d.ts +15 -0
- package/esm/utils/database-writer.utils.d.ts.map +1 -0
- package/esm/utils/database-writer.utils.js +14 -0
- package/esm/utils/database-writer.utils.js.map +1 -0
- package/esm/utils/define-model.js +100 -0
- package/esm/utils/define-model.js.map +1 -0
- package/esm/utils/once-connected.d.ts +146 -0
- package/esm/utils/once-connected.d.ts.map +1 -0
- package/esm/utils/once-connected.js +252 -0
- package/esm/utils/once-connected.js.map +1 -0
- package/esm/validation/database-seal-plugins.d.ts +2 -0
- package/esm/validation/database-seal-plugins.d.ts.map +1 -0
- package/esm/validation/database-seal-plugins.js +4 -0
- package/esm/validation/database-seal-plugins.js.map +1 -0
- package/esm/validation/database-writer-validation-error.d.ts +97 -0
- package/esm/validation/database-writer-validation-error.d.ts.map +1 -0
- package/esm/validation/database-writer-validation-error.js +160 -0
- package/esm/validation/database-writer-validation-error.js.map +1 -0
- package/esm/validation/index.d.ts +3 -0
- package/esm/validation/index.d.ts.map +1 -0
- package/esm/validation/mutators/embed-mutator.d.ts +9 -0
- package/esm/validation/mutators/embed-mutator.d.ts.map +1 -0
- package/esm/validation/mutators/embed-mutator.js +33 -0
- package/esm/validation/mutators/embed-mutator.js.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.d.ts +24 -0
- package/esm/validation/plugins/embed-validator-plugin.d.ts.map +1 -0
- package/esm/validation/plugins/embed-validator-plugin.js +18 -0
- package/esm/validation/plugins/embed-validator-plugin.js.map +1 -0
- package/esm/validation/rules/database-model-rule.d.ts +7 -0
- package/esm/validation/rules/database-model-rule.d.ts.map +1 -0
- package/esm/validation/rules/database-model-rule.js +27 -0
- package/esm/validation/rules/database-model-rule.js.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.d.ts +3 -0
- package/esm/validation/transformers/embed-model-transformer.d.ts.map +1 -0
- package/esm/validation/transformers/embed-model-transformer.js +18 -0
- package/esm/validation/transformers/embed-model-transformer.js.map +1 -0
- package/esm/validation/validators/embed-validator.d.ts +21 -0
- package/esm/validation/validators/embed-validator.d.ts.map +1 -0
- package/esm/validation/validators/embed-validator.js +42 -0
- package/esm/validation/validators/embed-validator.js.map +1 -0
- package/esm/writer/database-writer.d.ts +181 -0
- package/esm/writer/database-writer.d.ts.map +1 -0
- package/esm/writer/database-writer.js +402 -0
- package/esm/writer/database-writer.js.map +1 -0
- package/package.json +61 -52
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { QueryBuilderContract } from "../contracts";
|
|
2
|
+
import type { Model } from "../model/model";
|
|
3
|
+
import { DeleteStrategy } from "../types";
|
|
4
|
+
type OnValidatingEventContext = {
|
|
5
|
+
isInsert: boolean;
|
|
6
|
+
mode: "insert" | "update";
|
|
7
|
+
};
|
|
8
|
+
type OnSavingEventContext = {
|
|
9
|
+
isInsert: boolean;
|
|
10
|
+
mode: "insert" | "update";
|
|
11
|
+
};
|
|
12
|
+
type OnDeletingEventContext = {
|
|
13
|
+
strategy: DeleteStrategy;
|
|
14
|
+
primaryKeyValue: string | number;
|
|
15
|
+
primaryKey: string;
|
|
16
|
+
};
|
|
17
|
+
export type OnDeletedEventContext = OnDeletingEventContext & {
|
|
18
|
+
deletedCount: number;
|
|
19
|
+
trashRecord?: Record<string, unknown>;
|
|
20
|
+
};
|
|
21
|
+
type OnFetchingEventContext = {
|
|
22
|
+
table: string;
|
|
23
|
+
modelClass: any;
|
|
24
|
+
};
|
|
25
|
+
type OnHydratingEventContext = {
|
|
26
|
+
query: QueryBuilderContract;
|
|
27
|
+
hydrateCallback?: (data: any, index: number) => any;
|
|
28
|
+
};
|
|
29
|
+
type OnFetchedEventContext = {
|
|
30
|
+
query: QueryBuilderContract;
|
|
31
|
+
rawRecords: any[];
|
|
32
|
+
duration: number;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Lifecycle events understood by Cascade models.
|
|
36
|
+
*
|
|
37
|
+
* The list mirrors the hooks in the legacy ORM so downstream code can subscribe
|
|
38
|
+
* with consistent semantics.
|
|
39
|
+
*/
|
|
40
|
+
export type ModelEventName = "initializing" | "fetching" | "hydrating" | "fetched" | "validating" | "validated" | "saving" | "saved" | "creating" | "created" | "updating" | "updated" | "deleting" | "deleted" | "restoring" | "restored";
|
|
41
|
+
/** Signature of an event listener registered against a model lifecycle hook. */
|
|
42
|
+
export type ModelEventListener<TModel, TContext = unknown> = (model: TModel, context: TContext) => void | Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Light-weight async event emitter used to power model lifecycle hooks.
|
|
45
|
+
*
|
|
46
|
+
* The implementation intentionally avoids any external dependency so we can
|
|
47
|
+
* re-use it in drivers, writers, and other core services without pulling in
|
|
48
|
+
* heavier event libraries.
|
|
49
|
+
*/
|
|
50
|
+
export declare class ModelEvents<TModel> {
|
|
51
|
+
readonly listeners: Map<ModelEventName, Set<ModelEventListener<TModel, unknown>>>;
|
|
52
|
+
/**
|
|
53
|
+
* Register a listener for the given event.
|
|
54
|
+
* Returns an unsubscribe function for convenience.
|
|
55
|
+
*/
|
|
56
|
+
on<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
|
|
57
|
+
/**
|
|
58
|
+
* Register a listener that automatically unsubscribes after the first call.
|
|
59
|
+
*/
|
|
60
|
+
once<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): () => void;
|
|
61
|
+
/**
|
|
62
|
+
* Deregister a listener for the given event.
|
|
63
|
+
*/
|
|
64
|
+
off<TContext = unknown>(event: ModelEventName, listener: ModelEventListener<TModel, TContext>): void;
|
|
65
|
+
/**
|
|
66
|
+
* Emit an event to all registered listeners.
|
|
67
|
+
*/
|
|
68
|
+
emit<TContext = unknown>(event: ModelEventName, model: TModel, context: TContext): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Emit events for fetching
|
|
71
|
+
*/
|
|
72
|
+
emitFetching<TContext = unknown>(query: QueryBuilderContract, context?: TContext): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Remove all registered listeners.
|
|
75
|
+
*/
|
|
76
|
+
clear(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Registers a listener for the "saving" event.
|
|
79
|
+
*
|
|
80
|
+
* Fired before a model is persisted (both insert and update), and before validation.
|
|
81
|
+
* Use this hook for data enrichment and preparation (e.g., setting createdBy, updatedBy).
|
|
82
|
+
*
|
|
83
|
+
* @param listener - The callback to invoke
|
|
84
|
+
* @returns An unsubscribe function
|
|
85
|
+
*/
|
|
86
|
+
onSaving<TContext = OnSavingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
87
|
+
/**
|
|
88
|
+
* Registers a listener for the "saved" event.
|
|
89
|
+
*
|
|
90
|
+
* Fired after a model has been successfully persisted.
|
|
91
|
+
*
|
|
92
|
+
* @param listener - The callback to invoke
|
|
93
|
+
* @returns An unsubscribe function
|
|
94
|
+
*/
|
|
95
|
+
onSaved<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
96
|
+
/**
|
|
97
|
+
* Registers a listener for the "creating" event.
|
|
98
|
+
*
|
|
99
|
+
* Fired before a new model is inserted into the database.
|
|
100
|
+
*
|
|
101
|
+
* @param listener - The callback to invoke
|
|
102
|
+
* @returns An unsubscribe function
|
|
103
|
+
*/
|
|
104
|
+
onCreating<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
105
|
+
/**
|
|
106
|
+
* Registers a listener for the "created" event.
|
|
107
|
+
*
|
|
108
|
+
* Fired after a new model has been successfully inserted.
|
|
109
|
+
*
|
|
110
|
+
* @param listener - The callback to invoke
|
|
111
|
+
* @returns An unsubscribe function
|
|
112
|
+
*/
|
|
113
|
+
onCreated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
114
|
+
/**
|
|
115
|
+
* Registers a listener for the "updating" event.
|
|
116
|
+
*
|
|
117
|
+
* Fired before an existing model is updated in the database.
|
|
118
|
+
*
|
|
119
|
+
* @param listener - The callback to invoke
|
|
120
|
+
* @returns An unsubscribe function
|
|
121
|
+
*/
|
|
122
|
+
onUpdating<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
123
|
+
/**
|
|
124
|
+
* Registers a listener for the "updated" event.
|
|
125
|
+
*
|
|
126
|
+
* Fired after an existing model has been successfully updated.
|
|
127
|
+
*
|
|
128
|
+
* @param listener - The callback to invoke
|
|
129
|
+
* @returns An unsubscribe function
|
|
130
|
+
*/
|
|
131
|
+
onUpdated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
132
|
+
/**
|
|
133
|
+
* Registers a listener for the "deleting" event.
|
|
134
|
+
*
|
|
135
|
+
* Fired before a model is deleted from the database.
|
|
136
|
+
*
|
|
137
|
+
* @param listener - The callback to invoke
|
|
138
|
+
* @returns An unsubscribe function
|
|
139
|
+
*/
|
|
140
|
+
onDeleting<TContext = OnDeletingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
141
|
+
/**
|
|
142
|
+
* Registers a listener for the "deleted" event.
|
|
143
|
+
*
|
|
144
|
+
* Fired after a model has been successfully deleted.
|
|
145
|
+
*
|
|
146
|
+
* @param listener - The callback to invoke
|
|
147
|
+
* @returns An unsubscribe function
|
|
148
|
+
*/
|
|
149
|
+
onDeleted<TContext = OnDeletedEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
150
|
+
/**
|
|
151
|
+
* Registers a listener for the "validating" event.
|
|
152
|
+
*
|
|
153
|
+
* Fired before model validation is performed.
|
|
154
|
+
*
|
|
155
|
+
* @param listener - The callback to invoke
|
|
156
|
+
* @returns An unsubscribe function
|
|
157
|
+
*/
|
|
158
|
+
onValidating<TContext = OnValidatingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
159
|
+
/**
|
|
160
|
+
* Registers a listener for the "validated" event.
|
|
161
|
+
*
|
|
162
|
+
* Fired after model validation has completed.
|
|
163
|
+
*
|
|
164
|
+
* @param listener - The callback to invoke
|
|
165
|
+
* @returns An unsubscribe function
|
|
166
|
+
*/
|
|
167
|
+
onValidated<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
168
|
+
/**
|
|
169
|
+
* Registers a listener for the "fetching" event.
|
|
170
|
+
*
|
|
171
|
+
* Fired before a query is executed to fetch models.
|
|
172
|
+
* Receives the query builder instance, allowing modification before execution.
|
|
173
|
+
*
|
|
174
|
+
* @param listener - The callback to invoke
|
|
175
|
+
* @returns An unsubscribe function
|
|
176
|
+
*/
|
|
177
|
+
onFetching<TContext = OnFetchingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
178
|
+
/**
|
|
179
|
+
* Registers a listener for the "hydrating" event.
|
|
180
|
+
*
|
|
181
|
+
* Fired after raw records are fetched but before they are hydrated into model instances.
|
|
182
|
+
* Allows modification of raw data before hydration.
|
|
183
|
+
*
|
|
184
|
+
* @param listener - The callback to invoke
|
|
185
|
+
* @returns An unsubscribe function
|
|
186
|
+
*/
|
|
187
|
+
onHydrating<TContext = OnHydratingEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
188
|
+
/**
|
|
189
|
+
* Registers a listener for the "fetched" event.
|
|
190
|
+
*
|
|
191
|
+
* Fired after models have been fetched and hydrated.
|
|
192
|
+
* Receives hydrated model instances and query context.
|
|
193
|
+
*
|
|
194
|
+
* @param listener - The callback to invoke
|
|
195
|
+
* @returns An unsubscribe function
|
|
196
|
+
*/
|
|
197
|
+
onFetched<TContext = OnFetchedEventContext>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
198
|
+
/**
|
|
199
|
+
* Registers a listener for the "restoring" event.
|
|
200
|
+
*
|
|
201
|
+
* Fired before a soft-deleted model is restored.
|
|
202
|
+
*
|
|
203
|
+
* @param listener - The callback to invoke
|
|
204
|
+
* @returns An unsubscribe function
|
|
205
|
+
*/
|
|
206
|
+
onRestoring<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
207
|
+
/**
|
|
208
|
+
* Registers a listener for the "restored" event.
|
|
209
|
+
*
|
|
210
|
+
* Fired after a soft-deleted model has been successfully restored.
|
|
211
|
+
*
|
|
212
|
+
* @param listener - The callback to invoke
|
|
213
|
+
* @returns An unsubscribe function
|
|
214
|
+
*/
|
|
215
|
+
onRestored<TContext = unknown>(listener: ModelEventListener<TModel, TContext>): () => void;
|
|
216
|
+
/**
|
|
217
|
+
* Ensures a listener set exists for the given event.
|
|
218
|
+
*
|
|
219
|
+
* @param event - The event name
|
|
220
|
+
* @returns The listener set for the event
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
private ensureListenerSet;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Global event emitter invoked for every model instance, regardless of type.
|
|
227
|
+
* Useful for cross-cutting concerns like auditing or request-scoped enrichment.
|
|
228
|
+
*/
|
|
229
|
+
export declare const globalModelEvents: ModelEvents<Model<import("../model/model").ModelSchema>>;
|
|
230
|
+
export {};
|
|
231
|
+
//# sourceMappingURL=model-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.d.ts","sourceRoot":"","sources":["../../src/events/model-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Light-weight async event emitter used to power model lifecycle hooks.
|
|
3
|
+
*
|
|
4
|
+
* The implementation intentionally avoids any external dependency so we can
|
|
5
|
+
* re-use it in drivers, writers, and other core services without pulling in
|
|
6
|
+
* heavier event libraries.
|
|
7
|
+
*/
|
|
8
|
+
class ModelEvents {
|
|
9
|
+
listeners = new Map();
|
|
10
|
+
/**
|
|
11
|
+
* Register a listener for the given event.
|
|
12
|
+
* Returns an unsubscribe function for convenience.
|
|
13
|
+
*/
|
|
14
|
+
on(event, listener) {
|
|
15
|
+
const listeners = this.ensureListenerSet(event);
|
|
16
|
+
listeners.add(listener);
|
|
17
|
+
return () => this.off(event, listener);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Register a listener that automatically unsubscribes after the first call.
|
|
21
|
+
*/
|
|
22
|
+
once(event, listener) {
|
|
23
|
+
const wrapper = async (model, context) => {
|
|
24
|
+
try {
|
|
25
|
+
await listener(model, context);
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
this.off(event, wrapper);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
return this.on(event, wrapper);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Deregister a listener for the given event.
|
|
35
|
+
*/
|
|
36
|
+
off(event, listener) {
|
|
37
|
+
const listeners = this.listeners.get(event);
|
|
38
|
+
if (!listeners) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
listeners.delete(listener);
|
|
42
|
+
if (listeners.size === 0) {
|
|
43
|
+
this.listeners.delete(event);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Emit an event to all registered listeners.
|
|
48
|
+
*/
|
|
49
|
+
async emit(event, model, context) {
|
|
50
|
+
const listeners = this.listeners.get(event);
|
|
51
|
+
if (!listeners || listeners.size === 0) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
for (const listener of Array.from(listeners)) {
|
|
55
|
+
await listener(model, context);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Emit events for fetching
|
|
60
|
+
*/
|
|
61
|
+
async emitFetching(query, context) {
|
|
62
|
+
await this.emit("fetching", query, context);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Remove all registered listeners.
|
|
66
|
+
*/
|
|
67
|
+
clear() {
|
|
68
|
+
this.listeners.clear();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Registers a listener for the "saving" event.
|
|
72
|
+
*
|
|
73
|
+
* Fired before a model is persisted (both insert and update), and before validation.
|
|
74
|
+
* Use this hook for data enrichment and preparation (e.g., setting createdBy, updatedBy).
|
|
75
|
+
*
|
|
76
|
+
* @param listener - The callback to invoke
|
|
77
|
+
* @returns An unsubscribe function
|
|
78
|
+
*/
|
|
79
|
+
onSaving(listener) {
|
|
80
|
+
return this.on("saving", listener);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Registers a listener for the "saved" event.
|
|
84
|
+
*
|
|
85
|
+
* Fired after a model has been successfully persisted.
|
|
86
|
+
*
|
|
87
|
+
* @param listener - The callback to invoke
|
|
88
|
+
* @returns An unsubscribe function
|
|
89
|
+
*/
|
|
90
|
+
onSaved(listener) {
|
|
91
|
+
return this.on("saved", listener);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Registers a listener for the "creating" event.
|
|
95
|
+
*
|
|
96
|
+
* Fired before a new model is inserted into the database.
|
|
97
|
+
*
|
|
98
|
+
* @param listener - The callback to invoke
|
|
99
|
+
* @returns An unsubscribe function
|
|
100
|
+
*/
|
|
101
|
+
onCreating(listener) {
|
|
102
|
+
return this.on("creating", listener);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Registers a listener for the "created" event.
|
|
106
|
+
*
|
|
107
|
+
* Fired after a new model has been successfully inserted.
|
|
108
|
+
*
|
|
109
|
+
* @param listener - The callback to invoke
|
|
110
|
+
* @returns An unsubscribe function
|
|
111
|
+
*/
|
|
112
|
+
onCreated(listener) {
|
|
113
|
+
return this.on("created", listener);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Registers a listener for the "updating" event.
|
|
117
|
+
*
|
|
118
|
+
* Fired before an existing model is updated in the database.
|
|
119
|
+
*
|
|
120
|
+
* @param listener - The callback to invoke
|
|
121
|
+
* @returns An unsubscribe function
|
|
122
|
+
*/
|
|
123
|
+
onUpdating(listener) {
|
|
124
|
+
return this.on("updating", listener);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Registers a listener for the "updated" event.
|
|
128
|
+
*
|
|
129
|
+
* Fired after an existing model has been successfully updated.
|
|
130
|
+
*
|
|
131
|
+
* @param listener - The callback to invoke
|
|
132
|
+
* @returns An unsubscribe function
|
|
133
|
+
*/
|
|
134
|
+
onUpdated(listener) {
|
|
135
|
+
return this.on("updated", listener);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Registers a listener for the "deleting" event.
|
|
139
|
+
*
|
|
140
|
+
* Fired before a model is deleted from the database.
|
|
141
|
+
*
|
|
142
|
+
* @param listener - The callback to invoke
|
|
143
|
+
* @returns An unsubscribe function
|
|
144
|
+
*/
|
|
145
|
+
onDeleting(listener) {
|
|
146
|
+
return this.on("deleting", listener);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Registers a listener for the "deleted" event.
|
|
150
|
+
*
|
|
151
|
+
* Fired after a model has been successfully deleted.
|
|
152
|
+
*
|
|
153
|
+
* @param listener - The callback to invoke
|
|
154
|
+
* @returns An unsubscribe function
|
|
155
|
+
*/
|
|
156
|
+
onDeleted(listener) {
|
|
157
|
+
return this.on("deleted", listener);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Registers a listener for the "validating" event.
|
|
161
|
+
*
|
|
162
|
+
* Fired before model validation is performed.
|
|
163
|
+
*
|
|
164
|
+
* @param listener - The callback to invoke
|
|
165
|
+
* @returns An unsubscribe function
|
|
166
|
+
*/
|
|
167
|
+
onValidating(listener) {
|
|
168
|
+
return this.on("validating", listener);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Registers a listener for the "validated" event.
|
|
172
|
+
*
|
|
173
|
+
* Fired after model validation has completed.
|
|
174
|
+
*
|
|
175
|
+
* @param listener - The callback to invoke
|
|
176
|
+
* @returns An unsubscribe function
|
|
177
|
+
*/
|
|
178
|
+
onValidated(listener) {
|
|
179
|
+
return this.on("validated", listener);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Registers a listener for the "fetching" event.
|
|
183
|
+
*
|
|
184
|
+
* Fired before a query is executed to fetch models.
|
|
185
|
+
* Receives the query builder instance, allowing modification before execution.
|
|
186
|
+
*
|
|
187
|
+
* @param listener - The callback to invoke
|
|
188
|
+
* @returns An unsubscribe function
|
|
189
|
+
*/
|
|
190
|
+
onFetching(listener) {
|
|
191
|
+
return this.on("fetching", listener);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Registers a listener for the "hydrating" event.
|
|
195
|
+
*
|
|
196
|
+
* Fired after raw records are fetched but before they are hydrated into model instances.
|
|
197
|
+
* Allows modification of raw data before hydration.
|
|
198
|
+
*
|
|
199
|
+
* @param listener - The callback to invoke
|
|
200
|
+
* @returns An unsubscribe function
|
|
201
|
+
*/
|
|
202
|
+
onHydrating(listener) {
|
|
203
|
+
return this.on("hydrating", listener);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Registers a listener for the "fetched" event.
|
|
207
|
+
*
|
|
208
|
+
* Fired after models have been fetched and hydrated.
|
|
209
|
+
* Receives hydrated model instances and query context.
|
|
210
|
+
*
|
|
211
|
+
* @param listener - The callback to invoke
|
|
212
|
+
* @returns An unsubscribe function
|
|
213
|
+
*/
|
|
214
|
+
onFetched(listener) {
|
|
215
|
+
return this.on("fetched", listener);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Registers a listener for the "restoring" event.
|
|
219
|
+
*
|
|
220
|
+
* Fired before a soft-deleted model is restored.
|
|
221
|
+
*
|
|
222
|
+
* @param listener - The callback to invoke
|
|
223
|
+
* @returns An unsubscribe function
|
|
224
|
+
*/
|
|
225
|
+
onRestoring(listener) {
|
|
226
|
+
return this.on("restoring", listener);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Registers a listener for the "restored" event.
|
|
230
|
+
*
|
|
231
|
+
* Fired after a soft-deleted model has been successfully restored.
|
|
232
|
+
*
|
|
233
|
+
* @param listener - The callback to invoke
|
|
234
|
+
* @returns An unsubscribe function
|
|
235
|
+
*/
|
|
236
|
+
onRestored(listener) {
|
|
237
|
+
return this.on("restored", listener);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Ensures a listener set exists for the given event.
|
|
241
|
+
*
|
|
242
|
+
* @param event - The event name
|
|
243
|
+
* @returns The listener set for the event
|
|
244
|
+
* @private
|
|
245
|
+
*/
|
|
246
|
+
ensureListenerSet(event) {
|
|
247
|
+
let listeners = this.listeners.get(event);
|
|
248
|
+
if (!listeners) {
|
|
249
|
+
listeners = new Set();
|
|
250
|
+
this.listeners.set(event, listeners);
|
|
251
|
+
}
|
|
252
|
+
return listeners;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Global event emitter invoked for every model instance, regardless of type.
|
|
257
|
+
* Useful for cross-cutting concerns like auditing or request-scoped enrichment.
|
|
258
|
+
*/
|
|
259
|
+
const globalModelEvents = new ModelEvents();exports.ModelEvents=ModelEvents;exports.globalModelEvents=globalModelEvents;//# sourceMappingURL=model-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-events.js","sources":["../../src/events/model-events.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|