UNPKG

@convo-lang/convo-lang

Version:
44 lines 1.28 kB
import { getErrorMessage } from "@iyio/common"; export const loadDynamicConvoDbFactoryAsync = async (imp, options) => { const e = imp.indexOf('!'); let className; if (e === -1) { const s = imp.lastIndexOf('/'); if (s !== -1) { className = imp.substring(s + 1); } } else { className = imp.substring(e + 1); imp = imp.substring(0, e); } let dbClass; if (className) { try { const mod = await import(imp); dbClass = mod[className]; if (typeof dbClass !== 'function') { throw new Error(`db class not exported by name`); } } catch (ex) { return { success: false, error: `Failed to import db module: import {${className}} from "${imp}": ${getErrorMessage(ex)}`, statusCode: 500, }; } } else { return { success: false, error: `Invalid module class name: import {${className}} from "${imp}"`, statusCode: 400, }; } return { success: true, result: (name) => new dbClass({ name, ...options }), }; }; //# sourceMappingURL=convo-db-factory-loader.js.map