UNPKG

dataorm

Version:
58 lines (39 loc) 1.18 kB
import { Database } from '../database'; import { Subject } from '../observer/Subject'; class Model extends Subject { public static get() { return Subject; } public static find(id: any) { const instance: any = new this(); const db1 = Database.getInstance(); const collection: any[] = db1.collection(instance['entity']); const result = collection.find((item: any) => item.id === id); return result ?? null; } public static create(entity: any) { const instance: any = new this(); const db1 = Database.getInstance(); const collection: any[] = db1.collection(instance['entity']); if ( entity.hasOwnProperty('id') && collection.find(item => item.id === entity['id']) ) { throw new Error('Duplicate id'); } entity['id'] = entity.hasOwnProperty('id') ? entity['id'] : collection.length + 1; collection.push(entity); db1.setCollection(instance['entity'], collection); this.fire(collection); return entity ?? null; } public hasMany(relation: any) { return relation; } public belongsTo(relation: any) { return relation; } } export { Model };