@convo-lang/convo-lang
Version:
The language of AI
44 lines • 1.28 kB
JavaScript
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