UNPKG

adonis-odm

Version:

A comprehensive MongoDB ODM for AdonisJS with Lucid-style API, type-safe relationships, embedded documents, and transaction support

139 lines 4.57 kB
/** * Naming strategy interface following AdonisJS Lucid conventions */ export interface NamingStrategyContract { /** * Convert property name to database column name */ columnName(model: any, propertyName: string): string; /** * Convert property name to serialized name for JSON output */ serializedName(model: any, propertyName: string): string; /** * Convert model name to collection/table name */ tableName(model: any): string; /** * Generate foreign key name for relationships */ relationForeignKey(relation: string, model: any, relatedModel: any): string; /** * Generate local key name for relationships */ relationLocalKey(relation: string, model: any, relatedModel: any): string; /** * Generate pivot table name for many-to-many relationships */ relationPivotTable(relation: 'manyToMany', model: any, relatedModel: any): string; /** * Generate pivot foreign key name for many-to-many relationships */ relationPivotForeignKey(relation: 'manyToMany', model: any): string; /** * Generate pagination meta keys */ paginationMetaKeys(): Record<string, string>; } /** * String helper functions for naming conversions */ export declare class StringHelper { /** * Convert camelCase to snake_case */ static snakeCase(str: string): string; /** * Convert snake_case to camelCase */ static camelCase(str: string): string; /** * Convert string to singular form (basic implementation) */ static singular(str: string): string; /** * Convert string to plural form (basic implementation) */ static plural(str: string): string; } /** * Default naming strategy following AdonisJS Lucid conventions * This strategy converts camelCase properties to snake_case for serialization */ export declare class CamelCaseNamingStrategy implements NamingStrategyContract { /** * Convert property name to database column name * By default, converts camelCase to snake_case */ columnName(_model: any, propertyName: string): string; /** * Convert property name to serialized name for JSON output * By default, converts camelCase to snake_case */ serializedName(_model: any, propertyName: string): string; /** * Convert model name to collection/table name * Converts to singular snake_case */ tableName(model: any): string; /** * Generate foreign key name for relationships */ relationForeignKey(relation: string, model: any, relatedModel: any): string; /** * Generate local key name for relationships */ relationLocalKey(relation: string, model: any, relatedModel: any): string; /** * Generate pivot table name for many-to-many relationships */ relationPivotTable(_relation: 'manyToMany', model: any, relatedModel: any): string; /** * Generate pivot foreign key name for many-to-many relationships */ relationPivotForeignKey(_relation: 'manyToMany', model: any): string; /** * Generate pagination meta keys */ paginationMetaKeys(): Record<string, string>; } /** * Snake case naming strategy that keeps everything in snake_case */ export declare class SnakeCaseNamingStrategy implements NamingStrategyContract { /** * Convert property name to database column name * Keeps snake_case as-is */ columnName(_model: any, propertyName: string): string; /** * Convert property name to serialized name for JSON output * Keeps snake_case as-is */ serializedName(_model: any, propertyName: string): string; /** * Convert model name to collection/table name */ tableName(model: any): string; /** * Generate foreign key name for relationships */ relationForeignKey(relation: string, model: any, relatedModel: any): string; /** * Generate local key name for relationships */ relationLocalKey(relation: string, model: any, relatedModel: any): string; /** * Generate pivot table name for many-to-many relationships */ relationPivotTable(_relation: 'manyToMany', model: any, relatedModel: any): string; /** * Generate pivot foreign key name for many-to-many relationships */ relationPivotForeignKey(_relation: 'manyToMany', model: any): string; /** * Generate pagination meta keys */ paginationMetaKeys(): Record<string, string>; } //# sourceMappingURL=naming_strategy.d.ts.map