import {make} from "./di/src/global.ts"; import Application from "./lib/src/lifecycle/Application.ts"; import Scaffolding from "./lib/src/unit/Scaffolding.ts"; import {Logging} from "./lib/src/service/logging/Logging.ts"; import Database from "./orm/src/service/Database.ts"; import { Model } from './orm/src/model/Model.ts' import {Field} from "./orm/src/model/Field.ts"; import {QueryRow, Type} from './orm/src/db/types.ts'; import {Builder} from "./orm/src/builder/Builder.ts"; import ObjectResultOperator from "./orm/src/builder/type/result/ObjectResultOperator.ts"; import {BehaviorSubject} from "./lib/src/support/BehaviorSubject.ts"; // TODO enum bit fields // TODO JSON field support ;(async () => { const scaf = make(Scaffolding) await scaf.up() const logger = make(Logging) const app = make(Application) await app.run() const db = make(Database) await db.postgres('garrettmills', { user: 'garrettmills', password: 'garrettmills', database: 'garrettmills', hostname: 'localhost', port: 5432, }) class User extends Model { protected static connection = 'garrettmills' protected static table = 'daton_users' protected static key = 'user_id' protected static appends: string[] = ['display_name'] protected static masks: string[] = ['active'] @Field(Type.int) public user_id!: number @Field(Type.varchar) public username!: string @Field(Type.varchar) public first_name!: string @Field(Type.varchar) public last_name!: string @Field(Type.boolean) public active!: boolean @Field(Type.timestamp) public updated_at!: Date @Field(Type.timestamp) public created_at!: Date get display_name(): string { return `${this.last_name}, ${this.first_name}` } } const u = await User.find_one({ username: 'garrettmills' }) })()