All files / src/classes CoreEntity.ts

100% Statements 2/2
100% Branches 2/2
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72                                                                                                                          1x             235x      
import { randomUUID } from 'crypto';
import { Column, type IEntity } from './annotation';
 
/**
 * @name CoreEntity
 * ```typescript
 * // Entity Example
 * @Entity("TestEntity",1)
 *  class TestEntity extends CoreEntity{
 *
 *   @Column({
 *     canBeNull:true,
 *     dataType:"text"
 *   })
 *   name:string|null
 *
 *
 *   @Column()
 *   simpleNumber:number
 *
 *
 *   @Column({
 *     canBeNull:true,
 *   })
 *   missingType:any
 *
 *   @Column({
 *     canBeNull:true,
 *     primaryKey:true
 *   })
 *   primaryKeyNull:any
 *
 *   @Column({
 *     canBeNull:true,
 *     dataType:"float",
 *     foreignKey:{
 *       key:"id",
 *       relation:"test_entity"
 *     }
 *   })
 *   invalidKey:any
 *
 *   notAColumn:string
 *
 *   constructor(val?:EProperties<TestEntity>) {
 *     super();
 *     this.name=val?.name||""
 *     this.notAColumn=val?.notAColumn||""
 *     this.simpleNumber=val?.simpleNumber||0
 *     this.primaryKeyNull=null;
 *     this.invalidKey=null;
 *   }
 * }
 *
 * // Register db entity in BaseModule or in the DbConstructor
 * const db=new CoreDBCon(module)
 * db.registerEntity(new TestEntity())
 * ```
 */
 
export default abstract class CoreEntity implements IEntity {
  @Column({
    primaryKey: true,
    dataType: 'uuid',
  })
  e_id: string;
 
  protected constructor(id?: string) {
    this.e_id = id ?? randomUUID();
  }
}