UNPKG

@sqb/connect

Version:

Multi-dialect database connection framework written with TypeScript

35 lines (34 loc) 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isAssociationField = exports.isEmbeddedField = void 0; exports.isClass = isClass; exports.isEntityClass = isEntityClass; exports.isColumnField = isColumnField; exports.resolveEntity = resolveEntity; exports.resolveEntityMeta = resolveEntityMeta; const orm_const_js_1 = require("../orm.const.js"); function isClass(fn) { return typeof fn === 'function' && /^\s*class/.test(fn.toString()); } function isEntityClass(fn) { return isClass(fn) && Reflect.hasMetadata(orm_const_js_1.ENTITY_METADATA_KEY, fn); } function isColumnField(f) { return !!(f && f.name && f.kind === 'column'); } const isEmbeddedField = (f) => !!(f && f.name && f.kind === 'object'); exports.isEmbeddedField = isEmbeddedField; const isAssociationField = (f) => !!(f && f.name && f.kind === 'association'); exports.isAssociationField = isAssociationField; async function resolveEntity(ctorThunk) { if (typeof ctorThunk !== 'function') return; if (!isClass(ctorThunk)) ctorThunk = await ctorThunk(); if (isEntityClass(ctorThunk)) return ctorThunk; } async function resolveEntityMeta(ctorThunk) { const ctor = await resolveEntity(ctorThunk); return ctor && Reflect.getMetadata(orm_const_js_1.ENTITY_METADATA_KEY, ctor); }