@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
35 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PersistenceNamingStrategy = PersistenceNamingStrategy;
const PersistenceContext_1 = require("../PersistenceContext");
/**
* Decorator to register a custom naming strategy for the persistence layer.
*
* This decorator sets the given class as the active naming strategy to be used by TypeORM
* when generating database table and column names.
*
* @template T - A class implementing TypeORM's NamingStrategyInterface.
* @returns {ClassDecorator} The class decorator function.
*
* @example
* ```ts
* import {PersistenceNamingStrategy} from "@nodeboot/starter-persistence";
* import {DefaultNamingStrategy, NamingStrategyInterface} from "typeorm";
*
* @PersistenceNamingStrategy()
* class CustomNamingStrategy extends DefaultNamingStrategy implements NamingStrategyInterface {
* tableName(className: string, customName: string): string {
* return customName ? customName.toLowerCase() : className.toLowerCase();
* }
* }
* ```
*
* @author
* Manuel Santos <https://github.com/manusant>
*/
function PersistenceNamingStrategy() {
return (target) => {
PersistenceContext_1.PersistenceContext.get().namingStrategy = target;
};
}
//# sourceMappingURL=PersistenceNamingStrategy.js.map