UNPKG

@sqb/connect

Version:

Multi-dialect database connection framework written with TypeScript

25 lines (24 loc) 928 B
import { ENTITY_METADATA_KEY } from '../orm.const.js'; export function isClass(fn) { return typeof fn === 'function' && /^\s*class/.test(fn.toString()); } export function isEntityClass(fn) { return isClass(fn) && Reflect.hasMetadata(ENTITY_METADATA_KEY, fn); } export function isColumnField(f) { return !!(f && f.name && f.kind === 'column'); } export const isEmbeddedField = (f) => !!(f && f.name && f.kind === 'object'); export const isAssociationField = (f) => !!(f && f.name && f.kind === 'association'); export async function resolveEntity(ctorThunk) { if (typeof ctorThunk !== 'function') return; if (!isClass(ctorThunk)) ctorThunk = await ctorThunk(); if (isEntityClass(ctorThunk)) return ctorThunk; } export async function resolveEntityMeta(ctorThunk) { const ctor = await resolveEntity(ctorThunk); return ctor && Reflect.getMetadata(ENTITY_METADATA_KEY, ctor); }