UNPKG

@nodeboot/starter-persistence

Version:

Nodeboot starter package for persistence. Supports data access layer auto-configuration providing features like database initialization, consistency check, entity mapping, repository pattern, transactions, paging, migrations, persistence listeners, persis

50 lines 2.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EnableRepositories = void 0; const context_1 = require("@nodeboot/context"); const adapter_1 = require("../adapter"); const config_1 = require("../config"); const TransactionConfiguration_1 = require("../config/TransactionConfiguration"); const QueryCacheConfiguration_1 = require("../config/QueryCacheConfiguration"); /** * Class decorator to enable persistence repositories and configure the persistence layer. * * This decorator: * - Activates the persistence feature in the application context. * - Registers the default repositories adapter. * - Initializes query cache, datasource, persistence, and transaction configurations. * * Use this decorator on your main application class to bootstrap persistence support. * * @returns {ClassDecorator} The class decorator function. * * @example * ```ts * @EnableRepositories() // Enables persistence layer * @NodeBootApplication() // Activates Node-Boot framework features * export class SampleApplication implements NodeBootApp { * start(): Promise<NodeBootAppView> { * return NodeBoot.run(ExpressServer); * } * } * ``` * * @author Manuel Santos <https://github.com/manusant> */ const EnableRepositories = () => { return () => { context_1.ApplicationContext.get().applicationFeatures["persistence"] = true; // Register repositories adapter context_1.ApplicationContext.get().repositoriesAdapter = new adapter_1.DefaultRepositoriesAdapter(); // Resolve query cache configurations new QueryCacheConfiguration_1.QueryCacheConfiguration(); // Resolve data source configurations from configuration properties new config_1.DataSourceConfiguration(); // Trigger persistence configuration new config_1.PersistenceConfiguration(); // Trigger Transactions configuration new TransactionConfiguration_1.TransactionConfiguration(); }; }; exports.EnableRepositories = EnableRepositories; //# sourceMappingURL=EnableRepositories.js.map